Contents
以下介紹翻譯自專案的 Readme
Linux 驅動的嵌入式或物聯網系統上的裝置驅動程式在核心空間中執行,因此必須完全受到信任。 Driver 的任何故障都可能嚴重影響整個系統。 然而,第三方嵌入式硬體製造商通常將他們的專有裝置驅動程式與他們的嵌入式裝置一起釋出。 由於缺乏程式碼稽核,這些 out-of-tree 裝置驅動程式的品質通常很差。
我們提出一種方法,幫助第三方開發人員在不修改核心的情況下提高裝置驅動程式的可靠性和安全性: 使用一種稱為 Rust 的記憶體安全程式語言重寫裝置驅動程式。 Rust 嚴格的語言模型有助於裝置驅動程式開發人員在編譯時檢測許多安全問題。 我們設計了一個框架來幫助開發人員使用 Rust 快速建立裝置驅動程式。 我們還利用 Rust 的安全特性為開發人員提供了一些有用的基礎設施,使他們能夠方便地處理核心記憶體分配和併發管理,同時還可以減輕一些常見的錯誤(例如 use-after-free )。
我們通過在 Raspberry Pi 3上實現一個真實的裝置驅動程式來展示我們的框架的通用性,我們的評估表明,我們的框架生成的裝置驅動程式對於規範的嵌入式系統具有可接受的二進位制檔案大小,執行時的 overhead 可以忽略不計。
✍ 感想:系統程式設計( 包括作業系統 ) 可以說是 C 語言的天下,看到這個專案覺得有點神奇, Rust 也可以實作出 Linux 的 Driver ,也就是 Rust 未來有接替 C 語言角色的可能性
專案網址:https://github.com/lizhuohua/linux-kernel-module-rust
相關線上課程
🌳未來有跟這個專案的補充資訊會放到 FB 貼文的留言區,有興趣可按讚追蹤
★ 歡迎使用 App / Email | Telegram 訂閱 網站更新★