10 月 5 日消息,字节跳动工程师 Thom Hughes 上个月提出了一项新的 Linux 内核设计思路 ——Parker(全称“PARtitioned KERnel”),相关提案已通过 RFC 形式提交至 Linux 内核邮件列表。
该方案旨在使多个 Linux 内核能在单台物理服务器上并行运行,且无需依赖 KVM 等传统虚拟化工具。与之前提出的其他多内核方案不同,Parker 通过划分硬件资源实现:
启动时,首先由所谓的“启动内核”(Boot Kernel)接管硬件,划分出 CPU 核心、内存区域及 I/O 设备
然后将划分出的资源交由“应用内核”(Application Kernels)独立管理各内核。
这种设计使每个内核都能够独立运行,彼此之间没有通信。理论上,该架构在高核心数的服务器上具有更好的可扩展性。
他认为,Parker 的一个潜在应用场景是运行配置或性能优化不同的内核,以满足多样化的工作负载需求。
其实现方式主要包括:通过 kernfs 接口暴露,并利用 kexec 将次级内核镜像热加载至预留内存。在此之前,Boot Kernel 需要下线部分 CPU、预留内存并分离设备,确保各分区能够安全运行。
不过,该提案也引发了一些质疑。来自英特尔的 Dave Hansen 就指出,在缺乏监督层的情况下可能无法阻止内核间可能产生的冲突。例如,如果某个内核切换了拆分锁检测(split lock detection),或执行了类似 WBINVD 的系统级指令,可能会对机器上运行的所有其他内核造成影响。
至于 Parker 提案能否继续推进,仍需等待 Linux 内核社区的进一步讨论和评估。这一方案是否会像以往的类似尝试一样逐渐淡出,尚未可知。