Projektveröffentlichung , das es ermöglicht, Betriebssysteme einer einzelnen Anwendung zu erstellen, in denen die Anwendung als selbstständiger „unikernel“ geliefert wird, der ohne Betriebssysteme, separate Betriebssystemkerne und ohne jegliche Schichten ausgeführt werden kann. Für die Anwendungsentwicklung wird die Sprache OCaml verwendet. Der Code des Projekts steht unter der freien ISC-Lizenz.
Alle niedrigen Funktionalitäten, die für ein Betriebssystem charakteristisch sind, werden in Form einer Bibliothek implementiert, die an die Anwendung angehängt wird. Die Anwendung kann in jedem Betriebssystem entwickelt werden, bevor sie in einen spezialisierten Kern kompiliert wird (Konzept ), der direkt über Hypervisoren wie Xen, KVM, BHyve und VMM (OpenBSD), über mobile Plattformen oder als Prozess in einer POSIX-kompatiblen Umgebung oder in Cloud-Umgebungen wie Amazon Elastic Compute Cloud und Google Compute Engine ausgeführt werden kann.
Die generierte Umgebung enthält nichts Überflüssiges und interagiert direkt mit dem Hypervisor, ohne Treiber und Systemschichten, was zu einer erheblichen Reduzierung der Overheadkosten und zu einer erhöhten Sicherheit führt. Die Arbeit mit MirageOS besteht aus drei Phasen: Konfigurationserstellung mit der Definition der in der Umgebung verwendeten , Erstellung der Umgebung und Ausführung der Umgebung. Die Laufzeit, um die Funktionalität über Xen bereitzustellen, basiert auf einem abgespeckten Kern , während für andere Hypervisoren und Systeme auf der Basis des Kerns .
Obwohl Anwendungen und Bibliotheken in der hochgradigen Sprache OCaml erstellt werden, zeigen die endgültigen Umgebungen eine recht gute Leistung und eine minimale Größe (zum Beispiel benötigt der DNS-Server nur 200 KB). Die Wartung der Umgebungen wird ebenfalls vereinfacht, da es bei Bedarf für die Aktualisierung eines Programms oder Änderungen der Konfiguration ausreicht, eine neue Umgebung zu erstellen und zu starten. Es werden in der Sprache OCaml zur Durchführung von Netzwerkoperationen (DNS, SSH, OpenFlow, HTTP, XMPP usw.), zur Arbeit mit Speicher und zur Sicherstellung der parallelen Datenverarbeitung unterstützt.
Die wichtigsten Änderungen in der neuen Version betreffen die Unterstützung neuer Funktionen, die im Toolkit (Sandbox-Umgebung zur Ausführung von unikernel):
- Die Möglichkeit, unikernel MirageOS in einer isolierten Umgebung („sandboxed process tender“) aus dem Toolkit auszuführen, wurde hinzugefügt. Bei der Verwendung des spt-Backends werden MirageOS-Kerne in Benutzerprozessen von Linux gestartet, die mit einer minimalen Isolation basierend auf seccomp-BPF versehen sind;
- Die Unterstützung wurde umgesetzt vom Solo5-Projekt, das die Definition mehrerer an unikernel angehängter Netzwerkadapter und Speichereinheiten ermöglicht, bei Isolation basierend auf den Backends hvt, spt und muen (die Nutzung für die Backends genode und virtio ist derzeit auf ein Gerät beschränkt);
- Die Sicherheit der auf Solo5 basierenden Backends (hvt, spt) wurde verstärkt, beispielsweise wird eine Kompilierung im SSP-Modus (Stack Smashing Protection) sichergestellt.
Quelle: opennet.ru
