Neptune OS: o personalizare WinNT a microkernel-ului seL4

Publicarea primei versiuni experimentale a proiectului Neptune OS, care diferă de proiectul lui distribuția Linux bazată pe Debian cu același nume.

Acest sistem despre care vom vorbi astăzi se caracterizează prin dezvoltarea unui plugin pentru microkernel-ul seL4 cu implementarea componentelor kernel-ului Windows NT, cu scopul de a furniza suport pentru rularea aplicațiilor Windows. 

Despre Neptune OS

proiectul iimplementează „Executivul NT”, unul dintre straturile nucleului Windows NT (NTOSKRNL.EXE), responsabil pentru furnizarea API-ului de apel de sistem NT Native și a interfeței pentru ca driverele să funcționeze.

Pe Neptune OS, componenta NT Executive și toate driverele nu rulează la nivel de kernel, dar ca procese de utilizator într-un mediu bazat pe microkernel-ul seL4. Interacțiunea componentei NT Executive cu driverele se realizează prin standardul seL4 IPC. Apelurile de sistem furnizate fac posibil ca biblioteca NTDLL.DLL să funcționeze cu o implementare a API-ului Win32 utilizat în aplicații.

 NT Executive este, de asemenea, responsabil pentru interfața driverului kernel-ului Windows (cunoscut sub numele de modelul driverului Windows), care include caracteristici precum IoConnectInterruptIoCallDriver

Pe Windows, acestea sunt încărcate în modul kernel și conectate cuNTOSKRNL.EXEimagine. În sistemul de operare Neptune, rulăm toate driverele de kernel Windows în modul utilizator și acestea comunică cu procesul NT Executive prin primitivele standard seL4 IPC.

Scopul final din proiectul Neptune OS este să implementezi suficientă semantică NT astfel încât mediul de utilizator ReactOS să poată fi portat sub Neptune OS, precum și majoritatea driverelor de kernel ReactOS.

În teorie, dezvoltatorii menționează că ar trebui să poată atinge compatibilitatea binară cu executabile Windows native atâta timp cât implementarea oferită a API-ului NT nativ este suficient de fidelă.

De asemenea, ar trebui să putem obține un grad ridicat de compatibilitate a codului sursă cu driverele de kernel Windows. Principalul obstacol în calea realizării compatibilității binare a driverelor de kernel este că multe drivere de kernel Windows nu urmează protocolul standard de comunicare a driverului Windows (adică trec IRP-uri atunci când trebuie să apeleze un alt driver) și, în schimb, trec doar pointeri și apelează direct alți controlere. . Pe Neptune OS, cu excepția cazului în care este o pereche driver-minidriver, rulăm întotdeauna „kernel”.

Despre Neptune OS 0.1.0001

Starea proiectului în acest moment este o versiune preliminară, deoarece până acum am reușit să implementăm suficiente primitive NT pentru a încărca un teanc de bază de drivere de tastatură, care include driverul de clasă de tastatură kbdclass.sys și driverul de port. PS/ 2 i8042prt.sys, precum și un prompt de comandă de bază ntcmd.exe, preluat din proiectul ReactOS.

Aproape niciuna dintre comenzile shell nu funcționează, dar stiva de tastaturi este stabilă. Compilările de depanare pot fi puțin lente, deoarece sunt generate prea multe jurnale de depanare.

Dar se menționează că acestea pot fi dezactivate în cod (ar trebui să indicați spre private/ntos/inc). Se mai mentioneaza ca a fost inclus un driver "beep.sys" (ceea ce nu are sens, dar doar dezvoltatorul va sti de ce) care scoate un sunet enervant in difuzorul PC-ului si ca pentru a-l auzi trebuie sa dezactivati ​​sunetul. (mai ales dacă folosești pulseaudio).

Toate controlerele rulează în spațiul utilizatorului! Întregul sistem se potrivește pe o dischetă și poate fi descărcat din versiunea v0.1.0001. De asemenea, îl puteți construi singur, procedura pentru care este descrisă în secțiunea următoare.

În fine, pentru cei care sunt interesați să afle puțin mai multe despre proiect, puteți consulta detaliile În următorul link.

Dimensiunea imaginii de pornire este de 1,4 MB, iar codul este lansat sub licență GPLv3.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.