微软的“半条命”,交给了Rust!微软传奇技术大牛力捧Rust

B站影视 日本电影 2025-09-25 14:27 1

摘要:众所周知,微软几十年来一直都在折腾 Windows 的安全问题,其中的一个噩梦就是,去年7月的CrowdStrike全球范围内计算机蓝屏事件,这引起了地震级关注。

五年多过去,微软已经把半条命交给了Rust。

众所周知,微软几十年来一直都在折腾 Windows 的安全问题,其中的一个噩梦就是,去年7月的CrowdStrike全球范围内计算机蓝屏事件,这引起了地震级关注。

现在,这家公司打算用 Rust 来解决它,还希望所有人都跟着用。

别急,这就带大家看到一家Rusty版本的微软。微软在Rust道路上,其实已经走得很远了!

9月,微软 Azure CTO Mark Russinovich 在 RustConf 2025 发表了主题演讲《从蓝屏到橙蟹:微软的 Rust 革命》中, 他把Windows内核漏洞的现状比作“一个地下油库,每次只漏几滴油,但一直在漏”。

问题在于:C 和 C++ 。代码虽然看起来没问题,但崩溃起来会异常惨烈,甚至被很容易被黑掉。微软自己的内核,每个月都在 win32k.sys(负责图形和窗口的部分)里漏出提权漏洞。

于是,他们开始用 Rust 重写部分内核。不是全部,只是一些模块。如果你现在翻一下 Windows 的 System32 文件夹,就会看到一个 win32kbase_rs.sys 文件,那就是跑在内核里的 Rust 代码。

为什么Rust版本的内核这么管用?

关键点在于:安全研究人员在 Rust 版本里找到漏洞时,系统会直接崩溃,而不是被攻击者利用,Russinovich 说。

“我们认为这是成功,”他说。“如果是 C++ 写的,这个漏洞可能会导致权限提升,而不是一个不可利用的蓝屏。”

微软还重写了 DirectWrite(字体渲染器),这个模块多年来问题不断。两个开发者花了 6 个月,写了 15.4 万行 Rust 代码。新版本不仅比旧的快,还没那些老毛病。

Russinovich 多年来在微软内部推动 Rust。早在他有权下达正式命令前,他就告诉团队:别再用 C/C++ 开新项目,除非能接受垃圾回收,否则就用 Rust。

现在,作为 Azure CTO 兼副 CISO,他把话说死了:

“用或新增 C++ 风险太大,不能做。”

实际落地起来,动作是真得猛:

Caliptra 硬件根信任 从 ROM 到固件到模拟器,全都用 Rust 写。Azure Boost(管理服务器、处理网络卸载的系统)规定:所有处理“不可信输入”的地方必须用 Rust 重写,新 Agent 也要用 Rust。Hyper-V(微软的虚拟机管理器,最安全的软件之一,1.5ms内启动)已开始 Rust 化,ARM64 模拟支持就是 Rust 写的。微软还推出了 OpenVMM(开源虚拟机管理器),兼容 Hyper-V、Windows、Linux 和 KVM,完全用 Rust 写。还有 Hyperlight 项目,一个用 Rust 写的开源库,用虚拟化保护来安全执行小型函数调用。

此外,今年微软还推出了 Azure Rust SDK。

Office 碰到的问题是:DiskANN(语义搜索系统)能支撑 Bing 的几百个节点,但扛不住 Office 的数百万文档。

结果,团队直接用 Rust 重写了。性能更好、内存占用更少。Office 的部分团队甚至说服自己“全盘上 Rust”,觉得连 C# 也不如 Rust 的并发处理。

Azure Data Explorer 则展示了大规模迁移的过程:一个开发者花了一年把存储层移植到 Rust,后来连查询引擎也跟上。现在它处理数百 PB 数据,Rust 代码 35 万行,C# 还有 230 万行,C++ 越来越少。

微软发布了一个 MSBuild 的 Cargo 插件,让团队能把 Rust 模块嵌入 C++/C# 项目。

Russinovich 直言这是出于现实考虑:“我们不能让团队直接丢掉数百万行能跑的代码。”

