Na diskusiu o vývoji jadra Linux bola navrhnutá séria patchov vyvinutých projektom Multikernel, ktorý bol nedávno prevedený do kategórie otvoreného softvéru a teraz sa bude vyvíjať spolu so komunitou. Multikernel umožňuje na jednom fyzickom počítači spúšťať niekoľko nezávislých inštancií jadra Linux, ktoré majú priamy prístup k hardvérovým zdrojom a môžu sa použiť na spustenie viacerých izolovaných systémových prostredí. Projekt bol vytvorený spoločnosťou Multikernel Technologies, ktorej zakladateľom a vedúcim je Cong Wang, ktorý spravuje v jadre Linux subsystém riadenia prevádzky (TC, Traffic Control).
Na spúšťanie a správu jadier bol navrhnutý vylepšený systémový volání kexec, ktorý na rozdiel od klasického kexec nie je obmedzený na nahradenie bežiaceho jadra a umožňuje spúšťanie ďalších inštancií jadra súbežne. Na monitorovanie a ladenie spustených inštancií jadra bol implementovaný rozhranie „/proc/multikernel“, a na výmenu správ medzi jadrami a koordináciu práce bol navrhnutý komunikačný rámec Multikernel IPI.

Multikernel je prezentovaný ako nová architektúra izolácie, ktorá zaujíma miesto medzi virtualizáciou pomocou hypervízora a kontajnerovou izoláciou na báze zdieľaného jadra. Na rozdiel od virtualizácie Multikernel nevyžaduje použitie hypervízora, zjednodušuje vytváranie prostredí na izolované spúšťanie jednotlivých aplikácií a umožňuje dosiahnuť vysoký výkon bez dodatočných nákladov na virtualizáciu. Na rozdiel od kontajnerov Multikernel zabezpečuje vysokú úroveň izolácie a umožňuje používať samostatné jadro v každom izolovanom prostredí.

Výkon pri používaní Multikernel je hodnotený ako blízky výkonu na oddelenom hardvéri. To sa podarilo dosiahnuť vylúčením nákladov typických pre virtualizáciu, ktoré vznikajú z obsluhy prenosu riadenia medzi virtuálnymi strojmi (VM exit), prekladu IOMMU a zasahovania hypervízora do vykonávania privilegovaných operácií. Podporuje sa dynamické prideľovanie zdrojov spusteným prostrediam a zabezpečuje predvídateľný výkon.
Súčasná exekúcia viacerých jadier sa realizuje bez virtualizácie pomocou SMP spracovateľa, ktorý rozdeľuje dostupné CPU medzi inštancie jadier Linux. Každá inštancia jadra Linux je priradená jednému alebo viacerým CPU jadrom vyhradeným na jej vykonávanie, pričom zdieľa ostatné hardvérové zdroje.
Hlavné výhody Multikernel:
- Zlepšená izolácia od porúch v prevádzke vykonávaných prostredí.
- Zvýšená bezpečnosť pomocou delenia na úrovni jadra.
- Účinnšie využívanie zdrojov v porovnaní s tradičnými virtuálnymi strojmi založenými na hypervízoroch, ako sú KVM a Xen.
- Potenciálna možnosť aktualizácie jadra bez zastavenia prevádzky pri použití mechanizmu KHO (Kernel Hand Over).
- Podpora integrácie so štandardnými cloudovými infraštruktúrami a možnosť transparentného prechodu z tradičných systémov virtualizácie a kontajnerovej izolácie.
- Úplná kompatibilita s existujúcimi aplikáciami a systémovými rozhraniami Linuxu. Multikernel len bodovo mení jadro, pričom zachováva plnú kompatibilitu na úrovni API.
Zdroj: opennet.ru
