Linux 上 Rust 驅動程序支持的第四版補丁已經發布

米格爾·奧赫達,Rust-for-Linux 項目的作者, 最近發布了第四個提案 設備驅動組件 Rust 供 Linux 內核開發人員考慮。

Rust 支持被認為是實驗性的, 但它已經被同意包含在 linux-next 分支中,並且已經足夠成熟,可以開始在內核子系統之上的抽象層上工作,以及編寫驅動程序和模塊。 該開發由 Google 和 ISRG(互聯網安全研究小組)資助,ISRG 是 Let's Encrypt 項目的創始人,致力於推動 HTTPS 以及提高互聯網安全性的技術開發。

對於那些仍然不知道擬議變更的人,他們應該知道它們使之成為可能 使用 Rust 作為開發控制器和模塊的第二語言 內核的。 Rust 支持作為一個選項提供,默認情況下不啟用,並且不會導致 Rust 包含在內核所需的構建依賴項中。

使用 Rust 開發驅動程序 將使您能夠以最小的努力創建更好、更安全的控制器,不會出現釋放內存區域後訪問內存區域、取消引用空指針和緩衝區溢出等問題。

Rust 在編譯時通過檢查引用、跟踪對象所有權和對像生存期(範圍)以及在代碼執行期間評估內存訪問的正確性來提供內存安全。

Rust 還提供整數溢出保護,要求變量在使用前初始化,在標準庫中更好地處理錯誤,默認強制執行不可變引用和變量的概念,並提供強大的靜態類型以最大限度地減少邏輯錯誤。

第四部有哪些變化呢?

在所提供的這個新版本的補丁中,提到繼續消除在討論第一版、第二版和第三版補丁時所做的評論。

我們將不斷更新,直到不再依賴任何不穩定的功能;
此時我們可能想要開始聲明 Rust 的最小版本
支持,例如 GCC 和 Clang。

同樣,我們也遷移到了 2021 版 Rust 語言。

關於本次新版本的其他變更,公告中提到如下:

  • 進行了過渡,以便能夠使用 Rust 1.58.0 的穩定版本作為參考編譯器。
  • 該項目所需的更改尚未包含在主Rust 工具包中,包括“-Zsymbol-mangling-version=v0”標誌(預計在Rust 1.59.0 中)和“maybe_uninit_extra”模式。(預計在Rust 1.60.0 中) )。
  • 添加了對 Rust 工具可用性和適用性的自動檢查,並擴展了測試系統上 Rust 支持的能力。
  • 建議使用新的抽象來從 Rust 代碼訪問設備標識符表(“IdArray”和“IdTable”)。
  • 添加了用於調用與計時器(時鐘幀)相關的函數的層。
  • 平台控制器現在通過特徵實現來定義。
  • 添加了一個新的宏,以簡化平台驅動程序的註冊,並提出了一個新的通用驅動程序模板。
  • 為“dev_*”結構添加了新的宏。
  • 為 IoMem 類型添加了新方法“{read,write}*_relaxed” 。
  • 刪除了 FileOpener 屬性以簡化文件操作。
  • 將“ThisModule”參數添加到控制器註冊期間傳遞的參數數量。
  • 提出了一個用 Rust 語言創建內核模塊的典型模板。

最後,如果您有興趣能夠了解更多關於這個新版本的信息,可以諮詢詳情 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。