Neptune OS: seL4 mikrokerneli WinNT kohandamine

Neptune OS projekti esimese eksperimentaalse versiooni avaldamine, mis erineb projektist Debianil põhinev Linuxi distributsioon sama nimega.

See süsteem, millest me täna räägime iseloomustab seL4 mikrokerneli pistikprogrammi väljatöötamine Windows NT kerneli komponentide rakendamisega, eesmärgiga pakkuda tugi Windowsi rakenduste käitamiseks. 

Neptune OS-i kohta

projekt irakendab "NT Executive", üks Windows NT tuuma (NTOSKRNL.EXE) kihtidest, mis vastutab NT Native süsteemikõne API ja draiverite töötamiseks mõeldud liidese pakkumise eest.

Neptune OS-is komponent NT Executive ja kõik draiverid ei tööta kerneli tasemel, aga kasutajaprotsessidena seL4 mikrokernelil põhinevas keskkonnas. NT Executive komponendi koostoime draiveritega toimub läbi seL4 IPC standardi. Pakutud süsteemikutsed võimaldavad NTDLL.DLL teegil töötada rakendustes kasutatava Win32 API juurutusega.

 NT Executive vastutab ka Windowsi kerneli draiveri liidese eest (tuntud kui Windowsi draiveri mudel), mis sisaldab selliseid funktsioone nagu IoConnectInterruptIoCallDriver

Windowsis laaditakse need kerneli režiimis ja lingitakseNTOSKRNL.EXEpilt. Neptune OS-is käitame kõiki Windowsi kerneli draivereid kasutajarežiimis ja need suhtlevad NT Executive protsessiga läbi standardsete seL4 IPC primitiivide.

Lõppeesmärk Neptune OS projektist on rakendada piisavalt NT semantikat et ReactOS-i kasutajakeskkonda saaks portida Neptune OS-i ja ka enamiku ReactOS-i kerneli draiverite alla.

Teoreetiliselt arendajad mainib, et neil peaks olema võimalik saavutada binaarne ühilduvus Windowsi natiivsete käivitatavate failidega seni, kuni pakutav NT API loomulik rakendus on piisavalt usaldusväärne.

Samuti peaksime suutma saavutada kõrgetasemelise lähtekoodi ühilduvuse Windowsi kerneli draiveritega. Peamine takistus tuumadraiverite binaarse ühilduvuse saavutamisel on see, et paljud Windowsi kerneli draiverid ei järgi standardset Windowsi draiveri suhtlusprotokolli (st nad läbivad IRP-d, kui neil on vaja helistada teisele draiverile) ja selle asemel edastavad nad lihtsalt viiteid ja helistavad otse teistele kontrolleritele. . Neptune OS-is, kui see pole draiveri-minidraiveri paar, käitame alati "kerneli".

Neptune OS 0.1.0001 kohta

Projekti seis on praegu esialgne versioon, kuna oleme siiani suutnud rakendada piisavalt NT primitiive, et laadida põhiline klaviatuuridraiverite virn, mis sisaldab kbdclass.sys klaviatuuriklassi draiverit ja pordi draiverit. PS/ 2 i8042prt.sys, samuti põhikäsuviip ntcmd.exe, mis on võetud ReactOS-i projektist.

Vaevalt ükski shellikäsk tegelikult töötab, kuid klaviatuuripinn on stabiilne. Silumisjärgud võivad olla veidi aeglased, kuna luuakse liiga palju silumisloge.

Kuid mainitakse, et neid saab koodis keelata (peaksite osutama privaatsele/ntos/inc). Samuti mainitakse, et kaasas oli "beep.sys" draiver (millel pole mõtet, kuid ainult arendaja teab, miks), mis teeb arvutikõlaris tüütut heli ja selle kuulmiseks tuleb vaigistus sisse lülitada. (eriti kui kasutate pulseaudiot).

Kõik kontrollerid töötavad kasutajaruumis! Kogu süsteem mahub ühele disketile ja selle saab alla laadida versioonist v0.1.0001. Saate selle ka ise ehitada, mille protseduuri kirjeldatakse järgmises jaotises.

Need, kes soovivad projekti kohta veidi rohkem teada saada, võivad tutvuda üksikasjadega Järgmisel lingil.

Alglaadimispildi suurus on 1,4 MB ja kood on välja antud GPLv3 litsentsi alusel.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.