Der Prototyp des lokalen Betriebssystems Phantom auf Basis von Genode wird bis Ende des Jahres fertiggestellt sein.

Dmitry Zavalishin berichtete über ein Projekt zur Portierung der virtuellen Maschine des Phantom-Betriebssystems für die Nutzung in der Umgebung des Mikrokernel-Betriebssystems Genode. In dem Interview wird hervorgehoben, dass die Hauptversion von Phantom bereits bereit für Pilotprojekte ist, während die Genode-basierte Version bis Ende des Jahres einsatzbereit gemacht werden soll. Derzeit wird auf der Projektwebsite nur ein funktionierender Konzeptprototyp vorgestellt, dessen Stabilität und Funktionalität jedoch noch nicht auf ein industrielles Niveau gebracht wurden. Zu den nächstgelegenen Plänen gehört die Entwicklung einer Alpha-Version, die für Experimente durch Drittentwickler geeignet ist.

Der Code des Projekts wird unter der LGPL-Lizenz verbreitet, wobei die letzte Änderung im Hauptrepository auf November 2019 datiert ist. Die öffentliche Aktivität im Zusammenhang mit dem Projekt konzentriert sich auf ein Repository mit einem Fork für Genode, das seit Dezember 2020 von Anton Antonov, einem Studenten der Innopolis-Universität, unterstützt wird.

Das Betriebssystem Phantom hat sich seit den Anfangsjahren 2000 als persönliches Projekt von Dmitry Zavalishin entwickelt und wurde 2010 unter die Fittiche des von Dmitry gegründeten Unternehmens Digital Zone gestellt. Das System zeichnet sich durch eine hohe Zuverlässigkeit aus und verwendet das Konzept "Alles ist ein Objekt" anstelle von "Alles ist eine Datei", was eine Dateiverwendung überflüssig macht, indem es den Zustands der Speicherverwaltung und einen kontinuierlichen Arbeitszyklus ermöglicht. Anwendungen in Phantom werden nicht beendet, sondern lediglich pausiert und setzen ihre Arbeit von dem Punkt fort, an dem sie unterbrochen wurden. Alle Variablen und Datenstrukturen können so lange gespeichert werden, wie es die Anwendung benötigt, ohne dass der Programmierer sich um die Datenspeicherung kümmern muss.

Anwendungen in Phantom werden in Bytecode kompiliert, der in einer Stack-virtuellen Maschine ausgeführt wird, ähnlich der Java-virtuellen Maschine. Die virtuelle Maschine gewährleistet die Persistenz des Anwendungs-Speichers — das System speichert regelmäßig Statuss snapshots der virtuellen Maschine auf einem dauerhaften Medium. Nach einem Ausschalten oder einem plötzlichen Abbruch kann die Arbeit ab dem letzten gespeicherten Speicher- snapshot fortgesetzt werden. Snapshots werden asynchron erstellt und ohne die Aussetzung des Betriebs der virtuellen Maschine, allerdings wird in dem Snapshot ein einmaliger Zustand festgehalten, als ob man die virtuelle Maschine gestoppt, auf die Festplatte gespeichert und dann wieder gestartet hätte.

Alle Anwendungen laufen in einem gemeinsamen globalen Adressraum, der es ermöglicht, ohne Kontextwechsel zwischen dem Kernel und den Anwendungen auszukommen. Dies vereinfacht und beschleunigt die Interaktion zwischen den in der virtuellen Maschine ausgeführten Anwendungen erheblich, da sie Objekte über die Übergabe von Referenzen austauschen können. Der Zugriff erfolgt auf Objektebene, wobei Verweise nur über den Aufruf entsprechender Methoden erhalten werden können (Pointerarithmetik ist nicht vorhanden). Alle Daten, einschließlich numerischer Werte, werden als separate Objekte behandelt.

Für die Anwendung wirkt die Arbeit kontinuierlich und ist unabhängig von Betriebssystemneustarts, unerwarteten Abstürzen und dem Ausschalten des Computers. Das Programmiermodell für Phantom wird mit dem gleichzeitigen Betrieb eines nie stoppenden Prozesses verglichen. Server Anwendungen für objekorientierte Programmiersprachen. Eine der Hauptmethoden zur Entwicklung von Anwendungen ist die Portierung von Phantom-Programmen in der Programmiersprache Java, was durch die Ähnlichkeit der Phantom-Virtual Machine mit der JVM unterstützt wird. Neben dem Bytecode-Compiler für die Programmiersprache Java plant das Projekt auch die Erstellung von Compilern für Python und C# sowie die Implementierung eines Transpilers für WebAssembly.

