Neptune OS: en WinNT-tilpasning af seL4-mikrokernen

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 IoConnectInterruptIoCallDriver

På Windows er disse indlæst i kernetilstand og forbundet medNTOSKRNL.EXEbillede. 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.


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.