Linux 核心創始人 Linus Torvalds 於 8 月 17 日正式釋出 7.2 版本核心,他坦言此次收錄的修正數量「仍比我預期的要多」。事實上,7.2 是核心開發史上數一數二繁忙的開發週期,新增了近 60 萬行程式碼。是時候透過統計數據來檢視核心社群的發展變化了。
7.2 版本共收錄 16,418 筆非合併(non-merge)commit,超越了已屬繁忙的 7.1 版本,是核心歷史上第二繁忙的發行版本。僅有 6.7 版本曾納入更多 commit,但 6.7 主要是因合併 bcachefs 開發歷史所致,而 7.2 的工作量分布更為廣泛多元。
這些 commit 由 2,652 位開發者共同貢獻,較前一版本 7.1 所創下的紀錄(2,479 人)大幅增加。若回顧自 Git 時代以來的開發者參與歷史,可以觀察到一個明確的趨勢:每個版本貢獻的開發者數量隨時間穩定成長,但這條成長曲線的斜率已明顯改變。
最活躍的 7.2 版本開發者:
以變更集(changeset)數量計算:Uwe Kleine-König 以 1,510 筆(9.0%)居首,Rosen Penev 以 1,460 筆(8.9%)居次,Ian Rogers(138 筆)、Johan Hovold(133 筆)、Arnaldo Carvalho de Melo(131 筆)、Chuck Lever(129 筆)、Eric Dumazet(121 筆)、Ville Syrjälä(115 筆)、Johannes Berg(112 筆)、Krzysztof Kozlowski(110 筆)等人也名列前茅。
以變更行數計算:Matthew Stewart 以 835,878 行(8.4%)居首,主要是大規模新增機器生成的 amdgpu 標頭檔案;Hawking Zhang 以 628,936 行(6.3%)居次,Miguel Ojeda(389,793 行)、Ian Rogers(319,493 行)、Darren Ye(208,432 行)等人也貢獻了大量程式碼。
Uwe Kleine-König 是 7.2 版本最大的 commit 貢獻者,主要在驅動程式子系統進行清理工作。Rosen Penev 貢獻了大量由 LLM 撰寫的錯誤修正,涵蓋架構特定、驅動程式、網路、加密等多個子系統。Ian Rogers 與 Arnaldo Carvalho de Melo 則致力於使用者空間的 perf 工具開發。Johan Hovold 主要在 SPI 與 USB 子系統進行多項改進。
Matthew Stewart 透過新增大量機器生成的 amdgpu 標頭檔案登上變更行數榜首,Hawking Zhang 也不例外。Miguel Ojeda 將 Rust zerocopy crate 整合進核心程式碼。Darren Ye 則新增了 MediaTek mt8196 音效驅動程式。
7.2 版本中約有 8% 的 commit 帶有 Tested-by 標籤,48% 包含 Reviewed-by 標籤。審查標籤的使用在近期版本中呈現微幅下降趨勢,但這是否反映實際審查量的減少仍不明確。
測試與審查貢獻:
在測試方面,Dan Wheeler 以 117 次(7.0%)居首,主要負責 AMD 圖形驅動程式修補程式的測試;Luiz Capitulino(54 次)、James Clark(44 次)等人也貢獻良多。在審查方面,Konrad Dybcio 以 231 次(12.2%)奪冠,Dmitry Baryshkov(225 次)、Andy Shevchenko(175 次)、Geert Uytterhoeven(171 次)等人同樣名列前茅。值得注意的是,Dybcio 與 Baryshkov 兩人皆專注於高通裝置的驅動程式與 devicetree 檔案,他們在 7.1 週期同樣佔據審查榜首。
企業貢獻分析:
7.2 核心的開發工作獲得 249 家可辨識企業的支持。以變更集計算,英特爾(Intel)以 1,512 筆(9.2%)居首,Google(1,191 筆、7.3%)、Red Hat(873 筆、5.3%)、AMD(813 筆、5.0%)、Qualcomm(767 筆、4.7%)緊隨在後。NVIDIA(535 筆)、Meta(441 筆)、SUSE(358 筆)、Renesas Electronics(328 筆)、IBM(307 筆)等也是核心社群的重要支柱。
以變更行數計算,AMD 以 2,241,212 行(22.4%)遙遙領先,主要源自大量機器生成的標頭檔案;其次為「未知」(1,038,611 行、10.4%)、Google(1,025,654 行、10.3%)、Qualcomm(590,215 行)、Intel(536,661 行)、Red Hat(515,595 行)、Meta(386,353 行)、NVIDIA(274,172 行)、MediaTek(220,252 行)等。
本次最值得關注的變化,是「所屬企業不明」的開發者數量顯著增加。這至少部分源於持續湧入核心社群的新開發者浪潮。
新開發者與 AI 工具的影響:
前兩個核心版本皆創下首次貢獻者數量的新紀錄,而 7.2 版本再次刷新紀錄,達到 613 位首次現身的貢獻者,趨勢同樣十分明確。
最活躍的新開發者是 Bryam Vargas,他在輸入、NVMe、F2FS、AppArmor、Landlock、SELinux、NTFS、WiFi、ATA、SCSI、網路、Ceph 及 Thunderbolt 等子系統中提交了 43 筆修正。如先前觀察到的,要在單一開發週期內深入觸及如此多子系統,對資深核心開發者而言都極具挑戰,更遑論是一位先前不為人知的開發者。Vargas 的修補程式並未標註 Assisted-by 標籤,因此外界只能相信這些修改是在沒有 LLM 協助下完成的。
整體而言,7.2 版本中有 1,111 筆變更(約佔總數不到 7%)帶有 Assisted-by 標籤,較 7.1 版本的 301 筆大幅增加。然而,實際由 LLM 輔助的修補程式數量勢必遠高於此。許多開發者並未加上這些標籤(往往——但並非總是——出於對規範的無知),維護者也鮮少詢問 LLM 使用情況,甚至有維護者會在套用修補程式時主動移除這些標籤。要精確追蹤由 LLM 協助開發的 commit 或許終究不可行,但有時感覺核心社群並不夠積極地去嘗試。
LLM 使用對核心開發的另一個影響體現在修補程式審查領域。7.2 版本中有 252 個修補程式帶有感謝 Sashiko 審查系統的 Reported-by 標籤,另有 568 個 commit 在變更記錄中提及 Sashiko。其他 LLM 顯然也被用於尋找核心漏洞,且已產生實質效果。
7.2 版本包含 4,830 筆帶有 Fixes 標籤的 commit,代表這些 commit 是用於修正先前 commit 所引入的錯誤。從圖表中可清楚看出,帶有 Fixes 標籤的 commit 數量在經歷多個版本的平穩期後,於近期急遽攀升。這似乎是當大量人士開始運用 LLM 來尋找現有軟體漏洞時的必然結果。這是一個值得持續關注的趨勢。漏洞數量不可能是無限的——即使在核心中也是如此——因此漏洞偵測與修正的速率終究會下降。既有漏洞將被一一修復,LLM 審查也將減少新漏洞的引入。至少,這是人們的期望。
倘若這樣的下降趨勢遲遲未出現,將衍生出一些值得深思的問題。LLM 的普及顯然讓原本無能力撰寫核心修補程式的人得以參與開發。若此推論屬實,那麼不難斷定,在許多情況下,這些修補程式的提交者並未完全理解其所提交內容的運作原理。或許 LLM 已足夠聰明,使這種理解變得不再必要,但也可能是我們正在累積一堆從未被真正理解的程式碼,而這些程式碼在未來數年仍需被維護。
Linux 核心定位於生產環境使用,而非研究或實驗用途。但目前一場大規模的實驗正悄然在核心的開發流程與社群中進行。這個社群在其 35 年的歷史中已多次吸納新流程與新工具,幾乎可以肯定這次也能找到應對之道。然而,這樣的轉變過程並非總是一帆風順。
與此同時,linux-next 儲存庫中仍有近 14,000 筆非合併變更集蓄勢待發,準備被納入 7.3 版本;其中超過 1,100 筆含有 Assisted-by 標籤。看來近期版本所呈現的高度開發活動,短期內不會停歇。LWN 將持續關注下一個開發週期(以及後續的每一個週期),敬請期待後續報導。