为了更安全的 Windows,微软呼吁厂商用 Rust 编写 Windows 驱动

昨日(7 月 24 日),微软在官方博客中再次强调其对 Rust 语言在 Windows 驱动开发中的支持,并正式呼吁设备厂商和开发者采用 Rust 编写驱动程序,以提升系统底层的安全性与可靠性。

为了更安全的 Windows,微软呼吁厂商用 Rust 编写 Windows 驱动插图

这不是一次口号式倡议,而是微软自 2023 年以来持续推进的技术转型的一部分。随着越来越多的内核级代码开始用 Rust 实现,一场关于操作系统“安全根基”的重构正在悄然发生。

为什么是驱动?因为它是系统最脆弱的环节

驱动程序是操作系统与硬件之间的桥梁,运行在内核态(kernel mode),拥有最高权限。一旦出现漏洞,攻击者便可借此获得系统完全控制权。

据微软统计,在过去十年中,Windows 内核漏洞的 70% 以上源于内存安全问题,如缓冲区溢出、空指针解引用、use-after-free 等——这些问题大多源自 C/C++ 这类缺乏内存安全保障的语言。

而 Rust 的核心优势,正是在不牺牲性能的前提下,通过编译时检查彻底消除这类内存错误

微软在博文中明确指出:

“编写安全的驱动代码至关重要。Rust 提供了内存安全保证,是应对这一挑战的关键工具。”

从承诺到落地:Rust 已进入 Windows 内核

微软对 Rust 的投入并非空谈:

  • 2023 年 5 月:微软宣布将在 Windows 内核中引入 Rust;
  • 2023 年 7 月:在 Windows 11 Build 25905 预览版中,首次包含用 Rust 编写的内核组件;
  • 2024 年至今:Rust 驱动支持逐步完善,Windows 驱动程序工具包(WDK)已开始集成 Rust 构建支持。

如今,微软正推动将 Rust 从“可选实验”变为“推荐实践”。

Surface 团队先行:用 Rust 为硬件写驱动

最有力的倡导,往往来自内部实践。

微软 Surface 团队已成为 Rust 驱动开发的先行者。他们积极参与开源项目 windows-drivers-rs,并已使用 Rust 为部分 Surface 设备编写实际驱动。

团队反馈称,这种方法不仅显著提升了设备驱动的稳定性和安全性,也推动了整个 Windows 生态在底层代码质量上的提升。

更重要的是,这些驱动通过了严格的认证流程,证明 Rust 编写的代码完全可以满足生产环境要求。

Rust 的优势不止于内存安全

微软在博文中列举了 Rust 在驱动开发中的多重优势:

  • ✅ 内存安全:编译器强制执行所有权和借用规则,杜绝常见内存错误;
  • ✅ 类型安全与并发安全:减少逻辑错误,提升多线程场景下的可靠性;
  • ✅ 零成本抽象:高性能与高安全性兼得,无运行时开销;
  • ✅ 静态分析能力强:在编译阶段发现潜在问题;
  • ✅ 与 C/C++ 互操作良好:可渐进式迁移,无需重写整个代码库。

这些特性使得 Rust 成为替代 C/C++ 的理想选择,尤其适用于对安全性和性能双重要求的系统级编程。

开源共建:欢迎开发者参与 windows-drivers-rs

微软强调,Rust 在 Windows 驱动生态的推广需要整个社区的参与。

目前,windows-drivers-rs 项目已在 GitHub 开源,提供:

  • Rust 绑定接口(FFI)支持
  • 驱动模板与示例代码
  • 与 WDK 的集成指南

微软鼓励设备制造商、独立硬件供应商(IHV)和开发者贡献代码、反馈问题,共同完善工具链和文档体系。

未来方向:提升 Rust 与 WDK 的功能一致性

尽管进展显著,Rust 在 Windows 驱动开发中仍处于早期阶段。当前部分 WDK 功能尚未完全支持 Rust,开发流程也比 C++ 更复杂。

对此,微软承诺:

“我们将继续推进 Rust 支持,提升其与 Windows 驱动程序工具包(WDK)之间的功能一致性。”

这意味着未来将有更多原生支持、更完善的调试工具和更简化的构建流程,降低厂商迁移门槛。

评论