微软加速 Rust 在 Windows 应用,提升内存安全与互操作性

IT之家 9 月 3 日消息,自 2023 年以来,微软逐步加强了 Rust 在 Windows 系统中的应用。当前,Windows 内核已经能够在引入 Rust 代码的情况下启动。此外,微软近期还在推动驱动开发向 Rust 语言的过渡。
今年 7 月,微软披露了 Surface 团队在这一方向上的工作进展,推出了开源项目 windows-drivers-rs,旨在为 Rust 驱动开发提供平台支持。在此基础上,微软今日公布了更多细节。
Rust 驱动开发新工具
为了简化 Rust 驱动的开发流程,微软在 windows-drivers-rs 中引入了新的 cargo-wdk crate。这一 Cargo 扩展可以自动生成包含预配置链接、构建步骤和依赖项的空白驱动项目,并可调用 WDK 工具(如 InfVerif),类似于在 Visual Studio 中使用 C 语言构建驱动的方式。
Rust 相较于 C 等传统语言,具备内存安全特性,可有效减少与内存相关的安全漏洞。同时,Rust 与 C / C++ 在驱动代码层面具有良好的互操作性,降低了迁移门槛。
微软的长期目标与计划
微软表示,其长期目标是在 Cargo 环境中为 Rust 开发者提供与 Visual Studio 相同的构建工具和配置选项。中期计划包括自动安装 WDK、支持 NT_TARGET_VERSION、全面支持 ARM64 等。
目前,windows-drivers-rs 已能支持部分类型的驱动开发,但仍需使用较多的 unsafe 代码。微软指出,Windows Driver Framework (WDF) 团队正与 Rust 专家合作,为内核模式驱动 (KMD) 和用户模式驱动 (UMD) 设计更安全的抽象层。
安全性与未来展望
对于微软来说,抽象层本质是实现用户模式(最低权限)到内核模式(最高权限)的安全转换机制。同时,微软其他团队也在开发适用于核心内核及第三方驱动的安全结构体和 API,其中部分已随 Windows 内核发布。
微软还承诺,会在未来几个月内公布更多驱动开发的最佳实践,其中包括利用 CodeQL 进行静态分析。今年 7 月,微软已更新了 Windows 11 25H2 版本的第三方驱动静态分析指南。
“Rust 的内存安全特性是其在驱动开发中被看重的主要原因之一。”——业内专家
这项发展不仅代表了微软在技术领域的创新,也为其他开发者提供了新的工具和方法。随着更多细节的公布,Rust 在 Windows 应用中的角色将更加清晰。