Western Digital 已經在開髮用 Rust 編寫的 NVMe 驅動程序

鐵鏽Linux

Rust 在 Linux 中的集成得到了社區和開發者的高度認可

在“Linux Plumbers 2022”會議期間 這幾天正在進行中,一位西部數據工程師 介紹了控制器的開發 SSD NVM-Express 實驗 (NVMe) 用 Rust 編寫 並在 Linux 內核級別運行。

即便如此 該項目仍處於早期開發階段,進行的測試表明,Rust NVMe 驅動程序的性能對應於內核中用 C 編寫的 NVMe 驅動程序。

我是 Matthew Wilcox,我是 NVMe 規範的作者之一,我是建議我製作 NVMe 驅動程序來展示 Rust 價值的人。 它的成功超出了我的最大期望。 

關於提交的報告 目前的NVMe C驅動據說完全令人滿意 對於開發人員來說,NVMe 子系統是一個很好的平台來探索在 Rust 中開發驅動程序的可行性,因為它非常簡單,應用廣泛,具有很高的性能要求,有一個經過驗證的參考實現進行比較,並且支持各種接口(dev, pci、dma、blk-mq、gendisk、sysfs)。

據觀察, Rust PCI NVMe 驅動程序已經為操作提供了必要的功能, 但它還沒有準備好廣泛使用,因為它需要單獨的增強。

未來的計劃包括擺脫現有的不安全區塊, 支持移除設備和下載驅動, 支持sysfs接口,實現延遲初始化,為 blk-mq 創建控制器,並試驗 queue_rq 的異步編程模型。

此外,我們可以指出 進行的實驗 由 NCC Group 以 Rust 語言開發控制器 FreeBSD 內核. 例如,一個簡單的回顯控制器,它返回寫入 /dev/rustmodule 的數據。 在下一階段的實驗中,NCC 集團正在考慮重新設計 Rust 中的核心核心組件,以提高網絡和文件操作的安全性。

也就是說,儘管已經證明可以在 Rust 中創建簡單的模塊, 將 Rust 更緊密地集成到 FreeBSD 內核中需要額外的工作。

例如,他提到需要在內核子系統和結構上創建一組抽象層,類似於 Rust 項目為 Linux 準備的插件。 未來,我們計劃對 Illumos 核心進行類似的實驗,並重點介紹 Rust 中可用於由 Rust 為 Linux、BSD 和 Illumos 編寫的驅動程序中的常見抽象。

根據微軟和谷歌的說法,他們軟件產品中大約 70% 的漏洞是由於內存管理不安全造成的。

使用 Rust 語言應該可以降低漏洞風險 由不安全的內存處理引起的,並且將消除內存區域被釋放後訪問和緩衝區溢出等錯誤的發生。

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

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

值得一提的是,未來的工作可能會與 Miguel Ojeda 提出的關於他的“Rust for Linux”驅動程序的工作齊頭並進,這些驅動程序已作為一系列補丁提供。

終於 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。


發表您的評論

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

*

*

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