21CTO导读:Microsoft 正式将 Rust 指定为一级编程语言,这标志着 Rust 在这家公司开发生态系统中占有的重要性更加增强,能够帮助工程师们清除Windows中的内存漏洞。
根据Rust基金会的一篇“客座”博客消息,Rust 已在微软内部获得一线(Tier-1)级别的工程支持,与 C++、C#、TypeScript 同级。这意味着从本地开发到生产部署,Rust 有了完整的"平铺路径":安全的工具链构建、开发者工具、质量工作流、深度平台集成,以及符合 SDL(安全开发生命周期)要求。
“Rust 已经是微软的一线语言,这意味着它与 C++、C# 和 TypeScript 一起,成为公司内部开发中支持最好的语言,”微软 Rust 工具团队首席工程师Victor Ciura在本周于蒙特利尔举行的年度 RustConf 大会上发表主题演讲时解释道。
Ciura 表示,微软已经“铺平了道路”,提供了一系列工具和工作流程,支持在整个软件开发生命周期中进行本地 Rust 开发。
现在可以想像,当微软的开发人员或工程师坐下来编码时,他们可以理直气壮选用 Rust 语言做为项目第一语言研发。
Rust 对微软研发团队来说并不陌生,它已经出现在超过 100 个微软项目代码库中。
比如微软开发了Oxidizer,这是一套用于构建可扩展 Rust 服务的 crate,已被用于构建和改进 Microsoft 365 (M365) 的核心服务,例如 Outlook、Word、Excel、OneDrive 和 SharePoint。微软人工智能助手 Copilot 技术栈也大量借鉴了 Rust。
微软Azure 还提供 Rust SDK 以及跨服务的部署路径,包括应用服务、函数服务和 Kubernetes 服务。此外,微软也探索了使用 Rust 开发底层 Windows 组件,作为其内存安全工作的一部分。
但是,微软真正棘手的工作还在后面。鉴于最近Windows周二补丁日的大量更新,Rust最大的用途之一就是修复Windows系统中存在漏洞的C/C++代码。
这才是 Rust 在微软的真正用武之地。
Rust的发展简史
Mozilla 开发者 Graydon Hoare于 2006 年创建了 Rust,最初只是一个小业余项目,其主要目的是开发一种高性能语言,与 C 和 C++ 不同,Rust 可以防止内存级别的错误。
用 Rust 重写程序以提高性能和减少错误已成为项目领导者的一项常见任务,他们已经将从数据库到包管理器的一切都 Rust 化了,而且通常借助于人工智能。
Rust的新家园
很多年来,微软已经做了大量开发工作,使 Rust 能够很好地兼容 Microsoft Visual C++ (MSVC),MSVC 已经是 Rust 编译 Windows 二进制文件的原生平台。
值得一提的是,微软工程师们构建了rustc_codegen_utc项目,这是一款自定义的 Rust 编译器代码生成后端,它将rustc编译器直接连接到 MSVC 的 Windows 内部工具链中。
其作者 Victor Ciura 在一篇博文中详细介绍了微软 Rust 相关工作: “将rustc连接到该后端,可以让 Rust 基于同一平台进行开发,实现开箱即用的完美兼容性,而无需为每个 Windows 特有的功能单独实现。最终成果是一个适用于 Windows 平台 Rust 和 C++ 的统一代码生成平台。”
此技术对混合 Rust/C++ 项目非常有意义:在 Linux 上混合项目可以用 C 作为两种语言的共同 LLVM 后端,utc 让 Windows 原生 MSVC 项目得到了同等的待遇——跨语言内联、SPGO(样本引导的配置优化)、hotpatch、崩溃转储分析、覆盖率工具,这些 MSVC 花了几十年打磨的能力现在可以直接用于 Rust。
关于空指针和外来代码
即使 Rust 与微软实现了紧密集成,微软工程师的工作亦还是充满挑战。
在今年 RustConf 的一个反复出现的演讲主题是,如何应对混合使用 Rust 和 C++ 代码时出现的危险“不安全”问题。虽然 Rust 编译器可以标记内存错误,但它通常不会覆盖指向 C++ 内存分配的指针。
博客中还指出,代码生成、ABI、异常处理和链接后工具只是互操作挑战的一半。语言级别的互操作、FFI 契约、绑定生成、语义差异、构建系统整合,此类问题正在整个行业范围内被解决中,其中还引用了 Rust Foundation 自己的互操作倡议 (Interoperability Initiative)。
尽管如此,微软向 Rust 靠拢仍然是一个值得欢迎的进展。在去年 RustConf 大会的主题演讲中,微软 Azure 首席技术官Mark Russinovich指出,大约 70% 的 Windows CVE 漏洞都与内存问题有关。
“我很早以前就意识到,无论我们多么想改进 C 和 C++,我们都无法让它们达到 Rust 的水平,”他这样说道。
对微软研发战略的影响
Rust进入微软一线语言,这一进展标志着这家公司的战略转变,表明其正式认可了 Rust 在构建安全可靠软件方面的优势。
一级的框架地位表明微软认为 Rust 对其未来的项目至关重要,甚至于优先发展,特别是在那些需要高性能和高安全性的项目中。此举可能会影响IT行业标准,鼓励其他科技巨头在关键系统中采用或优先使用 Rust。
对于广大开发者而言,这意味着更多的支持、更丰富的工具,以及微软平台内围绕 Rust 构建的更广泛的生态系统。
作者:洛逸
参考:
https://rustfoundation.org/media/guest-post-rust-is-tier-1-language-at-microsoft/
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 微信公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。
请扫描二维码,使用微信支付哦。