就在几天前,有人为 Linux 内核提议了一种多内核架构。与 Multikernel Technologies 的提案不同,字节跳动一直在开发自己的类似解决方案,名为 Parker。今天,字节跳动揭开了 Parker 的面纱,将其作为在同一硬件/系统上同时运行多个内核的解决方案。
字节跳动的 Parker 允许在单台机器上同时运行多个 Linux 内核,而无需依赖 KVM 或其他虚拟化技术。Parker 通过划分 CPU 核心、内存和设备,为一种具有分区意识的 Linux 内核提供支持。字节跳动在提案中承认,其方案在某些方面与最近的 Multikernel RFC 相似,但设计和实现完全不同。

今天的 Parker 公告进一步描述了他们的多内核设计方法:
每个内核实例可以拥有相同的镜像,但初始内核,或启动内核,控制硬件分配和分区。所有其他内核都是次级内核,或应用内核,接触各自分配的 CPU/内存/IO 设备。
Parker 的主要应用场景是在具有高核心数的机器上,其中可能会出现可扩展性问题。一旦启动,内核实例之间没有通信。换句话说,它们共享 nothing,从而提高可扩展性。每个内核需要自己的(PCIe)设备进行 IO,例如 NVMe 或 NIC。
另一个可能的用例是让不同的内核实例根据工作负载具有不同的性能调优、CONFIG_选项、FDO/PGO。
看起来有几家公司现在正在探索多内核实验,以更好地应对当今的多核系统。很值得期待这项工作将带来什么,以及这些方法是否最终会演变成适合上游 Linux 内核的合适设计。
转自 Bytedance Proposes “Parker” For Linux: Multiple Kernels Running Simultaneously – Phoronix
Linuxeden开源社区