Neptune OS: WinNT prilagoditev mikrojedra seL4

Objava prve eksperimentalne različice projekta Neptune OS, ki se razlikuje od projekta distribucijo Linuxa, ki temelji na Debianu z istim imenom.

Ta sistem, o katerem bomo govorili danes je značilen razvoj vtičnika za mikrojedro seL4 z implementacijo komponent jedra Windows NT, s ciljem zagotavljanja podpora za zagon aplikacij Windows. 

O OS Neptun

projekt iizvaja "NT Executive", ena od plasti jedra Windows NT (NTOSKRNL.EXE), ki je odgovorna za zagotavljanje API-ja za sistemske klice NT Native in vmesnika za delovanje gonilnikov.

V operacijskem sistemu Neptune je komponenta NT Executive in vsi gonilniki se ne izvajajo na ravni jedra, ampak kot uporabniški procesi v okolju, ki temelji na mikrojedru seL4. Interakcija komponente NT Executive z gonilniki se izvaja prek standarda seL4 IPC. Zagotovljeni sistemski klici omogočajo, da knjižnica NTDLL.DLL deluje z implementacijo Win32 API, ki se uporablja v aplikacijah.

 NT Executive je odgovoren tudi za vmesnik gonilnika jedra Windows (znan kot model gonilnika Windows), ki vključuje funkcije, kot so IoConnectInterruptIoCallDriver

V sistemu Windows so ti naloženi v načinu jedra in povezani zNTOSKRNL.EXEslika. V operacijskem sistemu Neptune poganjamo vse gonilnike jedra Windows v uporabniškem načinu in komunicirajo s procesom NT Executive prek standardnih seL4 IPC primitivov.

Končni cilj iz projekta Neptune OS je implementirati dovolj semantike NT tako da je mogoče uporabniško okolje ReactOS prenesti pod Neptune OS, kot tudi večino gonilnikov jedra ReactOS.

V teoriji razvijalci omenja, da bi morali biti sposobni doseči binarno združljivost z izvornimi izvedljivimi datotekami Windows, dokler je ponujena izvedba domačega NT API dovolj zvesta.

Prav tako bi morali biti sposobni doseči visoko stopnjo združljivosti izvorne kode z gonilniki jedra Windows. Glavna ovira za doseganje binarne združljivosti gonilnikov jedra je, da mnogi gonilniki jedra Windows ne sledijo standardnemu komunikacijskemu protokolu gonilnika Windows (tj. posredujejo IRP, ko morajo poklicati drugega gonilnika) in namesto tega le posredujejo kazalce in neposredno kličejo druge krmilnike. . V sistemu Neptune OS, razen če gre za par gonilnik-minigonilnik, vedno izvajamo "jedro".

O Neptune OS 0.1.0001

Trenutno stanje projekta je preliminarna različica, saj smo do zdaj lahko implementirali dovolj primitivov NT za nalaganje osnovnega sklada gonilnikov tipkovnice, ki vključuje gonilnik razreda tipkovnice kbdclass.sys in gonilnik vrat. PS/ 2 i8042prt.sys, pa tudi osnovni ukazni poziv ntcmd.exe, vzet iz projekta ReactOS.

Komaj kateri od ukazov lupine dejansko ne deluje, vendar je sklad tipkovnice stabilen. Gradnje za odpravljanje napak so lahko nekoliko počasne, saj se ustvari preveč dnevnikov za odpravljanje napak.

Vendar je omenjeno, da jih je mogoče onemogočiti v kodi (pokazati morate na private/ntos/inc). Omenjeno je tudi, da je bil vključen gonilnik "beep.sys" (kar ni smiselno, ampak zakaj bo vedel samo razvijalec), ki v zvočniku osebnega računalnika oddaja moteč zvok in da ga morate slišati, morate vklopiti zvok (še posebej, če uporabljate pulseaudio).

Vsi krmilniki delujejo v uporabniškem prostoru! Celoten sistem je nameščen na eni disketi in ga je mogoče prenesti od različice v0.1.0001. Lahko ga zgradite tudi sami, postopek pa je opisan v naslednjem razdelku.

Nazadnje, za tiste, ki jih zanima nekaj več o projektu, si lahko ogledate podrobnosti V naslednji povezavi.

Velikost zagonske slike je 1,4 MB, koda pa je izdana pod licenco GPLv3.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.