Pro diskusi s vývojáři jádra Linux byla navržena řada patchů, které vytvořil projekt Multikernel, jenž byl nedávno převeden do kategorie otevřeného softwaru a nyní bude rozvíjen společně se komunitou. Multikernel umožňuje na jednom fyzickém počítači spouštět několik nezávislých kopií jádra Linux, které mají přímý přístup k hardwarovým zdrojům a mohou být použity k provozu několika izolovaných systémových prostředí. Projekt byl založen společností Multikernel Technologies, jejímž zakladatelem a vedoucím je Cong Wang, který v jádře Linux spravuje podsystem pro řízení provozu (TC, Traffic Control).
Pro spouštění a správu jader byl navržen vylepšený systémový volání kexec, které na rozdíl od klasického kexec není omezeno na výměnu běžícího jádra a umožňuje spouštění dalších kopií jádra, které běží paralelně. Pro monitorování a ladění spuštěných instancí jádra byl implementován rozhraní „/proc/multikernel“, a pro výměnu zpráv mezi jádry a koordinaci činnosti byl navržen komunikační rámec Multikernel IPI.

Multikernel je prezentován jako nová architektura izolace, která zaujímá místo mezi virtualizací při použití hypervisoru a izolací kontejnerů na základě sdíleného jádra. Na rozdíl od virtualizace Multikernel nevyžaduje použití hypervisoru, usnadňuje vytváření prostředí pro izolovaný provoz jednotlivých aplikací a umožňuje dosáhnout vysokého výkonu bez režie na virtualizaci. Na rozdíl od kontejnerů Multikernel zajišťuje vysokou úroveň izolace a umožňuje využít jednotlivé jádro v každém izolovaném prostředí.

Výkon při použití Multikernel je hodnocen jako blízký výkonu běhu na samostatném zařízení. Toho bylo dosaženo vyloučením specifických virtualizačních režijních nákladů, které vznikají z přepínání mezi virtuálními stroji (VM exit), překladům IOMMU a zásahům hypervizora do provádění privilegovaných operací. Podporováno je dynamické přidělování prostředků spuštěným prostředím a zajištění předvídatelného výkonu.
Současné provádění několika jader se uskutečňuje bez virtualizace pomocí SMP zpracovatele, který rozděluje dostupné CPU mezi instance jader Linux. Každá instance jádra Linux je přiřazena jednomu nebo více CPU jádrům, které jsou přiděleny k jejímu provádění, zatímco ostatní hardwarové prostředky jsou sdíleny.
Hlavní výhody Multikernel:
- Zlepšená izolace od selhání provozovaných prostředí.
- Zvýšená bezpečnost díky dělení na úrovni jádra.
- Efektivnější využití zdrojů ve srovnání s tradičními virtuálními stroji na bázi hypervisorů, jako jsou KVM a Xen.
- Možnost potenciálního aktualizace jádra bez zastavení provozu pomocí mechanismu KHO (Kernel Hand Over).
- Podpora integrace se standardními cloudovými infrastrukturami a možnost bezproblémového přechodu z tradičních virtualizačních systémů a kontejnerové izolace.
- Plná kompatibilita se stávajícími aplikacemi a systémovými rozhraními Linuxu. Multikernel pouze cíleně mění jádro, čímž zachovává plnou kompatibilitu na úrovni API.
Zdroj: opennet.ru
