Definition

Unikernel

Ein Unikernel ist ein ausführbares Image, auch Abbild genannt, das ohne die Notwendigkeit eines separaten Betriebssystems nativ auf einem Hypervisor ausgeführt werden kann. Das Image enthält Anwendungscode sowie alle Betriebssystemfunktionen, die diese Anwendung benötigt.

Unikernel werden in der Regel unter Verwendung von Compilern erstellt, welche die Bibliothek der Betriebssysteme nutzen. Hierbei handelt es sich meistens um Sammlungen von Bibliotheken, die ein Betriebssystem zu den Kernkompetenzen zur Verfügung stellt. Dies ermöglicht es einem Entwickler für Unikernel selektiv nur diejenigen Bibliothekskomponenten zu aktivieren, die erforderlich sind, um eine Anwendung auszuführen.

Traditionelle Betriebssystemfunktionen, wie beispielsweise Netzwerk-Traffic oder Verwendung des Dateisystems, werden in der endgültigen, ausführbaren Version nach Bedarf selektiv zusammengestellt.

Unikernel verwenden nur einen Bruchteil der durch vollwertige Betriebssysteme wie Linux oder Microsoft Windows Server benötigten Ressourcen. Ihre geringe Größe ermöglicht Startzeiten von Sekundenbruchteilen und hohe Implementierungsdichten, die in der traditionellen Server-Virtualisierung unerreicht sind. Außerdem verringert die minimale Bereitstellung der Bibliothek-OS-Funktionen und das Fehlen von herkömmlichen Betriebssystemprogrammen die Angriffsfläche für böswillige Hacker sehr stark. Die Systeme sind also nicht nur schnell einsatzbereit, sondern häufig auch wesentlich sicherer als herkömmliche OS-Installationen. Einige Unikernel-Systeme nutzen typsichere Sprachen wie Haskell oder Erlang, während andere verbreitetere Sprachen wie C, C++ oder Java verwenden.

Das Unikernel-Konzept hat vor allem aufgrund der leichtgewichtigen Architektur sowie aufgrund der kurzen Boot-Zeiten als Cloud-Betriebssystem ein großes Potenzial. Damit bieten Unikernel-Betriebssysteme eine Alternative zu Containern zum Ausführen von Programm-Code mit Isolierung und einer hohen funktionalen Spezialisierung.

Allerdings eignen sich nicht alle Anwendungen gleichermaßen für die Ausführung auf Unikernel-Betriebssystemen. Anwendungen, die mehrere Prozesse in einer einzigen VM benötigen, sind beispielsweise keine guten Kandidaten. Eine große Anzahl von traditionellen Anwendungs-Images könnten sich allerdings viel ressourcensparender verhalten und könnten deutlich schneller ausgeführt werden, wenn sie als Unikernel neu kompiliert werden würden.

Zahlreiche Unikernel-Systeme stehen aus mehreren Quellen zur Verfügung, häufig über den Weg als OpenSource mit einer sehr aktiven Community. Einige der beliebtesten Unikernel-Systeme sind MirageOS aus dem Xen-Projekt-Inkubator, Drawbridge von Microsoft, Haskell Lightweight Virtual Machine (HaLVM), LING (früher Erlang on Xen), OSV, Project Guest VM Microkernel, IncludeOS, ClickOS von NEC Laboratories und Clive.

Diese Definition wurde zuletzt im September 2016 aktualisiert

Erfahren Sie mehr über Containervirtualisierung

- GOOGLE-ANZEIGEN

File Extensions and File Formats

Powered by:

ComputerWeekly.de

Close