尼克·德薩尼(
讓我們回想一下,在開源高峰會和嵌入式 Linux 會議最近的一次討論中,Linus Torvalds
- “桶中魚”公司的開發人員
準備好了 一個用 Rust 語言為 Linux 核心編寫可載入模組的工具包,在介面和核心結構上使用一組抽象層來提高安全性。 使用該實用程式根據現有核心頭檔自動生成層賓根 。 Clang 用於建構層。 除了中間層之外,組裝的模組還使用 staticlib 套件。 - 香港中文大學研究人員
發展 一個使用 Rust 開發嵌入式系統和物聯網設備驅動程式的項目,該項目還使用 bindgen 基於內核頭檔生成層。 該框架允許您在不更改核心的情況下提高驅動程式安全性 - 建議使用更安全的 Rust 語言在編譯階段阻止問題,而不是在核心中為驅動程式建立額外的隔離等級。 假設設備製造商可能需要這樣的方法,即在沒有進行適當審核的情況下匆忙開發專有驅動程式。 - 框架開發者
C2鐵鏽 用於將 C 代碼廣播到 Rust,執行 透過最少的手動編輯來轉換內核模組的實驗。 注意到的問題之一是在內核的許多部分使用的程式碼使用了 C2Rust 尚未支援的 GCC 擴充。 為了解決這個問題,C2Rust計劃添加對GCC屬性inline、cold、alias、used和section的支持,並擴展內聯彙編器的功能,解決同時對齊和打包的結構(例如xregs_state)的問題。 需要手動工作的重大問題包括無法將重要的 C 巨集轉換為 Rust 巨集以及需要重新定義類型,因為 C2Rust 將 C 類型轉換為 libc 套件中的定義,但該套件不能在核心模組中使用。
來源: opennet.ru