An experimental proposal has been introduced to the Linux kernel, adding support for a “multi-kernel” architecture—the ability to run several independent kernel instances simultaneously on a single physical machine. Each kernel instance can be bound to its own dedicated CPU cores while still sharing common hardware resources.
This approach offers multiple advantages. It provides stronger isolation between workloads, enhances security through separation at the kernel level, enables more efficient resource utilization compared to traditional virtual machines such as KVM or Xen, and even opens the door, at least theoretically, to live kernel upgrades via the Kernel Hand Over mechanism.
The implementation builds upon the existing kexec infrastructure, which allows multiple kernel images to be loaded and managed, each assigned to specific processor cores. A dedicated inter-kernel messaging (IPI) mechanism has been added to facilitate coordination between the instances. The patch set also includes a /proc interface for monitoring active kernels, an enhanced kexec with dynamic awareness of loaded images, and x86-specific mechanisms for processor initialization.
For now, this is only an RFC—a request for comments. The authors emphasize that while the architecture already functions, significant refinement is still required. The immediate goal is to gather feedback from the community. Testing so far has been limited to the developer’s own machine with hardcoded boot parameters, making broader experimentation across different platforms and configurations essential. Its use outside of experimental contexts is strongly discouraged at this stage.
Nevertheless, the new architecture opens intriguing possibilities: running a real-time kernel alongside a general-purpose one on the same hardware, dedicating isolated instances to mission-critical applications, or tailoring kernels to specialized workloads. Though still a foundational framework, it lays the groundwork upon which the community can build future systems and solutions.