Proiectul Neptune OS dezvoltă un strat de compatibilitate Windows bazat pe microkernel-ul seL4

A fost publicată prima lansare experimentală a proiectului Neptune OS, dezvoltând un add-on la microkernel-ul seL4 cu implementarea componentelor kernel-ului Windows NT, menit să ofere suport pentru rularea aplicațiilor Windows. Codul este distribuit sub licența GPLv3.

Proiectul este implementat de „NT Executive”, unul dintre straturile de nucleu Windows NT (NTOSKRNL.EXE), responsabil pentru furnizarea API-ului de apel de sistem NT Native și a interfeței pentru operarea driverului. În Neptune OS, componenta NT Executive și toate driverele nu rulează la nivel de kernel, ci sub formă de procese de utilizator într-un mediu bazat pe microkernel-ul seL4. Interacțiunea componentei NT Executive cu driverele se realizează prin IPC standard seL4. Apelurile de sistem furnizate fac posibilă asigurarea faptului că biblioteca NTDLL.DLL funcționează cu implementarea interfeței de programare Win32 utilizată în aplicații.

Prima versiune a sistemului de operare Neptune include un driver de tastatură (kbdclass.sys), un driver de port PS/2 (i8042prt.sys), un driver de bip (beep.sys) și un interpret de linie de comandă (ntcmd.exe), portat de la ReactOS și permițând demonstrarea principiilor de bază ale organizării muncii. Dimensiunea imaginii de boot este de 1.4 MB.

Scopul final este de a aduce stratul la o stare suficientă pentru a porta mediul utilizatorului și driverele ReactOS. Dezvoltatorii iau în considerare și posibilitatea de a obține compatibilitate binară cu fișierele executabile Windows și compatibilitate acceptabilă la nivel de sursă cu driverele kernel-ului Windows.

Principalul obstacol în asigurarea suportului pentru driverele Windows este utilizarea în majoritatea driverelor de kernel Windows nu a unui protocol de comunicație standard la accesarea altor drivere, ci a transferului direct cu pointer, care nu poate fi implementat în sistemul de operare Neptune din cauza driverelor care rulează în diferite procese.

Sursa: opennet.ru

Adauga un comentariu