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
IoConnectInterrupt
yIoCallDriver
.Pe Windows, acestea sunt încărcate în modul kernel și conectate cu
NTOSKRNL.EXE
imagine. Î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.