Die erste experimentelle Version des Projekts Neptune OS wurde veröffentlicht, das eine Schicht über dem Mikrokernel seL4 mit der Implementierung von Windows NT-Kernkomponenten entwickelt, um die Ausführung von Windows-Anwendungen zu unterstützen. Der Code wird unter der GPLv3-Lizenz verbreitet.
Das Projekt implementiert "NT Executive", eine der Ebenen des Windows NT-Kerns (NTOSKRNL.EXE), die für die Bereitstellung der NT Native Systemaufruf-API und für die Schnittstelle zur Arbeit mit Treibern verantwortlich ist. In Neptune OS wird die NT Executive-Komponente sowie alle Treiber nicht im Kernel-Level, sondern in Form von Benutzerprozessen in einer Umgebung, die auf dem Mikrokernel seL4 basiert, ausgeführt. Die Interaktion der NT Executive-Komponente mit den Treibern erfolgt über das standardmäßige seL4 IPC. Die bereitgestellten Systemaufrufe ermöglichen den Betrieb der Bibliothek NTDLL.DLL mit der Implementierung der Win32-Schnittstelle, die in Anwendungen verwendet wird.
Die erste Version von Neptune OS umfasst den Tastaturtreiber (kbdclass.sys), den PS/2-Port-Treiber (i8042prt.sys), den Signaltontreiber (beep.sys) und den Kommandozeileninterpreter (ntcmd.exe), die aus ReactOS übertragen wurden und die Grundprinzipien der Arbeitsorganisation demonstrieren. Die Größe des Boot-Images beträgt 1,4 MB.
Das Endziel besteht darin, die Schicht so weit zu entwickeln, dass eine Portierung der Benutzerumgebung und der Treiber von ReactOS möglich ist. Die Entwickler erwägen auch die Möglichkeit, binäre Kompatibilität mit Windows-Executable-Dateien zu erreichen und eine akzeptable Kompatibilität auf Quellcodeebene mit Windows-Kernel-Treibern zu gewährleisten.
Als das Haupthindernis auf dem Weg zur Unterstützung von Windows-Treibern wird die Verwendung eines nicht standardmäßigen Kommunikationsprotokolls in den meisten Windows-Kerneltreibern genannt, das beim Zugriff auf andere Treiber stattdessen direkte Zeigerübertragungen verwendet. Dies kann in Neptune OS aufgrund der Ausführung der Treiber in verschiedenen Prozessen nicht umgesetzt werden.
Quelle: opennet.ru
