Neptun OS: një personalizim WinNT i mikrokernelit seL4

Publikimi i versionit të parë eksperimental të projektit Neptun OS, i cili ndryshon nga projekti i shpërndarja Linux e bazuar në Debian me të njëjtin emër.

Ky sistem për të cilin do të flasim sot karakterizohet nga zhvillimi i një shtojce për mikrokernelin seL4 me implementimin e komponentëve të kernelit të Windows NT, me synimin për të ofruar mbështetje për ekzekutimin e aplikacioneve Windows. 

Rreth Neptun OS

projekti izbaton "ekzekutivin NT", një nga shtresat e kernelit të Windows NT (NTOSKRNL.EXE), përgjegjës për ofrimin e API-së së thirrjes së sistemit NT Native dhe ndërfaqen për funksionimin e drejtuesve.

Në Neptun OS, komponenti Ekzekutivi NT dhe të gjithë drejtuesit nuk funksionojnë në nivelin e kernelit, por ndërsa përdoruesi përpunon në një mjedis të bazuar në mikrokernelin seL4. Ndërveprimi i komponentit NT Executive me drejtuesit kryhet përmes standardit seL4 IPC. Thirrjet e ofruara të sistemit bëjnë të mundur që biblioteka NTDLL.DLL të punojë me një implementim të API-së Win32 të përdorur në aplikacione.

 NT Executive është gjithashtu përgjegjës për ndërfaqen e drejtuesit të kernelit të Windows (i njohur si modeli i drejtuesit të Windows), i cili përfshin veçori të tilla si IoConnectInterruptIoCallDriver

Në Windows, këto ngarkohen në modalitetin e kernelit dhe lidhen meNTOSKRNL.EXEimazh. Në sistemin operativ Neptun, ne ekzekutojmë të gjithë drejtuesit e kernelit të Windows në modalitetin e përdoruesit dhe ata komunikojnë me procesin ekzekutiv NT përmes primitivëve standardë seL4 IPC.

Qëllimi përfundimtar nga projekti Neptun OS është të zbatojë mjaft semantikë NT në mënyrë që mjedisi i përdoruesit të ReactOS të mund të transportohet nën Neptune OS, si dhe shumica e drejtuesve të kernelit ReactOS.

Në teori, zhvilluesit përmend se ata duhet të jenë në gjendje të arrijnë përputhshmëri binare me ekzekutueshme amtare të Windows për sa kohë që zbatimi i ofruar i API-së amtare NT është mjaft besnik.

Ne gjithashtu duhet të jemi në gjendje të arrijmë një shkallë të lartë të përputhshmërisë së kodit burimor me drejtuesit e kernelit të Windows. Pengesa kryesore për arritjen e përputhshmërisë binare të drejtuesve të kernelit është se shumë drejtues të kernelit të Windows nuk ndjekin protokollin standard të komunikimit të drejtuesve të Windows (d.m.th. ata kalojnë IRP kur duhet të thërrasin një drejtues tjetër) dhe në vend të kësaj, ata thjesht kalojnë tregues dhe thërrasin kontrollues të tjerë drejtpërdrejt . Në Neptun OS, nëse nuk është një çift drejtues-minidriver, ne gjithmonë ekzekutojmë "kernel".

Rreth Neptun OS 0.1.0001

Gjendja e projektit në këtë kohë është një version paraprak, pasi deri më tani kemi qenë në gjendje të implementojmë mjaft primitivë NT për të ngarkuar një grup bazë të drejtuesve të tastierës, i cili përfshin drejtuesin e klasës së tastierës kbdclass.sys dhe drejtuesin e portit. PS/ 2 i8042prt.sys, si dhe një komandë bazë ntcmd.exe, marrë nga projekti ReactOS.

Vështirë se asnjë nga komandat e guaskës funksionon në të vërtetë, por grupi i tastierës është i qëndrueshëm. Ndërtimet e korrigjimit mund të jenë paksa të ngadalta pasi po krijohen shumë regjistra korrigjimi.

Por përmendet se këto mund të çaktivizohen në kod (duhet të tregoni privat/ntos/inc). Gjithashtu përmendet se është përfshirë një drejtues "beep.sys" (që nuk ka kuptim, por vetëm zhvilluesi do ta dijë pse) që lëshon një tingull të bezdisshëm në altoparlantin e PC-së dhe që për ta dëgjuar atë, duhet të hiqni zërin. (sidomos nëse përdorni pulseaudio).

Të gjithë kontrollorët funksionojnë në hapësirën e përdoruesit! I gjithë sistemi përshtatet në një disketë dhe mund të shkarkohet nga versioni v0.1.0001. Ju gjithashtu mund ta ndërtoni vetë, procedura për të cilën përshkruhet në pjesën tjetër.

Së fundi, për ata që janë të interesuar të dinë pak më shumë rreth projektit, mund të konsultohen me detajet Në lidhjen vijuese.

Madhësia e imazhit të nisjes është 1,4 MB dhe kodi lëshohet nën licencën GPLv3.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.