Udgivelsen af den første eksperimentelle version af Neptune OS-projektet, som adskiller sig fra projektet af den Debian-baserede Linux-distribution med samme navn.
Dette system, som vi vil tale om i dag er kendetegnet ved at udvikle et plugin til seL4-mikrokernen med implementeringen af Windows NT-kernekomponenter, med det mål at levere understøttelse af kørsel af Windows-applikationer.
Om Neptune OS
projektet iimplementerer "NT Executive", et af lagene i Windows NT-kernen (NTOSKRNL.EXE), der er ansvarlig for at levere NT Native-systemopkalds-API og interface, så drivere kan fungere.
På Neptune OS er komponenten NT Executive og alle drivere kører ikke på kerneniveau, men som brugerprocesser i et miljø baseret på seL4-mikrokernen. Interaktionen mellem NT Executive-komponenten og driverne udføres gennem seL4 IPC-standarden. De medfølgende systemkald gør det muligt for NTDLL.DLL-biblioteket at arbejde med en implementering af Win32 API, der bruges i applikationer.
NT Executive er også ansvarlig for Windows-kernedrivergrænsefladen (kendt som Windows-drivermodellen), som indeholder funktioner som f.eks
IoConnectInterrupt
yIoCallDriver
.På Windows er disse indlæst i kernetilstand og forbundet med
NTOSKRNL.EXE
billede. I Neptune OS kører vi alle Windows-kernedrivere i brugertilstand, og de kommunikerer med NT Executive-processen gennem standard seL4 IPC-primitiver.
Det endelige mål fra Neptune OS-projektet er at implementere nok NT-semantik så ReactOS-brugermiljøet kan porteres under Neptune OS, såvel som de fleste ReactOS-kernedrivere.
I teorien udviklerne nævner, at de skal være i stand til at opnå binær kompatibilitet med native Windows-eksekverbare, så længe den tilbudte implementering af den native NT API er trofast nok.
Vi burde også være i stand til at opnå en høj grad af kildekodekompatibilitet med Windows-kernedrivere. Den største hindring for at opnå binær kompatibilitet af kernedrivere er, at mange Windows-kernedrivere ikke følger standard Windows-driverkommunikationsprotokol (dvs. de passerer IRP'er, når de skal kalde en anden driver), og i stedet sender de bare pointere og kalder andre controllere direkte . På Neptune OS, medmindre det er et driver-minidriver-par, kører vi altid "kerne".
Om Neptune OS 0.1.0001
Status for projektet på nuværende tidspunkt er en foreløbig version, da vi hidtil har været i stand til at implementere nok NT-primitiver til at indlæse en grundlæggende stak af tastaturdrivere, som inkluderer kbdclass.sys tastaturklassedriveren og portdriveren. PS/ 2 i8042prt.sys, samt en grundlæggende kommandoprompt ntcmd.exe, taget fra ReactOS-projektet.
Næsten ingen af shell-kommandoerne virker faktisk, men tastaturstakken er stabil. Debug-builds kan være lidt langsomme, da der genereres for mange fejlretningslogfiler.
Men det er nævnt at disse kan deaktiveres i koden (du skal pege på private/ntos/inc). Det nævnes også, at der medfølger en "beep.sys"-driver (hvilket ikke giver mening, men det er kun udvikleren, der ved hvorfor), der laver en irriterende lyd i pc-højttaleren, og for at kunne høre den skal du slå lyden til (især hvis du bruger pulsaudio).
Alle controllere kører i brugerrum! Hele systemet passer på én diskette og kan downloades fra version v0.1.0001. Du kan også bygge det selv, proceduren for hvilken er beskrevet i næste afsnit.
Til sidst, for dem, der er interesseret i at vide lidt mere om projektet, kan du konsultere detaljerne I det følgende link.
Størrelsen på opstartsbilledet er 1,4 MB, og koden er frigivet under GPLv3-licensen.