De eerste experimentele uitgave van het Neptune OS-project is gepubliceerd, dat een bovenlaag ontwikkelt bovenop de microkernel seL4 met implementatie van componenten van de Windows NT-kernel, gericht op het bieden van ondersteuning voor de uitvoering van Windows-applicaties. De code wordt verspreid onder de GPLv3-licentie.
Het project implementeert de "NT Executive", een van de lagen van de Windows NT-kernel (NTOSKRNL.EXE), verantwoordelijk voor het bieden van NT Native API-systeemaanroepen en een interface voor de werking van stuurprogramma's. In Neptune OS wordt de NT Executive-component en al zijn stuurprogramma's niet op kernelniveau uitgevoerd, maar in de vorm van gebruikersprocessen in een omgeving gebaseerd op de microkernel seL4. De interactie van de NT Executive-component met stuurprogramma's vindt plaats via standaard seL4 IPC. De aangeboden systeemaanroepen maken het mogelijk om de NTDLL.DLL-bibliotheek te laten functioneren met de implementatie van de Win32-programmeerinterface die wordt gebruikt in applicaties.
De eerste versie van Neptune OS omvat een toetsenbordstuurprogramma (kbdclass.sys), een PS/2-poortstuurprogramma (i8042prt.sys), een pieptonenstuurprogramma (beep.sys) en een opdrachtregelinterpreter (ntcmd.exe), overgebracht van ReactOS en waarmee de basisprincipes van de werking kunnen worden gedemonstreerd. De grootte van het opstartimage is 1,4 MB.
Het uiteindelijke doel is om de laag te ontwikkelen tot een niveau dat voldoende is voor het porteren van de gebruikersomgeving en stuurprogramma's van ReactOS. De ontwikkelaars overwegen ook de mogelijkheid om binaire compatibiliteit met uitvoerbare Windows-bestanden en acceptabele compatibiliteit op het niveau van de bronteksten met stuurprogramma's van de Windows-kernel te bereiken.
Als belangrijkste obstakel voor het bieden van ondersteuning voor Windows-stuurprogramma's wordt genoemd dat de meeste Windows-kernelstuurprogramma's een niet-standaard communicatieprotocol gebruiken voor toegang tot andere stuurprogramma's door directe pointeroverdracht, wat niet kan worden gerealiseerd in Neptune OS vanwege het draaien van stuurprogramma's in verschillende processen.
Bron: opennet.ru
