Rust 將拯救 Linux:Greg Kroah-Hartman 確認實驗結束

關鍵點:
  • Greg Kroah-Hartman 在 2026 年 Rust 週上宣布,在 Linux 核心中使用 Rust 不再是一項實驗,而正在成為正式標準。
  • Linux 團隊每天面臨近 13 個漏洞報告,其中大部分是由 C 語言中的人為錯誤造成的。
  • Rust 的編譯器會自動偵測記憶體錯誤和崩潰,這可以將系統故障減少高達 80%。
  • 我們將實施一套系統,將硬體資料標記為“不可信”,強制開發人員在使用前進行驗證。
  • 現有的 C 程式碼(36 萬行)將不會被重寫。 Rust 只會用於開發新的控制器和子系統。

Rust Week 2026

在最近於烏特勒支舉行的 Rust Week 2026 大會上,負責維護 Linux 核心的主要人員之一Greg Kroah-Hartman登台發表了一番非常明確的演講:Rust 是該專案所需的救贖

由於每天發布的 CVE(通用漏洞報告)數量驚人,開發團隊面臨幾乎無法處理的漏洞數量。自 2005 年以來一直在處理這些漏洞的Kroah-Hartman 表示,罪魁禍首是 C 語言在記憶體和錯誤處理方面的傳統缺陷——而 Rust 語言承諾將大幅緩解這一問題。

在座無虛席的開發者面前,這位資深程式設計師傳遞的訊息直截了當。他坦言,團隊對 Rust 社群充滿信心,相信他們能夠守護現代運算的基礎架構。對他們而言,測試階段已經結束, Rust 在核心中的應用已成為現實,他們將全力推進 Rust 整合到最關鍵的元件中。

C 程式碼的惡夢與 Rust 的自動解決方案

為了說明他們每天面臨的實際問題,這位開發者回憶起藍牙程式碼中一個長達十五年未被發現的缺陷,原因只是忘記檢查記憶體指標。他也提到Xen程式碼中的一個漏洞,有人忘記釋放一個鎖。這些小小的疏忽日積月累,最終會導致系統崩潰或為網路攻擊敞開大門。 Rust的巨大優勢在於,它能在程式碼編譯過程中,也就是程式碼進入程式碼審查階段之前,就可以捕捉這些錯誤。如果程式設計師忘記檢查錯誤或釋放資源,程式就會直接拒絕編譯。

由於採用這種自動驗證機制,程式碼審查人員無需再浪費時間尋找細枝末節,可以專注於程式的實際邏輯。 Kroah -Hartman 估計,光是這些特性就能消除目前核心 60% 的 bug。此外,這種新的工作方式已經影響到 C 程式碼,迫使程式設計師優化介面並採用更安全的技術,這表明 Rust 的存在本身就已經改進了 Linux。

除了記憶體鎖之外,本次演講還探討了一個基於微軟一條古老格言的重要安全概念:假設任何進入系統的資料都是惡意的。 Kroah-Hartman解釋說,他們正在Rust中開發一種方法,以便在類型系統內部明確地將資料標記為「不受信任」。

這樣一來,編譯器就能強製程式設計師在使用或存取資訊之前先對其進行驗證。這一點在今天尤其重要,因為開發人員不僅不信任用戶編寫的程序,也對硬體本身抱有疑慮,硬體往往存在出廠缺陷,甚至可能被惡意設計。透過將所有驗證集中在一個點上,安全檢查將更加快速且準確。

無需從頭重寫即可實現進化

儘管這位專家熱情洋溢,但他明確指出 Rust 並非萬能。他舉例說,一段用 Rust 編寫的小程式碼原本用於在系統崩潰時顯示二維碼,結果卻因為沒人想到要檢查資料緩衝區的大小而導致記憶體問題。 Rust如果使用不當,缺乏常識,也會出現問題。正因如此,公司裡沒有人考慮重寫 Linux 現有的 36 萬行 C 程式碼。規則很明確:舊程式碼保持不變,新工具只會用於建立現代驅動程式。

目前,核心僅由大約 113.000 行 Rust 程式碼構成,其中大部分是為彌合兩種語言之間的差異而進行的臨時性適配。然而,像 Android 內部通訊系統(Binder)這樣的大型專案已經開始進行過渡,這意味著很快就會有數十億支手機每天運行這段程式碼。

該專案將這種變化視為一種自然演變,隨著新硬體需要使用具有現代安全保證的全新程序,舊的 C 驅動程式將隨著時間的推移而逐漸被淘汰。


在 Google 中將其新增為首選來源