Neptune OS: eine WinNT-Anpassung des seL4-Mikrokernels

Die Veröffentlichung der ersten experimentellen Version des Neptune OS-Projekts, die sich von dem Projekt von unterscheidet die Debian-basierte Linux-Distribution mit dem gleichen Namen.

Dieses System, über das wir heute sprechen werden zeichnet sich durch die Entwicklung eines Plugins für den seL4-Mikrokernel aus mit der Implementierung von Windows NT-Kernelkomponenten, mit dem Ziel der Bereitstellung Unterstützung für die Ausführung von Windows-Anwendungen. 

Über Neptune OS

das Projekt iimplementiert die "NT Executive", eine der Schichten des Windows NT-Kernels (NTOSKRNL.EXE), verantwortlich für die Bereitstellung der nativen NT-Systemaufruf-API und -Schnittstelle, damit die Treiber funktionieren.

Unter Neptune OS die Komponente NT Executive und alle Treiber laufen nicht auf Kernelebene, aber als Benutzerprozesse in einer Umgebung, die auf dem seL4-Mikrokernel basiert. Die Interaktion der NT-Executive-Komponente mit den Treibern erfolgt über den seL4-IPC-Standard. Die bereitgestellten Systemaufrufe ermöglichen es der NTDLL.DLL-Bibliothek, mit einer Implementierung der in Anwendungen verwendeten Win32-API zusammenzuarbeiten.

 NT Executive ist auch für die Windows-Kernel-Treiberschnittstelle (als Windows-Treibermodell bekannt) verantwortlich, die Funktionen wie z IoConnectInterruptIoCallDriver

Unter Windows werden diese im Kernelmodus geladen und mit der verknüpftNTOSKRNL.EXEBild. Im Neptune-Betriebssystem führen wir alle Windows-Kerneltreiber im Benutzermodus aus, und sie kommunizieren mit dem NT-Executive-Prozess über die standardmäßigen seL4-IPC-Grundelemente.

Das Endziel aus dem Neptune OS-Projekt ist es, genügend NT-Semantik zu implementieren damit die ReactOS-Benutzerumgebung unter Neptune OS portiert werden kann, sowie die meisten ReactOS-Kerneltreiber.

Theoretisch die Entwickler erwähnt, dass sie in der Lage sein sollten, binäre Kompatibilität zu erreichen mit nativen ausführbaren Windows-Dateien, solange die angebotene Implementierung der nativen NT-API treu genug ist.

Wir sollten auch in der Lage sein, ein hohes Maß an Quellcode-Kompatibilität mit Windows-Kernel-Treibern zu erreichen. Das Haupthindernis für das Erreichen der Binärkompatibilität von Kerneltreibern besteht darin, dass viele Windows-Kerneltreiber nicht dem standardmäßigen Windows-Treiberkommunikationsprotokoll folgen (d. h. sie übergeben IRPs, wenn sie einen anderen Treiber aufrufen müssen) und stattdessen einfach Zeiger weitergeben und andere Controller direkt aufrufen . Unter Neptune OS führen wir immer "Kernel" aus, es sei denn, es handelt sich um ein Treiber-Minitreiber-Paar.

Über Neptune OS 0.1.0001

Der Status des Projekts ist zu diesem Zeitpunkt eine vorläufige Version, da wir bisher in der Lage waren, genügend NT-Primitive zu implementieren, um einen grundlegenden Stapel von Tastaturtreibern zu laden, der den Tastaturklassentreiber kbdclass.sys und den Porttreiber enthält. PS/ 2 i8042prt.sys sowie eine einfache Eingabeaufforderung ntcmd.exe aus dem ReactOS-Projekt.

Kaum einer der Shell-Befehle funktioniert tatsächlich, aber der Tastaturstapel ist stabil. Debug-Builds können etwas langsam sein, da zu viele Debug-Protokolle generiert werden.

Aber es wird erwähnt, dass diese im Code deaktiviert werden können (Sie sollten auf private/ntos/inc zeigen). Es wird auch erwähnt, dass ein "beep.sys"-Treiber enthalten war (was keinen Sinn macht, aber nur der Entwickler wird wissen warum), der im PC-Lautsprecher ein nerviges Geräusch macht und dass Sie ihn aufheben müssen, um ihn zu hören (insbesondere wenn Sie pulseaudio verwenden).

Alle Controller laufen im User Space! Das gesamte System passt auf eine Diskette und kann ab Version v0.1.0001 heruntergeladen werden. Sie können es auch selbst bauen, die Vorgehensweise wird im nächsten Abschnitt beschrieben.

Schließlich können diejenigen, die daran interessiert sind, ein wenig mehr über das Projekt zu erfahren, die Details einsehen im folgenden Link.

Die Größe des Boot-Images beträgt 1,4 MB und der Code wird unter der GPLv3-Lizenz veröffentlicht.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.