Linux 之父發話:Rust 即將出現在 Linux 核心中

語言: CN / TW / HK

Linus Torvalds:Rust For The Kernel 可能會被合併到 Linux 5.20

當地時間 6 月 22 日上午, Linus Torvalds 在 Linux 基金會開源峰會上發言稱,Rust 有可能很快就會出現在 Linux 的核心中,最快是下一個核心週期。

Linus Torvalds 和 Dirk Hohndel 在開源峰會上的常規演講/對話中,Linus 評論了核心中的 Rust程式語言 程式碼。

Torvalds 稱,他們希望很快能將 Rust 編寫的程式碼合併到核心中,甚至 Rust 可能出現在下一個版本中,即 Linux 5.20。

目前,還沒有任何 Rust for Linux 拉取請求被髮送或合併,但是用於基礎設施、一些基本的示例驅動程式中時,核心的 Rust 啟動程式碼已經開始穩定下來。

上個月看到最新發布的 Rust Linux 核心補丁使更多功能成型,此外還完成了審查。如之前多次提到,Linux 核心中的 Rust 支援在構建時仍然是可選的,具體取決於你是否需要支援或僅僅是在 Rust 程式碼中實現某些核心效能。

Linux 5.20 合併視窗將在 7 月底左右 Linux 5.19 穩定版釋出後開啟,屆時我們就能知道 Rust PR 是否已經提交併登入到下一個核心版本中了。事情後續的進展如何並不會讓大家感到驚訝,因為 Linus 已經送出了祝福。

Liunx 5.20 已經有了一些值得注意的效能優化,包括新的硬體支援、更多的 AMD 支援工作、RDNA3 有望在這一版核心中處於良好狀態,我們也有可能會看到 MGLRU 主線以及其他一些預期的功能。

早在 2021 年底,Linux 核心和 Rust on Linux 的主要開發者 Miguel Ojeda 向 Linux Kernel 郵件列表提交了一個 新補丁 (v2) ,推進了 Rust for Linux 的工作進展。

郵件內容指出,新的補丁將為 Linux 核心增加對 Rust 作為第二語言的支援,並且對 Rust 的整體支援進行了多項改進。具體來說,Rust 程式碼現在已經依賴於穩定的 Rust 編譯器而不是之前的 beta 版本狀態。Ojeda 稱,接下來每次釋出新的穩定 Rust 編譯器時,Linux 上的 Rust 都會進行遷移。

展望未來,Ojeda 繼續提到 “通過升級編譯器,我們已經能夠把我們使用的一些不穩定的特性從列表中刪除。我們將繼續升級,直到我們不再依賴任何不穩定的特性,到那時,我們可能要開始宣佈支援 Rust 的最低版本,就像對 GCC 和 Clang 那樣。”

現在看來,Ojeda 的想法距離成真不遠了。

學術界和工業界的支援

隨著 Rust 的興起,許多開發人員越來越有興趣在 Linux 核心中嘗試 Rust。

2019 年,Alex Gaynor 和 Geoffrey Thomas 在 Linux Security Summit 安全峰會上進行了演講,他們介紹了 Rust 核心模組的一個原型,並提出了在核心中採用 Rust 的理由。此次演講重點是在安全問題上,其中指出在 Android 和 Ubuntu 中,約有三分之二的核心漏洞被分配到 CVE 中,這些漏洞都是來自於記憶體安全問題。原則上,Rust 可以通過其 type system 和 borrow checker 所提供的更安全的 API 來完全避免這類錯誤。

2020 Linux Plumbers Conference 上,Thomas 、Gaynor、Rust 語言團隊的聯合領導者 Josh Triplett 以及其他一些對此感興趣的開發者以“Barriers to in-tree Rust”為主題,討論了想要把 Rust 引入到 Linux 核心專案中作為一種可選的開發語言還需要解決的一些問題。其中 in-tree 是 Linux 術語,意思是與核心原始碼樹本身一起儲存並與之一起構建核心模組。

與會者強調,他們並不是提議將 Linux 核心重寫成 Rust,只是關注於走向一個可以用 Rust 編寫新程式碼的世界。本次討論集中在 Rust 支援的三個潛在關注點上:

  • 對現有 C API 的繫結(Binding to existing C APIs);

  • 架構支援(Architecture support);

  • 關於 Rust 和 C 之間 ABI 與核心的相容性(ABI compatibility with the kernel)。

對此, Linux 之父 Linus Torvalds 也曾發表看法:Linux 最終不會用 Rust 編寫,沒有人會用 Rust 重寫核心的 2500 萬行 C,但是他也看到了 Rust 的優勢,鼓勵採用緩慢但穩定的方法將 Rust 引入 Linux,同時他表示將 Rust 介面用於驅動程式和其他非核心核心程式是有道理的。

此外,Ojeda 還在郵件中透漏繼 ARM、谷歌和微軟之後,紅帽方面也表達了他們對該專案的支援意向。

有關 Rust 基金會

去年二月份,Rust 基金會宣佈正式成立。

Rust 基金會是一個新的獨立的非盈利組織,負責管理 Rust 程式語言及生態。該組織將致力於為那些管理和開發該專案的維護者提供支援。

Rust 基金會由 AWS 華為 谷歌 微軟 和 Mozilla 聯合成立,並承諾在兩年的時間裡,投入 100 萬美元的預算,用於 Rust 專案的開發、維護和推廣。

Rust 基金會臨時執行董事,核心團隊成員 Ashley Williams 當時表示,“這標誌著 Rust 在多維度上都邁出了一大步,更重要的是,一些全球行業領先的公司做出了正式的財務上的預判:Rust 將是未來企業生產中不可缺少的技術。”

參考連結: