Zum Hauptinhalt Zur Navigation Zur Suche

Ohne Hypervisor: Linux-Fork startet mehrere Kernels auf einem Computer

Ein Entwickler hat den Linux-Kernel so modifiziert, dass mehrere Kernels parallel laufen können. Eine erste Version ist verfügbar.
/ Johannes Hiltscher
15 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Auf einem Stein haben mehrere Pinguine Platz, auf einem Prozessor mehrere Linux-Kernel. (Bild: falco, Pixabay)
Auf einem Stein haben mehrere Pinguine Platz, auf einem Prozessor mehrere Linux-Kernel. Bild: falco, Pixabay / Pixabay-Lizenz

Ein Betriebssystemkern (Kernel) pro Prozessorkern, die Idee hatten vor 17 Jahren schon Forscher von Microsoft und der ETH Zürich. In vielen Server-Systemen entspricht das auch der Realität, nur hat sich für die praktische Umsetzung die Hardware-Virtualisierung mittels Hypervisor durchgesetzt. Ganz ohne die sollen bei MKLinux mehrere Kernels parallel auf der gleichen Hardware laufen.

Eine erste Version davon hat Entwickler Cong Wang, langjähriger Kernel-Entwickler, öffentlich freigegeben(öffnet im neuen Fenster). Seine modifizierte Version des Kernels 7.0 ist bei Github verfügbar(öffnet im neuen Fenster). Das Konzept klingt zunächst ähnlich einem Hypervisor: Zunächst bootet ein Kernel, der sämtliche Hardware verwaltet. Teile davon kann dieser Kernel anschließend aber wieder freigeben und sie mittels kexec gestarteten weiteren Kernels übergeben.

Im Gegensatz zu einem Hypervisor haben die neu gestarteten Kernels auch ohne Single Root IO Virtualisation (SR-IOV) direkten Zugriff auf die ihnen zugewiesene Hardware. Laut Wang erfolgt dies über Hot Plugging, worüber den neu gestarteten Kernels auch nachträglich weitere Hardware zugewiesen werden kann. Die initial zugeordnete Hardware wird per Device Tree(öffnet im neuen Fenster) übergeben – MKLinux nutzt nur bereits verfügbare Techniken.

Schneller als Hypervisor, sicherer als Container

Laut Wang, der um das Multikernel-Konzept auch eine Firma gründete, hat dieses gegenüber anderen Isolationsmechanismen deutliche Vorteile.

Wie bei Containern läuft Software ohne Abstraktion, entsprechend fallen Hypervisor-Aufrufe und zusätzliche Seitentabellen weg – auch wenn Letztere mittlerweile praktisch vernachlässigbar sind. Hierzu zeigt Wang eigene Benchmarks(öffnet im neuen Fenster), die bei Betriebssystemaufrufen und Kontextwechseln teils deutlich niedrigere Latenzen offenbaren. Wie bei einem Hypervisor hingegen kann ein problematischer Kernel nicht gleich das komplette System lahmlegen. Da die einzelnen Kernels gegeneinander isoliert sind, lässt sich zudem die Angriffsfläche begrenzen.

Wang sieht als Einsatzszenario etwa das Hosting verschiedener Server-Komponenten auf einer Maschine. Das Konzept kann sogar noch weiter bis zur Isolierung einzelner Anwendungen getrieben werden: Dabei wird zunächst ein sogenannter Device-Kernel gestartet, welcher die zugewiesene Hardware verwaltet. Dieser kann anschließend weitere App-Kernel starten, die untereinander oder mit dem Device-Kernel über geteilten Speicher kommunizieren. Dafür entwickelte Wang mit Daxfs(öffnet im neuen Fenster) ein eigenes Dateisystem. Die App-Kernels sieht Wang insbesondere für KI-Agenten als sinnvoll.

Bislang unterstützt MKLinux lediglich 64‑Bit-x86-Systeme. Ob das Konzept in den Mainline-Kernel aufgenommen wird, ist bislang noch unklar, und wenn, nicht zeitnah zu erwarten.


Relevante Themen