
微软 Azure 首席技术官 Mark Russinovich 在近期的 Rust Nation UK 大会上深入探讨了推动 Rust 编程语言采用的关键因素。他通过微软产品的实际案例展示了 Rust 的应用成果,并详细介绍了如何利用生成式 AI 加速从 C/C++ 向 Rust 迁移的持续努力。
采用 Rust 的最初动机是源于对安全漏洞的全面分析。Russinovick 表示:
这一切始于我们对 C/C++ 长期存在问题的审视……根据微软安全响应中心在过去十年中对所有产品漏洞的统计,70% 的安全问题都源于 C++ 中的内存操作不当。随着攻击者持续针对这类漏洞发起攻击,这种趋势仍在延续,造成了大量安全事故。
其他科技巨头和安全机构也得出了相似结论。谷歌零日计划(Project Zero)安全研究团队的报告显示,时年发现的 58 个在野零日漏洞中,有 39 个(67%)属于内存破坏漏洞。无论是过去数十年还是当下,内存破坏漏洞一直是软件攻击的主要突破口。Mozilla 数年前也曾估算,若用 Rust 重写火狐的样式组件,74% 的安全漏洞本可避免。事实上,Rust 语言创始人 Graydon Hoare 早在 2010 年的火狐年度峰会的一次早期 Rust 相关演讲中就指出:C++ 几乎在所有方面都不安全;它缺乏所有权机制、完全没有并发控制,甚至无法保证 const
不可变。
微软的“安全未来计划”(Secure Future Initiative)与两起国家支持的网络攻击事件直接相关,Russinovich 表示该计划将致力于扩大内存安全语言的应用范围。微软近期向 Rust 基金会捐赠了 100 万美元,用于支持 Rust 语言及其核心项目的重点发展。
Russinovich 详细介绍了微软产品中采用 Rust 的具体案例。在 Windows 系统中,Rust 被应用于安全关键型软件,其中包括固件开发(Project Mu)、内核组件、密码学库(如 rustls symcrypt 支持)及辅助组件(如 DirectWrite Core)。
在 Office 办公套件中,Rust 已被用于某些性能敏感领域。其中部署在 CosmosDB 和 PostgreSQL 上用 Rust 实现的语义搜索算法 ,经证实比 C++ 版本具备更高的性能和内存效率,这为大规模向量搜索带来了显著优势。
随着 Azure 部门强制要求不再使用 C++ 编写新系统代码,Rust 已在多个 Azure 相关软件中得到应用。Caliptra 是一个面向安全云服务器固件的行业合作项目,其关键固件组件完全采用 Rust 编写并已开源。Azure Integrated HSM 是从 2025 年开始在所有新服务器中部署的新型自研安全芯片,其固件和客端库均使用 Rust 编写,以确保加密密钥管理的最高安全标准。Russinovich 还提到,Azure Boost 代理程序、Hyper-V(微软的虚拟化平台)、最近得到开源的跨平台模块化虚拟机监视器 OpenVMM,以及 Hyperlight 等项目都部分或完全采用了 Rust 进行实现。
微软开发者对 Rust 的反馈总体积极但也存在负面评价。积极方面包括:开发者称赞 Rust 代码一旦编译通过通常就能按预期运行,显著提升了开发迭代的速度;开发阻力的降低增强了编写测试的积极性;开发者对内存管理陷阱的认知明显提高;Rust 生态系统和 Cargo 包管理器在依赖管理方面备受好评;虽然性能提升并非首要目标,但实践中经常能观察到性能改善;数据竞争相关的并发错误显著减少;内存安全问题导致的漏洞数量大幅下降。
负面反馈则集中在:C++ 互操作仍然困难;Rust 的初始学习曲线被认为过于陡峭;动态链接实现存在挑战;对某些未稳定 Rust 特性的依赖令人担忧;将 Cargo 集成到大型企业构建系统需要额外投入;即使使用 Rust,安全实现外部函数接口(FFI)仍具挑战性;与其他语言相比,工具链支持仍显不足。
Russinovich 进一步阐述了微软加速将 C/C++ 遗留代码迁移到 Rust 的努力。其中一个重点领域是经过验证的加密库:先对 C 代码进行形式化验证,再转译为安全的 Rust 代码(参见论文《C 语言到安全 Rust 的形式化编译》)。微软同时正在探索使用大语言模型实现自动化的代码转换。
Russinovich 在总结中重申了微软公司对 Rust 的坚定承诺,并强调了 Rust 日益成熟的生态和采用规模:
总会有人质疑说现在还有比 Rust 更好的新编程语言,用起来也更方便。对此我的回应是:那它什么时候才能真正准备好?要知道 Rust 已经发展了十来年后,我们才觉得它足够成熟。一门语言及其工具链的成熟需要漫长的时间,而 Rust 工具链至今仍在持续完善。任何想在现阶段挑战 Rust 地位的新语言,都需要跨越极高的门槛。因此我认为短期内没有什么能取代 Rust……我们百分百支持 Rust 的发展。
建议各位观看 YouTube 上的完整演讲视频,其中包含大量有价值的实践案例、技术解析和现场演示。
Rust Nation UK 是一个专注于 Rust 语言及其社区发展的多轨道技术大会,每年在伦敦 The Brewery 举办,为不同水平的开发者提供精心策划的 workshop、技术演讲和教学课程。
评论