De eerste publieke release van het Multikernel Linux-project (mklinux-v7.0-mk2) is gepresenteerd, dat een variant van de Linux-kernel ontwikkelt met de mogelijkheid om meerdere onafhankelijke kernelinstances op één fysieke computer uit te voeren zonder gebruik te maken van hypervisors en virtualisatie. Elke kernelinstance heeft directe toegang tot de hardwarebronnen en kan worden gebruikt voor het opstarten van afzonderlijke, geïsoleerde systeemomgevingen. De eerste release is gebaseerd op de Linux-kernel 7.0 en bevat een buildinstelling 'CONFIG_MULTIKERNEL', die, wanneer uitgeschakeld, de kernel volledig identiek maakt aan de standaardkernel 7.0. Tot nu toe wordt alleen x86_64-architectuur ondersteund.
Multikernel wordt gepresenteerd als een nieuwe isolatiemechanisme die een niche bezet tussen virtualisatie met hypervisors en containerisolatie op basis van een gedeelde kernel. In tegenstelling tot virtualisatie vereist Multikernel geen hypervisor, vereenvoudigt het de creatie van omgevingen voor geïsoleerde uitvoering van afzonderlijke applicaties en maakt het hoge prestaties mogelijk zonder de overhead van virtualisatie. In tegenstelling tot containers biedt Multikernel een hoog niveau van isolatie en maakt het gebruik van een afzonderlijke kernel in elke geïsoleerde omgeving mogelijk, waarbij een crash of exploitatie van een kwetsbaarheid in die omgeving geen invloed heeft op andere omgevingen.

De hostkernel zorgt voor de distributie van beschikbare CPU-, geheugen- en PCI-apparaten tussen parallel draaiende extra kernelinstances. Elke instance draait op een aparte toegewezen CPU-kernel, werkt met aan hem toegewezen apparaten en heeft toegang tot een toegewezen gebied van fysiek geheugen. Het gelijktijdig uitvoeren van meerdere kernels gebeurt zonder virtualisatie, met gebruik van een SMP-handler die de beschikbare CPU's toewijst. Dynamische toewijzing van middelen aan opgestarte omgevingen en het waarborgen van voorspelbare prestaties worden ondersteund.
Dankzij de uitsluiting van de kosten die typisch zijn voor virtualisatie, wordt de prestaties bij het gebruik van Multikernel beschouwd als dicht bij de prestaties van uitvoering op afzonderlijke hardware. Bij het gebruik van Multikernel is er geen fase van het overdragen van de besturing tussen virtuele machines (VM exit), worden er geen tweede-niveau geheugenpagina's gebruikt, een afzonderlijk apparaatmodel en IOMMU-translatie. In vergelijking met hypervisors. KVM Bij het gebruik van Multikernel wordt een prestatieverbetering van verschillende systeemoproepen en functies opgemerkt, variërend van 1,07 tot 2,5 keer (fork + exit - 1,07x, write() - 1,39x, AF_UNIX - 1,55x, Pipe - 2,18x, contextwissel - 2,50x), de doorvoersnelheid en latentie bij het werken met geheugen zijn op hetzelfde niveau.

Bron: opennet.ru
