為了幫助促進在內核中探索用於 Linux 存儲目的的 Rust 編程語言,三星工程師 Andreas Hindborg 發布了一個用這種內存安全編程語言編寫的空塊驅動程序。
Rust 空塊驅動程序旨在用於評估內核塊層的 Rust 綁定,將 Rust 公開給更多 Linux 存儲開發人員,並用於幫助圍繞 Rust 和 Linux 存儲驅動程序“踢輪胎”的類似目的。
Andreas Hindborg 在這個新 Rust 驅動程序的公告中寫道:
“空塊驅動程序小而簡單,是介紹 Linux 內核存儲社區的好地方到 Rust。這將幫助社區為未來的 Rust 項目做好準備,並促進這些項目的更好維護過程。
我之前消息中提供的統計數據表明,C 空塊驅動程序存在大量與內存安全相關的問題在過去。為 C 空塊驅動程序合併的修復程序中有 41% 是針對內存安全問題的修復程序。這使得空塊驅動程序成為在 Rust 中重寫的良好候選者。
…
在此表中的每個單元格在括號中顯示了 Rust 驅動程序與 C 驅動程序的相對性能,其中 C 驅動程序的吞吐量為:`rel_read rel_write (read_miops write_miops)`。例如:對於 fio randread 有 2 個作業,Rust 驅動程序的性能比 C 驅動程序高 4.74%塊大小為 16 KiB。
超過 432基準配置,Rust 驅動程序與 C 驅動程序的相對性能(就 IOPS 而言)在 6.8% 到-11.8% 之間,讀取平均好 0.2%。對於寫入,跨度為 16.8% 到-4.5%,平均好 0.9%。”
Rust 空塊驅動程序已經支持 BLK-MQ 多隊列,直接完成 I/O, read/write requests, optional memory backing, and more. 儘管還有其他特性使該驅動程序可與現有的基於 C 的空塊驅動程序相媲美,例如 NUMA 支持、基於生物的提交、I/O 調度程序配置,分區存儲支持等。
有關此早期 Rust 空塊層驅動程序的更多詳細信息,可通過 這個補丁系列。