Den første offentlige udgave af Multikernel Linux-projektet (mklinux-v7.0-mk2) er blevet præsenteret, som udvikler en version af Linux-kernen, der tilføjer muligheden for at køre flere uafhængige kerneinstanser på én fysisk computer uden brug af hypervisor og virtualisering. Hver kerneinstans har direkte adgang til hardware-ressourcerne og kan bruges til at køre separate isolerede systemmiljøer. Den første udgave er baseret på Linux-kernen 7.0 og indeholder konfigurationsindstillingen 'CONFIG_MULTIKERNEL', som, hvis den deaktiveres, gør kernen fuldstændig identisk med den standard kerne 7.0. Indtil videre understøttes kun x86_64 CPU-arkitekturen.
Multikernel præsenteres som en ny isolationsmekanisme, der indtager en niche mellem virtualisering via en hypervisor og containerbaseret isolering baseret på en fælles kerne. I modsætning til virtualisering kræver Multikernel ikke brug af en hypervisor, hvilket forenkler oprettelsen af miljøer til isoleret kørsel af enkelte applikationer og muliggør høj ydeevne uden overhead fra virtualisering. I modsætning til containere giver Multikernel et højt isolationsniveau og tillader brug af en separat kerne i hvert isoleret miljø, hvor et crash eller udnyttelse af en sårbarhed ikke påvirker andre miljøer.

Vært-kernen sikrer fordelingen af tilgængelige CPU'er, hukommelse og PCI-enheder mellem de parallelt fungerende ekstra kerneinstanser. Hver instans kører på en dedikeret CPU-kerne, arbejder med de tilknyttede enheder og har adgang til et dedikeret område af fysisk hukommelse. Samtidig kørsel af flere kerner udføres uden virtualisering ved hjælp af en SMP-håndtering, der fordeler de tilgængelige CPU'er. Dynamisk ressourceallokering til de kørende miljøer understøttes, og der sikres forudsigelig ydeevne.
Takket være udelukkelsen af de typiske virtualiseringsomkostninger vurderes ydeevnen ved brug af Multikernel at være tæt på ydeevnen ved udførelse på separat hardware. Når man bruger Multikernel, er der ikke noget kontroloverførsel mellem virtuelle maskiner (VM exit), der anvendes ikke sider fra andet niveau, en separat enhedsmodel og oversættelse af IOMMU. Sammenlignet med hypervisoren KVM ved brug af Multikernel observeres en ydeevneforøgelse for forskellige systemkald og funktioner fra 1,07 til 2,5 gange (fork + exit — 1,07x, write() — 1,39x, AF_UNIX — 1,55x, Pipe — 2,18x, kontekstskift — 2,50x), båndbredde og forsinkelse ved arbejde med hukommelse er på samme niveau.

Kilde: opennet.ru
