Neptune OS: WinNT přizpůsobení mikrojádra seL4

Zveřejnění první experimentální verze projektu Neptune OS, která se liší od projektu distribuce Linuxu založená na Debianu se stejným názvem.

Tento systém, o kterém budeme dnes mluvit se vyznačuje vývojem pluginu pro mikrokernel seL4 s implementací součástí jádra Windows NT s cílem poskytnout podpora spouštění aplikací pro Windows. 

O systému Neptune OS

projekt Iimplementuje "NT Executive", jedna z vrstev jádra Windows NT (NTOSKRNL.EXE), zodpovědná za poskytování API a rozhraní pro fungování ovladačů nativního systémového volání NT.

V operačním systému Neptune je komponenta NT Executive a všechny ovladače neběží na úrovni jádra, ale jako uživatelské procesy v prostředí založeném na mikrojádru seL4. Interakce komponenty NT Executive s ovladači se provádí prostřednictvím standardu seL4 IPC. Poskytnutá systémová volání umožňují knihovně NTDLL.DLL pracovat s implementací Win32 API používaného v aplikacích.

 NT Executive je také zodpovědný za rozhraní ovladače jádra Windows (známé jako model ovladače Windows), které zahrnuje funkce jako např IoConnectInterruptIoCallDriver

V systému Windows jsou načteny v režimu jádra a propojeny sNTOSKRNL.EXEobraz. V OS Neptune spouštíme všechny ovladače jádra Windows v uživatelském režimu a komunikují s procesem NT Executive prostřednictvím standardních primitiv seL4 IPC.

Konečný cíl z projektu Neptune OS je implementovat dostatek sémantiky NT takže uživatelské prostředí ReactOS může být portováno pod Neptune OS, stejně jako většina ovladačů jádra ReactOS.

Teoreticky vývojáři uvádí, že by měly být schopny dosáhnout binární kompatibility s nativními spustitelnými soubory Windows, pokud je nabízená implementace nativního NT API dostatečně věrná.

Měli bychom být také schopni dosáhnout vysokého stupně kompatibility zdrojového kódu s ovladači jádra Windows. Hlavní překážkou pro dosažení binární kompatibility ovladačů jádra je to, že mnoho ovladačů jádra systému Windows se neřídí standardním komunikačním protokolem ovladačů Windows (tj. předávají IRP, když potřebují zavolat jiný ovladač) a místo toho pouze předávají ukazatele a volají přímo jiné ovladače. . Na Neptune OS, pokud se nejedná o pár ovladač-miniovladač, vždy spouštíme „kernel“.

O Neptune OS 0.1.0001

Stav projektu je v tuto chvíli předběžná verze, protože jsme zatím byli schopni implementovat dostatek NT primitiv pro načtení základní sady ovladačů klávesnice, která zahrnuje ovladač třídy klávesnice kbdclass.sys a ovladač portu. PS/ 2 i8042prt.sys a také základní příkazový řádek ntcmd.exe převzatý z projektu ReactOS.

Téměř žádný z příkazů shellu ve skutečnosti nefunguje, ale zásobník klávesnice je stabilní. Sestavení ladění může být trochu pomalé, protože se generuje příliš mnoho protokolů ladění.

Ale je zmíněno, že je lze deaktivovat v kódu (měli byste ukázat na private/ntos/inc). Je také zmíněno, že byl přiložen ovladač "beep.sys" (což nedává smysl, ale pouze vývojář bude vědět proč), který vydává nepříjemný zvuk v reproduktoru počítače a že jej chcete slyšet, musíte jej zapnout (zejména pokud používáte pulseaudio).

Všechny ovladače běží v uživatelském prostoru! Celý systém se vejde na jednu disketu a je ke stažení od verze v0.1.0001. Můžete si ho postavit i sami, postup je popsán v další části.

Na závěr pro ty, kteří mají zájem dozvědět se o projektu trochu více, můžete konzultovat podrobnosti Na následujícím odkazu.

Velikost spouštěcího obrazu je 1,4 MB a kód je uvolněn pod licencí GPLv3.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.