Code was open-sourced this week and posted to the Linux kernel mailing list as a “request for comments” (RFC) for a multi-kernel architecture. This proposal could allow for multiple independent kernel instances to co-exist on a single physical machine. Each kernel could run on dedicated CPU Cores while sharing underlying hardware resources. This could also allow for some complex use-cases such as real-time (RT) kernels running on select CPU cores.
Cong Wang of Multikernel Technologies Inc announced the open-source patches for the Linux kernel proposing a multi-kernel architecture. Multikernel Technologies has open-sourced their code and is promising a “community first” approach. Details on the Multikernel code going open-source can be found via their blog post announcement on multikernel.io along with more background information on this multi-kernel architecture effort.
Over on the Linux kernel mailing list is the RFC patch series introducing this multi-kernel architecture concept.
Cong Wang explained of this multi-kernel proposal for the Linux kernel:
“This patch series introduces multikernel architecture support, enabling multiple independent kernel instances to coexist and communicate on a single physical machine. Each kernel instance can run on dedicated CPU cores while sharing the underlying hardware resources.
The multikernel architecture provides several key benefits:
– Improved fault isolation between different workloads
– Enhanced security through kernel-level separation
– Better resource utilization than traditional VM (KVM, Xen etc.)
– Potential zero-down kernel update with KHO (Kernel Hand Over)Architecture Overview:
The implementation leverages kexec infrastructure to load and manage multiple kernel images, with each kernel instance assigned to specific CPU cores. Inter-kernel communication is facilitated through a dedicated IPI framework that allows kernels to coordinate and share information when necessary.
…
This work enables new use cases such as running real-time kernels alongside general-purpose kernels, isolating security-critical applications, and providing dedicated kernel instances for specific workloads etc..”
Already in response some have commented to similarly experimenting with running multiple kernels at once on x86 hardware but that it may be difficult advancing it beyond a proof-of-concept stage due to various complexities. It will be very interesting to see where this multi-kernel proposal leads and if there is enough interest from the upstream Linux kernel development community.