Projekt-Releases , das die Erstellung von Ein-Application-Betriebssystemen ermöglicht, in denen die Anwendung als eigenständiger "Unikernel" bereitgestellt wird, der ohne Betriebssysteme, separates Betriebssystem-Kernel und jegliche Zwischenlagen ausgeführt werden kann. Für die Anwendungsentwicklung wird die Sprache OCaml verwendet. Der Projektcode steht unter der ISC-Lizenz.
Alle untersten Funktionen, die typisch für ein Betriebssystem sind, werden in Form einer Bibliothek umgesetzt, die an die Anwendung angehängt wird. Die Anwendung kann auf jedem Betriebssystem entwickelt werden, bevor sie in einen spezialisierten Kernel (Konzept der ) kompiliert wird, der direkt über Hypervisoren wie Xen, KVM, BHyve und VMM (OpenBSD) oder auf Mobilplattformen, 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 Systemzwischenlagen, was zu erheblichen Einsparungen bei den Betriebskosten und zu einer erhöhten Sicherheit führt. Die Arbeit mit MirageOS besteht aus drei Phasen: der Vorbereitung der Konfiguration mit der Definition der verwendeten Umgebungen , dem Aufbau der Umgebung und dem Start der Umgebung. Die Runtime zur Unterstützung des Betriebs über Xen basiert auf einem minimierten Kern , während für andere Hypervisoren und Systeme auf der Basis des Kerns .
Obwohl Anwendungen und Bibliotheken in der hochgradigen Programmiersprache OCaml erstellt werden, zeigen die endgültigen Umgebungen eine durchaus respektable Leistung und eine minimale Größe (z. B. benötigt der DNS-Server nur 200 KB). Auch die Wartung der Umgebungen wird erleichtert, da bei Bedarf zur Programmaktualisierung oder Änderung der Konfiguration einfach eine neue Umgebung erstellt und gestartet werden kann. Es werden in OCaml zur Durchführung von Netzwerkoperationen (DNS, SSH, OpenFlow, HTTP, XMPP usw.), zur Arbeit mit Speicherressourcen und zur Gewährleistung der parallelen Datenverarbeitung unterstützt.
Die wesentlichen Änderungen in der neuen Version beziehen sich auf die Unterstützung neuer Funktionen, die im Toolkit angeboten werden. (Sandbox-Umgebung für die Ausführung von Unikernels):
- Die Möglichkeit zum Starten des Unikernels MirageOS in einer isolierten Umgebung wurde hinzugefügt. („sandboxed process tender“), bereitgestellt durch das Toolkit. Beim Einsatz des spt-Backends werden die MirageOS-Kerne in Benutzerprozessen von Linux gestartet, wobei eine minimale Isolation über seccomp-BPF angewendet wird.
- Unterstützung für vom Projekt Solo5, das ermöglicht, mehrere an den Unikernel angeschlossene Netzwerkadapter und Speichereinheiten bei der Isolation basierend auf den Backends hvt, spt und muen zu definieren (die Nutzung der Backends Genode und Virtio ist derzeit auf ein Gerät beschränkt).
- Der Schutz der auf Solo5 basierenden Backends (hvt, spt) wurde verstärkt, beispielsweise durch die Bereitstellung des Builds im SSP-Modus (Stack Smashing Protection).
Quelle: opennet.ru