Um Operationen mit hoher Leistung auszuführen, wie z. B. die Verarbeitung von Video und Audio, besteht die Möglichkeit, binäre Objekte mit nativen Code in separaten Threads auszuführen (LLVM wird für die Erstellung der binären Objekte verwendet). Um auf die Low-Level-Dienste des Kernels zuzugreifen, werden einige Klassen der VM ("interne" Klassen) auf Kernel-Ebene implementiert. Für die Ausführung von Linux-Anwendungen ist eine POSIX-Schicht vorgesehen, die die erforderlichen Aufrufe für den Betrieb von Unix-Prozessen emuliert (Persistenz für Anwendungen in der POSIX-Schicht wird derzeit nicht angeboten).

Der Prototyp des lokalen Betriebssystems Phantom auf Basis von Genode wird bis Ende des Jahres fertiggestellt sein.

Das traditionelle Betriebssystem Phantom umfasst neben der virtuellen Maschine einen eigenen Kernel mit Implementierungen für Threads, ein Speichermanager, einen Garbage Collector, Synchronisationsmechanismen, ein Eingabe-/Ausgabesystem und Treiber für die Hardware, was die Vorbereitung des Projekts für den breiten Einsatz erheblich erschwert. Die Komponenten mit Netzwerk-Stack, Grafik-Subsystem und Benutzeroberfläche werden separat entwickelt. Bemerkenswert ist, dass das Grafik-Subsystem und der Fenster-Manager auf Kernel-Ebene operieren.

Zur Steigerung der Stabilität, Portabilität und Sicherheit des Projekts wurde ein Versuch unternommen, die Phantom-Virtualisierungsmaschine für die Nutzung mit Komponenten des offenen Mikrokernel-Betriebssystems Genode anzupassen, dessen Entwicklung von dem deutschen Unternehmen Genode Labs betreut wird. Für diejenigen, die mit Phantom auf Basis von Genode experimentieren möchten, wurde eine spezielle Build-Umgebung auf Docker-Basis vorbereitet.

Die Verwendung von Genode ermöglicht den Einsatz bewährter Mikrokernel und Treiber sowie die Auslagerung der Treiber in den Benutzerraum (derzeit sind die Treiber in C geschrieben und laufen auf Kernel-Ebene von Phantom). Zudem wird die Möglichkeit geschaffen, das Mikrokernel seL4 zu verwenden, das mathematisch auf seine Zuverlässigkeit verifiziert wurde, was bestätigt, dass die Implementierung vollständig den Spezifikationen entspricht, die in formaler Sprache festgelegt sind. Es wird auch die Möglichkeit geprüft, einen ähnlichen Zuverlässigkeitsnachweis für die Phantom-VM zu erbringen, was die Verifizierung der gesamten Betriebsumgebung ermöglicht.

Als Hauptanwendungsbereich des auf Genode basierenden Ports wird die Entwicklung von Anwendungen für verschiedene industrielle und eingebettete Geräte genannt. Derzeit wurde bereits ein Satz von Änderungen für die virtuelle Maschine vorbereitet und funktionierende Genode-Bindungen für die Persistenz der Kernkomponenten und grundlegenden Low-Level-Schnittstellen hinzugefügt. Es wird angemerkt, dass virtuelle Maschine Phantom kann bereits in der 64-Bit-Umgebung von Genode betrieben werden, jedoch steht noch die Implementierung des VM-Betriebs im Persistenzmodus aus, außerdem müssen das Treibersystem überarbeitet und die Komponenten mit Netzwerkstack und grafischem Subsystem für Genode angepasst werden.

Der Prototyp des lokalen Betriebssystems Phantom auf Basis von Genode wird bis Ende des Jahres fertiggestellt sein.
Der Prototyp des lokalen Betriebssystems Phantom auf Basis von Genode wird bis Ende des Jahres fertiggestellt sein.
Der Prototyp des lokalen Betriebssystems Phantom auf Basis von Genode wird bis Ende des Jahres fertiggestellt sein.


Quelle: opennet.ru
Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster