哇,工作 對 Linux 的 Rust 驅動程序支持正在進行中 並且已經開始了相當持續的發展,因為它沒有太多可做的 版本 8 發布 補丁,就是這樣 現在我們有版本 9。
正是在已經提出的第九個版本中,值得一提的是 是前幾天出版的第八版的簡化版. 該套件的特點是顯著減小了大小,並且只保留了最必要的最小值,足以構建用 Rust 編寫的內核模塊。
假設最小補丁 將使在主內核中採用 Rust 支持變得更容易。 在提供最低限度的支持後,計劃逐步增加現有功能,從 Rust-for-Linux 分支移植其他更改。
這是為 Linux 內核添加對 Rust 作為第二語言的支持的一系列補丁 (v9)……
像往常一樣,特別感謝 ISRG(互聯網安全研究組) 和谷歌在這項工作中的財政支持。
與版本 8 相比,補丁的大小已從 40 行減少到 000 行代碼。 例如,版本 3 僅包含來自“kernel”box 包的 500% 的代碼(60 行)和 32% 的 alloc 庫,允許您使用 Vec 類型創建最簡單的內核模塊。 並使用“pr_info!”宏在內核日誌中顯示信息。
此外, 關於 Rust 和 Linux,值得一提的是,最近 Rust 項目開發者警告 給用戶關於 對 Linux 環境的需求即將增加 在編譯器、Cargo 包管理器和 libstd 標準庫中。
從 Rust 1.64 開始,計劃於 22 年 2022 月 XNUMX 日發布,Glibc 的最低要求將從 2.11 版本提高到 2.17,Linux 內核從 2.6.32 提高到 3.2. 這些限制也適用於使用 libstd 構建的 Rust 二進製文件。
RHEL 7、SLES 12-SP5、Debian 8 和 Ubuntu 14.04 發行版滿足新要求。 將停止支持 RHEL 6、SLES 11-SP4、Debian 7 和 Ubuntu 12.04。 棄用對舊 Linux 系統的支持的原因包括繼續支持舊環境的資源有限。
為什麼要提高要求?
我們希望 Rust 和 Rust 生成的二進製文件盡可能廣泛地使用。 同時,Rust 項目只有有限的資源來保持與舊環境的兼容性。工具鏈要求有兩部分:在主機系統上運行 Rust 編譯器的最低要求,以及交叉編譯二進製文件的最低要求。
主機工具鏈的最低要求會影響我們的構建系統。 Rust CI 為幾十個不同的目標生成二進制工件。 構建支持舊版本 glibc 的二進製文件需要使用舊 glibc 構建操作系統(用於本地構建)或使用帶有舊版本 glibc 的構建根(用於交叉構建)。
特別是 兼容較舊的 Glibcs 需要使用較舊的工具 在持續集成系統中驗證時, 與對 LLVM 和交叉編譯實用程序增加的版本控制要求相比。 內核版本要求的增加是由於 libstd 能夠使用新的系統調用而無需維護層以確保與舊內核的兼容性。
建議在具有較舊 Linux 內核的環境中使用 Rust 創建的可執行文件的用戶升級他們的系統,繼續使用舊版本的編譯器,或維護他們自己的分層 libstd fork 以保持兼容性。
最後,如果你有興趣能夠了解更多,可以查閱詳情 以下鏈接。