Het Neptune OS-project ontwikkelt een Windows-compatibiliteitslaag gebaseerd op de seL4-microkernel

De eerste experimentele release van het Neptune OS-project is gepubliceerd, waarin een add-on voor de seL4-microkernel wordt ontwikkeld met de implementatie van Windows NT-kernelcomponenten, gericht op het bieden van ondersteuning voor het draaien van Windows-applicaties. De code wordt gedistribueerd onder de GPLv3-licentie.

Het project wordt geïmplementeerd door "NT Executive", een van de Windows NT-kernellagen (NTOSKRNL.EXE), verantwoordelijk voor het leveren van de NT Native systeemaanroep-API en interface voor bediening van het stuurprogramma. In Neptune OS draaien de NT Executive-component en alle stuurprogramma's niet op kernelniveau, maar in de vorm van gebruikersprocessen in een omgeving gebaseerd op de seL4-microkernel. De interactie van de NT Executive-component met chauffeurs wordt uitgevoerd via de standaard seL4 IPC. De aangeboden systeemaanroepen maken het mogelijk om ervoor te zorgen dat de NTDLL.DLL-bibliotheek werkt met de implementatie van de Win32-programmeerinterface die in toepassingen wordt gebruikt.

De eerste versie van Neptune OS bevat een toetsenborddriver (kbdclass.sys), een PS/2-poortdriver (i8042prt.sys), een piepdriver (beep.sys) en een opdrachtregelinterpreter (ntcmd.exe), geporteerd vanuit ReactOS en het demonstreren van de basisprincipes van de werkorganisatie. De grootte van de opstartimage is 1.4 MB.

Het uiteindelijke doel is om de laag in een staat te brengen die voldoende is om de gebruikersomgeving en ReactOS-stuurprogramma's over te zetten. De ontwikkelaars overwegen ook de mogelijkheid om binaire compatibiliteit te bereiken met uitvoerbare Windows-bestanden en acceptabele compatibiliteit op bronniveau met Windows-kernelstuurprogramma's.

Het belangrijkste obstakel bij het bieden van ondersteuning voor Windows-stuurprogramma's is het gebruik in de meeste Windows-kernelstuurprogramma's niet van een standaard communicatieprotocol bij toegang tot andere stuurprogramma's, maar van directe pointeroverdracht, die niet kan worden geïmplementeerd in Neptune OS omdat de stuurprogramma's in verschillende processen draaien.

Bron: opennet.ru

Voeg een reactie