// HEISE ONLINE — HARDWARE & GADGET
Multikernel-Linux: Erstes Release zum Testen verfügbar
Das quelloffene Multikernel-Linux mklinux v7.0-mk2 führt die Technik für eine performante Alternative zu Hypervisor und Container vor.
This article is also available in
English.
It was translated with technical assistance and editorially reviewed before publication.
Ein erstes Release des sogenannten Multikernels mklinux v7.0-mk2 haben die Entwickler jetzt veröffentlicht. Es lässt auf Bare-Metal mehrere Linux-Kernel parallel laufen, ohne einen Hypervisor oder Containerdienst. Das soll insbesondere für mehr Geschwindigkeit sorgen.
Cong Wang, als einzige Person unter „Leadership“ beim Multikernel-Projekt als Gründer und CEO aufgeführt, hat die Verfügbarkeit des ersten öffentlichen Releases auf der Linux-Kernel-Mailingliste verkündet. mklinux lässt auf einer Maschine mehrere unabhängige Linux-Kernel laufen, erklärt Wang, gleichzeitig auf Bare-Metal, ohne einen Hypervisor. Ein Host-Kernel besitzt einen Pool an CPUs, Speicher und PCI-Geräten, unterteilt diesen Pool in Instanzen und startet in jede dieser Instanzen einen eigenen Kernel. Die Kernel laufen nativ auf ihrer eigenen CPU, mit eigenem Speicher und eigenen Geräten. Das funktioniert ohne Emulation und nichts wird abgefangen. Es werde nur das geteilt, was die Nutzerinnen und Nutzer dafür vorsehen. Der Kernel basiert auf Linux-Kernel 7.0 und benimmt sich genau wie dieser, wenn die Option „CONFIG_MULTIKERNEL=n“ gesetzt ist.
Instanzen werden mit einem Devicetree deklariert, und Devicetree-Overlays sollen Speicher, CPUs und Geräte zwischen dem Pool und laufenden Instanzen ohne einen Neustart verschieben können. Eine Instanz lässt sich abschalten; anschließend können die Ressourcen zurückgeholt und mit einem anderen Kernel erneut verteilt werden. Multikernel soll dabei für jede App einen eigenen Kernel starten, ebenso soll jeder Treiber für physische Geräte einen eigenen Kernel erhalten; die App-Kernel bekommen eine virtuelle Netzwerkkarte und virtuelle Blockgeräte zur Kommunikation mit den Gerätetreiber-Kerneln zu sehen.
In der FAQ erklärt der Anbieter multikernel.io, dass Multikernel mehrere Kernel startet, ohne von Virtualisierung abzuhängen. Der Schwerpunkt der Entwicklung liege auf praktischer Kernel-Isolierung und Geschwindigkeitsoptimierung. Container teilten sich einen Kernel, was die Isolierung beschränkt. Bei Multikernel besteht im direkten Vergleich nicht die Gefahr, dass ein Lock, eine Kernel Panic oder ein Exploit in einem Kernel einen anderen erreicht. Virtuelle Maschinen bieten Isolierung, erzeugen jedoch Virtualisierungsoverhead. Im Vergleich mit VMs gebe es keine zweite Ebene an Page-Tables und kein Gerätemodell, führt Wang aus.
Multikernel will echte Kernel-Isolierung mit nahezu Bare-Metal-Geschwindigkeit und dynamischer Ressourcenallokation bieten, ohne den Hypervisor-Overhead. Als Einsatzzweck sieht die Firma KI und maschinelles Lernen, insbesondere Training und Inferenz sowie latenzempfindliche Dienste. Außerdem sei das für Workloads passend, die strikte Sicherheits- und Isolierungsvorgaben haben.
Wang liefert in der Ankündigungsmail auch Performance-Messungen mit, die die Geschwindigkeitsgewinne gegenüber beispielsweise KVM-Gästen zeigen. Je nach Disziplin ist Multikernel zwischen 1,07- (Fork und Exit) und 2,5-mal (Kontext-Wechsel) so schnell wie virtualisierte Kernel. Speicherbandbreite und -latenz bewegten sich hingegen auf gleichem Niveau. Außerdem hat Wang noch Werte zur Skalierung mit mehreren Kerneln und Tasks vorgelegt.
Multikernel soll dabei voll kompatibel zu bestehenden Linux-Apps und Systemschnittstellen bleiben, versichern die Entwickler. Nicht nur APIs, sondern auch ABIs (Application Binary Interfaces) sollen kompatibel bleiben, da die Änderungen minimal und nichtinvasiv seien. Selbst zu bestehender Cloud- und On-Premise-Infrastruktur sei das kompatibel.
Multikernel mklinux v7.0-mk2 steht als GitHub-Projekt allen Interessierten zur Verfügung. Zunächst unterstützt Multikernel lediglich die x86_64-Architektur. Eine Anleitung