Den första experimentella utgåvan av Neptune OS-projektet har publicerats, vilket utvecklar ett lager ovanpå mikro-kärnan seL4 med implementation av komponenter från Windows NT-kärnan, riktat mot att stödja körning av Windows-applikationer. Koden distribueras under GPLv3-licensen.
Projektet implementerar "NT Executive", en av nivåerna av Windows NT-kärnan (NTOSKRNL.EXE), som ansvarar för att tillhandahålla API:er för systemanrop från NT Native och ett gränssnitt för att arbeta med drivrutiner. I Neptune OS körs komponenten NT Executive och alla drivrutiner inte på kärnnivå, utan som användarprocesser i en miljö baserad på mikro-kärnan seL4. Samverkan mellan NT Executive-komponenten och drivrutinerna sker genom det inbyggda seL4 IPC. De tillhandahållna systemanropen möjliggör drift av biblioteket NTDLL.DLL med en implementation av Win32 API, som används i applikationer.
Den första versionen av Neptune OS inkluderar en tangentbordstryrare (kbdclass.sys), PS/2-portdrivrutin (i8042prt.sys), en ljudsignaldrivrutin (beep.sys) och en kommandotolk (ntcmd.exe), som har överförts från ReactOS och gör det möjligt att demonstrera de grundläggande principerna för hur systemet är organiserat. Storleken på bootavbilden är 1,4 MB.
Det slutgiltiga målet är att få lagret till en nivå som är tillräcklig för att portera användarmiljön och drivrutinerna från ReactOS. Utvecklarna överväger även möjligheten att uppnå binär kompatibilitet med Windows körbara filer och acceptabel kompatibilitet på källkodsnivå med Windows-kärndrivrutiner.
Det främsta hindret för att stödja Windows-drivrutiner är nämnandet av att de flesta drivrutiner i Windows-kärnan använder ett icke-standardiserat kommunikationsprotokoll för att kommunicera med andra drivrutiner, istället för att direkt överföra pekare, vilket inte kan realiseras i Neptune OS på grund av att drivrutinerna körs i olika processer.
Källa: opennet.ru