插件机制很简单:Rust 代码用 Cargo 编译,MSBuild 把它当作依赖处理。但为此微软花了大量精力解决链接和 ABI 的兼容问题。插件已 开源,方便其他公司复用。

微软还发布了内部的 《Pragmatic Rust Guidelines》 —— 企业级 Rust 开发手册,分两版:

人类版:给新人看,涵盖错误处理模式、FFI 最佳实践、异步运行时选择等。AI 优化版:专门为 Copilot 这类 AI 助手格式化,可以直接放进提示词里,AI 就会遵循。

这表明微软不仅重视开发者,也考虑 AI 辅助编程的普及。

Russinovich 宣布微软正在用 Rust 重写 SymCrypt —— 微软的核心加密库,支撑 Windows、Azure 和 Office 的所有加密。

更重要的是,微软研究院使用 Rust 的形式化验证工具 来证明新代码的数学正确性,并能反向转译回 C++ 方便集成。

新的后量子算法(如 ML-KEM)也直接用 Rust 从零实现。这意味着微软不仅在试点,而是把 Rust 定位为加密领域的主力语言。

更激进的是,微软还希望硬件厂商和驱动开发者用 Rust 写驱动。他们搞了个 windows-drivers-rs 框架,把 Rust 接到 Windows 驱动工具包(WDK):

wdk-build:把 Cargo 接入 Windows 构建系统wdk-sys:提供 Windows 驱动 API 的原始访问wdk:提供更安全的封装cargo-wdk:像普通 Rust 项目一样创建和编译驱动

你现在已经能写 KMDF、UMDF、WDM 驱动,并在 Windows 11 上加载运行。不过因为 Windows 内核 API 不是为内存安全设计的,很多地方还得写不安全的 Rust。微软正在开发安全封装,让大部分驱动都能用“安全 Rust”。

微软内部调研发现,开发者一开始会被 Rust 吓到,尤其是 C++ 出身的人。但几个月后,他们适应了 Rust 的借用检查器,甚至觉得写起来更爽。

他们最喜欢:性能提升 + 消灭 bug 类别。最不喜欢:

混用 C++ / C# 痛苦异步调试难动态链接有问题

但 Rust 的魅力就在于,即使吐槽这些,没人想放弃 Rust。

微软正在研发 AI 工具,可以用 GraphRAG 技术自动把整个 C++ 代码库翻译成 Rust,保持原有结构和功能。

Russinovich 演示了一个工具,能把 Python 应用自动翻译成 Rust,并保持项目结构与功能一致。

他展示了一个 200 行左右的 Python 横版小游戏。传统 LLM 翻译出来的是“垃圾代码”,而 GraphRAG 工具能生成 可编译、可运行的 Rust 版本。

虽然还不清楚能否扩展到百万行 C++ 工程,但如果成熟,这将解决 Rust 最大的 adoption 障碍:移植成本过高。

“我们相信,Rust 这样的内存安全语言代表了软件工程的未来。”

美国NSA 也早在 2022 年支持迁移到内存安全语言,Linux 内核也已支持 Rust。行业趋势正在形成。

微软希望硬件厂商写 Rust 驱动,自己就不用独自扛安全大旗。只要安全改善能被证明,工具足够完善,生态就能慢慢转过来。

而早期结果表明:Rust 代码在关键系统里能“安全失败”,而不是被利用。微软已经在内核、虚拟化、加密库中落地,现在他们希望整个生态跟上。

Russinovich 坦言:Rust 正在渗透微软的核心基础设施,并且只会加速。驱动框架只是这场大变革的最新一步。”

从Windows内核、Office数据系统的重写,再到与现有软件的集成和GraphRAG技术的大量代码移植,再到三方驱动框架的Rust化,可以看出微软对 Rust 的投入远不止“尝试”。

可以确定的是,结合 AI 翻译工具和无缝构建集成,Rust 的门槛正在降低,可能引发行业拐点。

而Rust的普及,注定离不开软件巨头们的倾力投入。

就比如微软,已经把半条命押注在Rust上。

参考链接:https://thenewstack.io/microsofts-rust-bet-from-blue-screens-to-safer-code/

来源:51CTO一点号

相关推荐