写点什么

微软 CTO 在 Rust Nation UK 大会上详解成功经验、挑战及对 Rust 编程语言的承诺

  • 2025-05-23
    北京
  • 本文字数:1893 字

    阅读完需:约 6 分钟

大小:932.18K时长:05:18
微软 CTO 在 Rust Nation UK 大会上详解成功经验、挑战及对 Rust 编程语言的承诺

微软 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、技术演讲和教学课程。

2025-05-23 14:008136

评论

发布
暂无评论

脑瓜子嗡嗡的。。Android-UI-线程更新UI也会崩溃?

android 程序员 移动开发

【架构实战营作业】模块七——王者荣耀商城异地多活架构

聆息

腾讯校招被问Android网络相关面试题,精编参考解析全整理,你不看看吗?

android 程序员 移动开发

云计算市场,是时候来一场鱿鱼游戏了

白洞计划

网易被裁后,68天吃透这份阿里学长甩我的Android面试笔记,竟让我收到字节跳动和小米offer

android 程序员 移动开发

继承的基本使用

android 程序员 移动开发

耗时118天爆肝【1296页】的“Android高级开发面试题

android 程序员 移动开发

聊一聊 Android 中巧妙的位操作

android 程序员 移动开发

腾讯T3-Android高级架构师学习笔记

android 程序员 移动开发

约束布局(ConstraintLayout)1

android 程序员 移动开发

腾讯35岁架构师提前退休,比别人早2年确定职业目标有多重要?还不学起来等着被裁吗?

android 程序员 移动开发

C++学习路线图

泰伦卢

c++

老板答应给我升职得前夕,34岁的我被优化了?3个月沉淀后迎来转折入职字节跳动!

android 程序员 移动开发

编写-Android-Library-的最佳实践-1

android 程序员 移动开发

你真的会打印日志?

中间件兴趣圈

Java 11月日更

腾讯大牛,一篇文章教你什么是Android-Fragment-,Android高级架构师筑基必备!

android 程序员 移动开发

自学Android,面试被怼,看我如何拿下阿里offer

android 程序员 移动开发

算法太TM重要了!刷完这些题,我拿到了梦寐以求的字节跳动和腾讯双offer!

android 程序员 移动开发

模块三作业及总结

Thomas

架构训练营

腾讯Android中高级面试题大全(含解析)

android 程序员 移动开发

给你一个全自动的屏幕适配方案(基于SW方案)!

android 程序员 移动开发

经济下行趋势明显,Android开发者出路在哪?7成Android开发者月薪不足6千

android 程序员 移动开发

线程池基本参数解析

android 程序员 移动开发

光的进化曲:电力承载网的升级之路

脑极体

线程池系列 - (4)工作流程

android 程序员 移动开发

经验分享:上传视频到优酷客户端

android 程序员 移动开发

绝了,华为大神耗费5个月21天,打造这份714页PDF的鸿蒙学习笔记,2020终于火爆全网

android 程序员 移动开发

美团外卖Flutter动态化实践

android 程序员 移动开发

耗时118天爆肝【1296页】的“Android高级开发面试题(1)

android 程序员 移动开发

算法----字符串

android 程序员 移动开发

腾讯一面被拒含泪离开,面试官:Android开发连这些都不懂,哭也没用

android 程序员 移动开发

微软 CTO 在 Rust Nation UK 大会上详解成功经验、挑战及对 Rust 编程语言的承诺_架构_Bruno Couriol_InfoQ精选文章