Multikernel 项目的第一个公开版本已经发布。 Linux (mklinux-v7.0-mk2),内核的开发版本 Linux该内核增强了在单台物理计算机上运行多个独立内核实例的功能,无需使用虚拟机管理程序或虚拟化技术。每个内核实例都可以直接访问硬件资源,并可用于运行独立的、隔离的系统环境。第一个版本基于该内核。 Linux 7.0 版本包含“CONFIG_MULTIKERNEL”构建设置。禁用此设置后,内核将与标准的 7.0 内核完全相同。目前仅支持 x86_64 CPU 架构。
多内核被誉为一种新型隔离机制,它填补了基于虚拟机管理程序的虚拟化和共享内核容器隔离之间的空白。与虚拟化不同,多内核无需虚拟机管理程序,简化了创建用于运行独立应用程序的隔离环境的过程,并且能够在不增加虚拟化开销的情况下实现高性能。与容器不同,多内核提供了更高级别的隔离,并允许在每个隔离环境中使用独立的内核,因此一个环境中的崩溃或漏洞利用不会影响其他环境。

主机内核将可用的 CPU、内存和 PCI 设备分配给并发运行的多个内核实例。每个实例运行在一个独立的专用 CPU 核心上,使用分配给它的设备,并访问专用的物理内存区域。多个核心的并发执行无需虚拟化,而是通过 SMP 处理程序来分配可用的 CPU。系统支持动态资源分配,从而确保性能的可预测性。
通过消除虚拟化固有的开销,使用 Multikernel 的性能预计接近于在独立硬件上运行的性能。Multikernel 消除了虚拟机退出阶段、L2 内存页、单独的设备模型和 IOMMU 转换。与虚拟机管理程序相比, KVM 使用多内核时,各种系统调用和函数的性能提高了 1.07 到 2.5 倍(fork + exit - 1.07 倍,write() - 1.39 倍,AF_UNIX - 1.55 倍,Pipe - 2.18 倍,上下文切换 - 2.50 倍),而使用内存时的吞吐量和延迟则保持在同一水平。

来源: opennet.ru
