資深 Linux 核心維護者 Ingo Molnar 近日了一個包含 2297 個修補程式的巨大修補程式集,旨在提升 Linux 構建速度和解決依賴地獄問題。
Ingo Molnar 將此修補程式集命名為「Fast Kernel Headers」,並表示自己從 2020 年底就啟動了這個專案,這是對 Linux 核心的標頭檔案層次結構和標頭檔案依賴項的全面改造,具有雙重目標:
- 加速 Linux 核心構建(包括完全構建和增量構建)
- 將子系統型別 (subsystem type) 和 API 定義相互解耦
在 Linux 核心郵寄清單中,Ingo Molnar 介紹了「Fast Kernel Headers」的誕生背景:「大多數核心開發者應該都知道,Linux 核心有大約 1 萬個 main.h 標頭檔案,它們位於 include/ 和 arch/*/include/ 這樣的層次結構中。過去的 30 多年裡,這些標頭檔案已經發展成為複雜而痛苦的交叉依賴,社群稱之為「依賴地獄」。」
根據 Ingo 提供的資料,與當前核心相比,啟用"Fast Kernel Headers"修補程式的核心構建每小時可有 78% 的改進。在所支援的架構上,完全的核心構建效能可提升 50~80%。
這個巨大的修補程式集將許多高階標頭檔案與其他檔案解耦、取消了不必要的函數、將型別和 API 標頭檔案解耦、自動處理標頭檔案依賴,以及其他各種變化。到目前為止,它已經在 x86/x86_64、SPARC、MIPS 和 ARM64 架構上進行了測試。
「Fast Kernel Headers」可能是有史以來程式碼規模最大的一個 Linux 核心功能,並且能顯著改進核心構建時間,所以不少開發者希望這個修補程式集能夠在不遠的將來以某種方式進行審查後,順利進入主線核心。