it之家 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 內核社區的進一步討論和評估。這一方案是否會像以往的類似嘗試一樣逐漸淡出,尚未可知。it之家後續將保持關注。