支持 Rust 語言的 Linux 內核補丁第十版

Rust-for-Linux 專案的作者 Miguel Ojeda 提議發布 v10 元件,用於以 Rust 語言開發裝置驅動程序,供 Linux 核心開發人員考慮。 這是第十一個版本的補丁,考慮到第一個版本,發佈時沒有版本號。 對 Rust 的支援已獲得 Linusum Torvalds 的批准,可以包含在 Linux 6.1 核心中,除非出現不可預見的問題。 該開發由 Google 和 ISRG(網路安全研究小組)資助,ISRG 是 Let's Encrypt 專案的創始人,致力於推動 HTTPS 以及提高網路安全性的技術開發。

與先前版本的補丁一樣,v10 版本被削減到最低限度,足以建立一個用 Rust 語言編寫的簡單核心模組。 與先前版本的差異歸結為較小的編輯,將 kallsyms.c 中的 sizeof 替換為 ARRAY_SIZE 並調整補丁以適應 v6.0-rc7 核心。 預計最小補丁的大小已從 40 行程式碼減少到 13 行程式碼,這將簡化主核心對 Rust 支援的採用。 在提供最低限度的支援後,計劃逐步增加現有功能,從 Rust-for-Linux 分支轉移其他變更。

提議的更改使得使用 Rust 作為開發驅動程式和核心模組的第二語言成為可能。 Rust 支援作為一個選項提供,預設不啟用,並且不會導致 Rust 被包含為核心所需的建置依賴項。 使用 Rust 進行驅動程式開發將允許您以最小的努力創建更安全、更好的驅動程序,並且不會出現釋放後記憶體存取、空指標取消引用和緩衝區溢位等問題。

Rust 在編譯時通過引用檢查、跟踪對象所有權和對像生命週期(範圍)以及在代碼執行期間評估內存訪問的正確性來提供內存安全。 Rust 還提供防止整數溢出的保護,要求在使用前強制初始化變量值,更好地處理標準庫中的錯誤,默認應用不可變引用和變量的概念,提供強靜態類型以最小化邏輯錯誤。

來源: opennet.ru

添加評論