Byla vydána první veřejná verze projektu Multikernel. Linux (mklinux-v7.0-mk2), vývojová verze jádra Linux, vylepšený o možnost spouštět více nezávislých instancí jádra na jednom fyzickém počítači bez použití hypervizoru nebo virtualizace. Každá instance jádra má přímý přístup k hardwarovým prostředkům a lze ji použít ke spouštění samostatných, izolovaných systémových prostředí. První verze je založena na jádře Linux 7.0 a obsahuje nastavení sestavení „CONFIG_MULTIKERNEL“. Pokud je toto nastavení zakázáno, jádro se stane zcela identickým se standardním jádrem 7.0. V současné době jsou podporovány pouze architektury CPU x86_64.
Multikernel je propagován jako nový izolační mechanismus, který vyplňuje mezeru mezi virtualizací založenou na hypervizoru a izolací kontejnerů se sdíleným jádrem. Na rozdíl od virtualizace Multikernel nevyžaduje hypervizor, zjednodušuje vytváření izolovaných prostředí pro spouštění jednotlivých aplikací a umožňuje vysoký výkon bez režijních nákladů virtualizace. Na rozdíl od kontejnerů Multikernel poskytuje vysokou úroveň izolace a umožňuje použití samostatného jádra v každém izolovaném prostředí, takže selhání nebo zneužití zranitelnosti v jednom prostředí neovlivní ostatní prostředí.

Hostitelské jádro rozděluje dostupné CPU, paměť a PCI zařízení mezi další instance jádra běžící souběžně. Každá instance běží na samostatném, vyhrazeném jádru CPU, pracuje s přiřazenými zařízeními a má přístup k vyhrazené oblasti fyzické paměti. Současné spuštění více jader je zajištěno bez virtualizace pomocí SMP obslužné rutiny, která rozděluje dostupné CPU. Je podporována dynamická alokace zdrojů běžícím prostředím, což zajišťuje předvídatelný výkon.
Eliminací režijních nákladů spojených s virtualizací se odhaduje, že výkon při použití vícejádrového systému se blíží výkonu na samostatném hardwaru. Vícejádrový systém eliminuje výstupní fázi virtuálního stroje, paměťové stránky L2, samostatný model zařízení a překlad IOMMU. Ve srovnání s hypervizorem, KVM Při použití Multikernelu se výkon různých systémových volání a funkcí zvyšuje z 1.07 na 2.5krát (fork + exit - 1.07x, write() - 1.39x, AF_UNIX - 1.55x, Pipe - 2.18x, přepínání kontextu - 2.50x), propustnost a latence při práci s pamětí jsou na stejné úrovni.

Zdroj: opennet.ru
