Die erste öffentliche Veröffentlichung des Projekts Multikernel Linux (mklinux-v7.0-mk2) wird vorgestellt, das eine Version des Linux-Kernels entwickelt, die die AusfĂŒhrung mehrerer unabhĂ€ngiger Kerninstanzen auf einem physischen Computer ohne Einsatz eines Hypervisors und Virtualisierung ermöglicht. Jede Kernelinstanz hat direkten Zugriff auf die Hardware-Ressourcen und kann zur AusfĂŒhrung separater isolierter Systemumgebungen verwendet werden. Die erste Veröffentlichung basiert auf dem Kernel Linux 7.0 und enthĂ€lt die Build-Option âCONFIG_MULTIKERNELâ, deren Deaktivierung das Kernel vollstĂ€ndig identisch mit dem Standardkernel 7.0 macht. Derzeit wird nur die CPU-Architektur x86_64 unterstĂŒtzt.
Multikernel wird als neuer Isolationsmechanismus prĂ€sentiert, der im Bereich zwischen Virtualisierung mit Hypervisor und containerbasierter Isolierung auf Basis eines gemeinsamen Kernels angesiedelt ist. Im Gegensatz zur Virtualisierung erfordert Multikernel keinen Einsatz eines Hypervisors, erleichtert die Schaffung von Umgebungen fĂŒr die isolierte AusfĂŒhrung einzelner Anwendungen und ermöglicht hohe Leistung ohne die Overheadkosten von Virtualisierung. Im Gegensatz zu Containern bietet Multikernel ein hohes MaĂ an Isolation und ermöglicht die Verwendung eines separaten Kernels in jeder isolierten Umgebung, wobei ein Absturz oder das Ausnutzen einer SicherheitsanfĂ€lligkeit in einer Umgebung andere Umgebungen nicht beeintrĂ€chtigt.

Der Host-Kernel sorgt fĂŒr die Verteilung der verfĂŒgbaren CPU, des Speichers und der PCI-GerĂ€te zwischen parallel laufenden zusĂ€tzlichen Kernelinstanzen. Jede Instanz lĂ€uft auf einem separaten dedizierten CPU-Kernel, arbeitet mit den ihr zugewiesenen GerĂ€ten und hat Zugriff auf einen reservierten Bereich des physischen Speichers. Die gleichzeitige AusfĂŒhrung mehrerer Kerne erfolgt ohne Virtualisierung unter Verwendung eines SMP-Handlers, der den Zugriff auf die verfĂŒgbaren CPUs verteilt. Es wird eine dynamische Ressourcenzuteilung fĂŒr die gestarteten Umgebungen unterstĂŒtzt und eine vorhersehbare Leistung gewĂ€hrleistet.
Durch den Ausschluss der typischen Overhead-Kosten der Virtualisierung wird die Leistung bei der Verwendung von Multikernel als nahezu gleichwertig mit der Leistung auf dedizierter Hardware eingeschĂ€tzt. Bei der Verwendung von Multikernel entfĂ€llt die Phase der SteuerĂŒbertragung zwischen den virtuellen Maschinen (VM exit), es werden keine Seiten des zweiten Speichers verwendet, separate GerĂ€temodelle und die IOMMU-Ăbersetzung kommen nicht zum Einsatz. Im Vergleich zu Hypervisoren KVM zeigt die Verwendung von Multikernel eine Leistungssteigerung verschiedener Systemaufrufe und Funktionen zwischen 1,07 und 2,5-fach (fork + exit â 1,07x, write() â 1,39x, AF_UNIX â 1,55x, Pipe â 2,18x, Kontextwechsel â 2,50x), die Bandbreite und Latenzen bei der Arbeit mit Speicher liegen auf demselben Niveau.

Quelle: opennet.ru
