字号 ·· | 护眼
theregister

微软将 Rust 列为内部“Tier 1”语言

当微软的开发人员和工程师编写代码时,他们现在可以选择使用 Rust,微软已将其列入官方规范语言列表中。在蒙特利尔举行的今年 RustConf 年会上,微软 Rust 工具团队首席工程师 Victor Ciura 在主旨演讲中解释道:“Rust 现在是微软的一级(Tier 1)语言,这意味着它与 C++、C# 和 TypeScript 并列,成为公司内部开发支持力度最好的语言之一。”Ciura 表示,微软已经铺平了一条涵盖整个软件开发生命周期的工具和流程道路,以支持本地 Rust 开发。

Rust 在微软并不陌生,已存在于 100 多个微软项目代码库中。该公司开发了 Oxidizer(用于在 Rust 中构建可扩展服务的一套 crate),已用于构建和完善 Microsoft 365 (M365) 核心服务(如 Outlook、Word、Excel、OneDrive 和 SharePoint)。Copilot 技术栈也在很大程度上归功于 Rust。

但真正棘手的工作还在后面。鉴于最近 Windows“周二补丁日”的大量补丁,毫无疑问,Rust 最主要用途之一将是修补脆弱的 C/C++ Windows 代码。这正是 Rust 诞生的初衷。Mozilla 开发者 Graydon Hoare 于 2006 年创建了 Rust 这一副业项目,主要将其作为一种高性能语言,与 C 和 C++ 不同,它可以防止内存漏洞。此后,为了提高性能并减少漏洞而用 Rust 重写程序已成为项目领导者的日常工作,他们通常在 AI 的帮助下,将从数据库到包管理器的所有内容都进行了 Rust 化。

微软在让 Rust 适配其编译 Windows 二进制文件的原生平台 Microsoft Visual C++ (MSVC) 方面已经做了大量工作。值得注意的是,公司工程师构建了 rustc_codegen_utc,这是一个自定义 Rust 编译器代码生成后端,可将 rustc 编译器直接连接到 MSVC 的 Windows 内部工具链中。Ciura 在一篇详细介绍微软 Rust 努力的博客文章中写道:“将 rustc 连接到该后端,可以让 Rust 在相同的平台投资上进行构建,具备开箱即用的完美兼容性,而不需要针对每个 Windows 特定功能进行并行实现。其结果是为 Windows 上的 Rust 和 C++ 提供了统一的代码生成平台。”

即便有了紧密的 Rust 集成,微软工程师依然面临艰巨的任务。今年 RustConf 的一个经常出现的主题是应对混合 Rust 和 C++ 代码时带来的危险“unsafe(不安全)”领域。虽然 Rust 编译器可以标记内存错误,但它通常无法覆盖指向 C++ 内存分配的指针。

尽管如此,微软拥抱 Rust 依然是一个令人欢迎的发展。在 2025 年 RustConf 主旨演讲中,微软 Azure 首席技术官 Mark Russinovich 指出,约 70% 的 Windows CVE 漏洞属于内存问题。他说:“很久以前我就意识到,无论我们多么想把 C 和 C++ 做得更好,我们都无法让它达到 Rust 起步时的优秀水平。”