Neptune OS: en WinNT-tilpasning av seL4 mikrokjernen

Publiseringen av den første eksperimentelle versjonen av Neptune OS-prosjektet, som skiller seg fra prosjektet til den Debian-baserte Linux-distribusjonen med samme navn.

Dette systemet som vi skal snakke om i dag er preget av å utvikle en plugin for seL4 mikrokjernen med implementering av Windows NT-kjernekomponenter, med mål om å tilby støtte for å kjøre Windows-applikasjoner. 

Om Neptune OS

prosjektet iimplementerer "NT Executive", et av lagene i Windows NT-kjernen (NTOSKRNL.EXE), som er ansvarlig for å tilby NT Native-systemanrops-API og grensesnitt for at drivere skal fungere.

På Neptune OS, komponenten NT Executive og alle drivere kjører ikke på kjernenivå, men som brukerprosesser i et miljø basert på seL4 mikrokjernen. Samspillet mellom NT Executive-komponenten og driverne utføres gjennom seL4 IPC-standarden. De medfølgende systemkallene gjør det mulig for NTDLL.DLL-biblioteket å fungere med en implementering av Win32 API som brukes i applikasjoner.

 NT Executive er også ansvarlig for Windows-kjernedrivergrensesnittet (kjent som Windows-drivermodellen), som inkluderer funksjoner som f.eks IoConnectInterruptIoCallDriver

På Windows lastes disse i kjernemodus og kobles tilNTOSKRNL.EXEbilde. I Neptune OS kjører vi alle Windows-kjernedrivere i brukermodus og de kommuniserer med NT Executive-prosessen gjennom standard seL4 IPC-primitivene.

Endemålet fra Neptune OS-prosjektet er å implementere nok NT-semantikk slik at ReactOS-brukermiljøet kan porteres under Neptune OS, så vel som de fleste ReactOS-kjernedrivere.

I teorien, utviklerne nevner at de skal kunne oppnå binær kompatibilitet med innfødte Windows-kjørbare så lenge den tilbudte implementeringen av den opprinnelige NT API er trofast nok.

Vi bør også være i stand til å oppnå en høy grad av kildekodekompatibilitet med Windows-kjernedrivere. Hovedhindringen for å oppnå binær kompatibilitet av kjernedrivere er at mange Windows-kjernedrivere ikke følger standard Windows-driverkommunikasjonsprotokoll (dvs. de sender IRP-er når de trenger å ringe en annen driver) og i stedet sender de bare pekere og ringer andre kontrollere direkte . På Neptune OS, med mindre det er et driver-minidriver-par, kjører vi alltid "kjerne".

Om Neptune OS 0.1.0001

Status for prosjektet på dette tidspunktet er en foreløpig versjon, siden vi så langt har vært i stand til å implementere nok NT-primitiver til å laste inn en grunnleggende stabel med tastaturdrivere, som inkluderer kbdclass.sys tastaturklassedriveren og portdriveren. 2 i8042prt.sys, samt en grunnleggende ledetekst ntcmd.exe, hentet fra ReactOS-prosjektet.

Knapt noen av skallkommandoene fungerer faktisk, men tastaturstabelen er stabil. Debug builds kan være litt treg ettersom det genereres for mange feilsøkingslogger.

Men det er nevnt at disse kan deaktiveres i koden (du bør peke på private/ntos/inc). Det nevnes også at det var inkludert en "beep.sys"-driver (som ikke gir mening, men det er bare utvikleren som vet hvorfor) som lager en irriterende lyd i PC-høyttaleren og at for å høre den må du slå på lyden (spesielt hvis du bruker pulsaudio).

Alle kontrollere kjører i brukerrom! Hele systemet får plass på én diskett og kan lastes ned fra versjon v0.1.0001. Du kan også bygge det selv, prosedyren for dette er beskrevet i neste avsnitt.

Til slutt, for de som er interessert i å vite litt mer om prosjektet, kan du konsultere detaljene I den følgende lenken.

Størrelsen på oppstartsbildet er 1,4 MB og koden er utgitt under GPLv3-lisensen.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.