MkLinux Debuts Multi-Kernel Instance Capability

Introduced the first public release of the Multikernel Linux project (mklinux-v7.0-mk2), developing a variant of the Linux kernel that allows multiple independent kernel instances to run on one physical computer without the need for a hypervisor and virtualization. Each kernel instance has direct access to hardware resources and can be utilized to run separate isolated system environments. The initial release is based on the Linux 7.0 kernel and includes the “CONFIG_MULTIKERNEL” build setting, which, when disabled, makes the kernel similar to the standard 7.0 kernel. Currently, only the x86_64 CPU architecture is supported.

Multikernel is positioned as a new isolation mechanism that bridges the gap between virtualization with a hypervisor and container isolation based on a shared kernel. Unlike virtualization, Multikernel does not necessitate a hypervisor, simplifies the creation of environments for running individual applications independently, and offers high performance without virtualization overhead. In contrast to containers, Multikernel provides enhanced isolation and enables the usage of a distinct kernel in each isolated environment, thereby preventing the impact of a crash or vulnerability exploitation in one environment on others.


The host kernel efficiently allocates available CPU, memory, and PCI devices among concurrently running additional kernel instances. Each instance operates on a dedicated CPU core, interacts with assigned devices, and accesses a specific portion of physical memory. Multiple core execution occurs without virtualization, using an SMP handler to distribute available CPUs. Resource allocation to running environments is dynamic, ensuring predictable performance.

Eliminating the inherent overhead of virtualization, Multikernel delivers performance on par with separate hardware. Compared to the KVM hypervisor, the utilization of Multikernel enhances performance across various system calls and functions by 1.07 to 2.5 times (e.g., fork + exit – 1.07x, write() – 1.39x, AF_UNIX – 1.55x, Pipe – 2.18x, context switching – 2.50x), with throughput and memory latency remaining consistent.


/Reports, release notes, official announcements.