Rust 時代真的要來了?將成為 Linux 的第二個官方語言
大家知道,Linux 是 C 語言的代言人。但是,目前 Rust 正在興起而且贏得越來越多人的支持,以至于有人提議用 Rust 編程語言重寫 Linux,至少部分重寫。Linus Torvalds 和其他核心內核維護者都表示原則上對支持 Rust 的內核開發持開放態。
就在不久之前,Linux 內核中會使用除 C 之外的另一種語言的想法會被嘲笑。不過,現在事情已經起了變化。如今,不僅高級系統語言Rust越來越接近 Linux,而且下一個“補丁系列將 Rust 作為第二語言添加到 Linux 內核中”,它比以往任何時候都更接近Linux。
這些新包的最大變化是,為內核提議的 Rust 代碼現在依賴于穩定的 Rust 編譯器而不是 beta 編譯器。展望未來,每次發布新的穩定 Rust 編譯器時,Linux 上的 Rust 都會遷移。目前,它使用Rust 1.57.0。
Rust 1.57.0 最新版本截圖
正如 Linux 內核和 Linux 上的 Rust 領導者,開發人員 Miguel Ojeda 所說,“通過升級編譯器,我們已經能夠從列表中刪除一些我們正在使用的不穩定功能。” 這反過來意味著 Linux 上的 Rust 將更加穩定。
展望未來,Ojeda 寫道:“我們將繼續升級,直到我們不依賴任何不穩定的功能;在這一點上,我們可能想開始聲明支持 Rust 的最低版本,例如 GCC 和 Clang。
高級 Linux 內核開發人員 Greg Kroah-Hartman 曾說,他愿意接受使用Rust開發Linux內核的驅動程序,因為“它們是內核源代碼中依賴關系樹的‘末端葉子’。它們依賴于核心內核功能,但沒有任何東西依賴于它們。”
在在 2020 (virtual) Linux Plumbers Conference 會議上,頂級 Linux 內核開發人員討論了 Linux 的未來,已經有將引入 Rust 作為內核的第二語言的想法。
盡管 Linus Torvalds 確信,Linux 最終不會用 Rust 編寫。但是,那不是目標。沒有人會用 Rust 重寫內核的 2500 萬行 C。
在 Rust 語言負責人 Josh Triplett 和 Google 工程師 Nick Desaulniers 的帶領下,他們提議在內核中使用系統級 Rust 語言。為什么?因為它比 C 安全得多,尤其是在處理內存錯誤方面。
正如微軟首席云開發倡導者 Ryan Levick 所解釋的那樣,“ Rust 是完全內存安全的。” 由于大約三分之二的安全問題可以追溯到內存處理不當,這是一個重大改進。此外,“Rust 通常可以在不增加任何運行時開銷的情況下防止這些問題,”Levick 說。
Torvalds 雖然鼓勵采用緩慢但穩定的方法將 Rust 引入 Linux,但他也表示將 Rust 接口用于驅動程序和其他非核心內核程序是有道理的:“我相信這會發生。它可能不是 Rust,但我們將會有不同的模型來編寫這些類型的東西,而且 C 不會是唯一的模型。”
Linux 內核維護者 Miguel Ojeda以前曾表示,“該項目尚未完成,大多數工作還沒有完成。但如果高級維護人員接受當前的更改并希望我們在內核中工作,我們就準備好進入主線。”
不過,現在工作進展順利。我希望在 2022 年的某個時候看到 Linux 內核中的第一個 Rust 代碼。