
微軟將 Rust 整合到 Windows 驅動程式開發中
自 2023 年中期以來,微軟一直致力於將 Rust 融入 Windows 作業系統。這項計畫始於 Rust 成功融入 Windows 內核,如今已發展到鼓勵驅動程式開發人員採用這種創新的程式語言。
開源windows-drivers-rs
專案啟動
今年 7 月,微軟推出了這個開源windows-drivers-rs
項目,這是 Surface 團隊的一項努力,旨在簡化使用 Rust 進行 Windows 驅動程式開發。該框架旨在提高使用 Rust 開發驅動程式的效率,為 C 等傳統語言提供更現代的替代方案。
cargo-wdk
板條箱介紹
最近,微軟宣布了對該計劃的增強,特別是推出了cargo-wdk
crate。這個新的 Cargo 擴充功能透過產生具有預先配置建置步驟、依賴項和連結的空驅動程式專案來簡化驅動程式的建立過程。它還可以利用 Windows 驅動程式工具包 (WDK) 工具(例如 InfVerif),從而模擬在 Visual Studio 中使用 C 語言建立驅動程式的體驗。
使用 Rust 的優勢
Rust 憑藉其卓越的記憶體安全特性,在 C 等傳統程式語言中脫穎而出。這項特性顯著降低了記憶體相關安全漏洞的風險。此外,Rust 與 C 和 C++ 驅動程式程式碼擁有卓越的相容性,使開發人員的遷移更加便利。
未來目標和發展
微軟的長期願景是為 Cargo 生態系統中的 Rust 開發者提供與 Visual Studio 中提供的建置工具和配置選項相符的建置工具和配置選項。中期目標是實現 Windows Driver Kit 的自動安裝、對 NT_TARGET_VERSION 的支援以及完全的 ARM64 相容性等增強功能。
Rust 在驅動程式開發中的現狀
目前,該windows-drivers-rs
框架支援 Rust 中的特定驅動程式類型;然而,它仍然需要大量的不安全程式碼。微軟正在積極與 Rust 專家合作,為核心模式驅動程式 (KMD) 和使用者模式驅動程式 (UMD) 創建更安全的抽象。此外,還有多個團隊正在開發針對核心核心功能和第三方驅動程式開發的安全性結構和 API,其中一些創新已經整合到 Windows 核心中。
理解驅動程式開發中的抽象
對於可能不熟悉該術語的人來說,此處的抽像是指使用者模式和核心模式之間的安全轉換過程。核心模式在最高特權層級運行,而使用者模式在較低特權層級運行,這凸顯了安全高效轉換的重要性。
後續步驟和最佳實踐
展望未來,微軟計劃提供有關驅動程式開發的更多見解和最佳實踐,包括使用 CodeQL 進行靜態分析。值得注意的是,該公司已在 7 月更新了第三方驅動程式靜態分析指南,以配合 Windows 11 版本 25H2 的發布。
要了解有關這些發展的更多信息,您可以訪問Microsoft 官方技術社區網站上的完整部落格文章。
發佈留言