标签 开源 下的文章

Azure CTO 深度解读:微软为何要用 Rust “替换” C/C++,又将如何用 AI 加速代码迁移?

本文永久链接 – https://tonybai.com/2025/09/11/microsoft-is-getting-rusty

大家好,我是Tony Bai。

近日,微软 Azure CTO、技术巨擘 Mark Russinovich 在一场 Rust 技术会议上发表了闭幕演讲,以前所未有的坦诚和力度,揭示了微软内部正在进行的一场深刻的技术变革:全面拥抱 Rust,并战略性地替代 C/C++。

他不仅分享了 Rust 在 Windows 内核、Office、Azure 云等核心产品中的惊人实践案例,还首次披露了微软正在研发的、利用 AI 大模型自动将 C/C++ 代码转换为安全 Rust 的前沿工具。这既是一次技术分享,也是一份来自行业顶层的宣言。

在这篇文章中,我们就来看看微软在走向Rust的路上究竟做了哪些工作和改变,用户和社区的反馈又是如何。

战略驱动:为何微软必须转向 Rust?

演讲开篇,Mark Russinovich 就抛出了一个触目惊心的数据,这也是驱动微软进行这场变革的根本原因:

在过去十几年中,微软所有产品中 70% 的安全漏洞,均由 C/C++ 中的内存安全问题导致。

他直言,这种趋势仍在继续,这已不仅仅是技术债,更是持续不断的安全事件和威胁。正是基于此,他个人早已成为 Rust 的坚定拥护者,并分享了一段有趣的往事:2022年,他在看到编程语言排行榜后,有感而发地发布了一条推文——“是时候停止在任何新项目中使用 C/C++ 了,业界应该转向 Rust”

这条推文成为了他有史以来互动量最高的内容,甚至引来了微软 CEO Satya Nadella 的电话询问。而他的回答坚定不移:“是的,我坚信如此。”

这并非一时冲动,而是一场席卷微软的、自下而上与自上而下相结合的运动。从美国国家安全局 (NSA) 呼吁业界放弃内存不安全的语言,到微软自身因不安全代码被攻击后发起的“安全未来倡议 (Secure Future Initiative)”,微软上下已经形成共识:必须摆脱不安全的语言

实践版图:Rust 在微软核心产品中的落地生根

Mark Russinovich 随后详细介绍了 Rust 在微软内部的实践版图,其广度和深度令人瞩目。

Windows:从内核“阿喀琉斯之踵”开始

  • Project Mu (UEFI 固件): 微软选择从安全性要求极高的系统引导固件入手,用 Rust 重写了 UEFI 实现(Project Mu)。该项目已应用于 Azure 数据中心和 Surface 笔记本,并已开源,旨在推动整个硬件生态采用 Rust。
  • DirectWrite (核心图形组件): 团队选择了一个漏洞频发的独立组件——负责字体解析的 DirectWrite 进行移植。两名开发者耗时六个月,将 15.4 万行 C/C++ 代码移植为 Rust。结果不仅消除了安全隐患,还意外获得了 5% 到 15% 的性能提升
  • Win32k.sys (GDI 模块): 这是 Windows 安全的“阿喀琉斯之踵”,过去20年间漏洞不断。微软选择用 Rust 重写了其中的 GDI Regions 子系统。两名开发者耗时三个月,移植了 6.3 万行 代码进入内核态。尽管 C++/Rust 的互操作边界带来了巨大挑战,但项目最终成功,且没有性能衰退。如今,在 Windows 系统目录中,你甚至能找到带有 _rs 后缀的内核模块文件。

Office 与 Azure 云:性能与安全的双重胜利

  • Office (DISKANN 向量搜索): Office 团队将一个前沿的向量搜索算法(DISKANN)从 C++ 移植到 Rust,用于 Office 365 和 Azure Cosmos DB。结果是惊人的:在实现同等 QPS 的情况下,召回率显著提升,内存占用反而下降
  • Azure (CTO 的铁腕): Mark Russinovich 透露,早在发布那条著名推文的两三年前,他就已在 Azure 内部颁布指令:“Azure 中不再有新的 C++ 系统代码”。这一指令推动了 Rust 在 Azure 基础架构中的全面应用:
    • 硬件层面: 云服务器的开源可信根项目 Caliptra、深入每台服务器的 Azure Integrated HSM 硬件安全模块,其固件均由 Rust 编写。
    • 硬件卸载卡: 负责网络和存储处理的智能网卡(DPU)上的新组件,已全部使用 Rust 开发,部分已有 C++ 组件也被迁移到了 Rust。
    • 虚拟化: Hyper-V 的 Arm64 模拟代码已用 Rust 重写;最近开源的 Open VMM(一个准虚拟化监视器)完全由 Rust 构建;而革命性的 Hyper-V Lite 项目,能以微秒级速度启动一个超轻量级虚拟机来运行 WASM 负载,其原型虽为 C#,但最终的开源实现完全是 Rust。
  • Azure 服务:
    • Azure Data Explorer (ADX): 这个每天处理 PB 级数据的日志分析平台,其 V2 版本后完全用 35 万行 Rust 代码 重写,性能超越 C++ 版本,成为微软内部 Rust 实践的标杆案例。
    • Azure SDK for Rust: 顺应客户需求,Azure 官方已发布了 Rust SDK 的 Beta 版本,标志着 Rust 正式成为 Azure 的一等公民语言。

真实反馈:来自一线开发者的收获与挑战

这场变革并非一帆风顺。Mark Russinovich 坦诚地分享了一线开发者的真实反馈:

** 收获 (The Positives):**

  • “如果它能编译,它就能工作”: 这是开发者们提到最多的一点,与 C++ 编译通过后仍充满不确定性的体验形成鲜明对比。
  • 减少摩擦,专注创新: 消除了内存安全和数据竞争等底层心智负担。
  • “两个月的转变”: 一个常见的模式是,C++ 开发者最初会对所有权和借用检查器感到痛苦,但大约两个月后,他们会转变为 Rust 的忠实拥护者。

** 挑战 (The Negatives):**

  • C++ 互操作性是第一大难题: 在逐步替换大型 C++ 项目时,处理两种语言的边界问题耗费了大量精力。
  • 工具链仍有待成熟
  • Crate 生态系统: 开发者不确定应该使用和信任哪些第三方库。
  • 部分依赖的特性尚未稳定
  • 动态链接: 在 Windows 生态中常见的动态链接,与 Rust 的结合存在问题。

尽管存在这些挑战,但 Mark Russinovich 强调,优点已经足够让微软“全身心投入 (all in)”

展望未来:用 AI 加速 “去 C++” 进程

演讲的最后,Mark Russinovich 揭示了微软正在探索的、旨在加速 Rust 迁移的“终极武器”——自动化代码翻译

微软正在从两个方向推进这项工作:

  1. 专用转译器 (Transpiler): 针对特定领域,如经过形式化验证的加密库。微软研究团队已开发出一个工具,能将严格遵循特定规范的 C 代码自动、安全地转译为 100% safe 的 Rust 代码,并确保其数学验证在转译后依然有效。
  2. 通用 AI 翻译器 (GenAI + GraphRAG): 这是更宏伟的目标。传统的 LLM 在处理多文件、复杂的 C++ 项目时效果不佳。微软正在利用一种名为 GraphRAG (图检索增强生成) 的先进技术。该技术能将代码解析为抽象语法树,并构建一个多层次的、包含代码摘要和依赖关系的图谱。当进行翻译时,AI 可以基于这个图谱进行更精准、更具上下文感知的代码生成。

他现场演示了一个将多文件 Python 小游戏翻译为 Rust 的例子。普通的 GPT-4o 生成的代码无法编译,而 GraphRAG 驱动的翻译器则一次性生成了可完美运行的、100% safe 的 Rust 代码

总结:一场自上而下的语言革命

Mark Russinovich 的演讲,标志着 Rust 在主流工业界的应用进入了一个全新的阶段。微软的实践雄辩地证明,用 Rust 替代 C/C++ 不仅是为了安全,更能带来意想不到的性能收益和开发体验提升。

更重要的是,微软的承诺是全方位的:从内部产品的深度重构,到对社区的资金支持,再到投入研发力量攻克 C++ 互操作和自动化迁移这两大核心难题。

正如 Mark 所言,一门语言的成熟需要超过十年的时间。Rust 已经走到了这个节点,其生态和工具链的成熟度已经达到了一个临界点,使得像微软这样的巨头可以放心下注。对于任何想要挑战 Rust 地位的新语言来说,都将面临一座极难逾越的高山。

微软的“All in”,不仅是对 Rust 过去的肯定,更是对未来的巨大投资。这无疑为整个软件行业指明了一个更安全、更高效的方向。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

从《凡人修仙传》看程序员境界:道友,你修炼到哪一层了?

本文永久链接 – https://tonybai.com/2025/09/08/fanren-xiuxian-programmer-levels

大家好,我是Tony Bai。

最近《凡人修仙传》的电视剧大火,想必各位道友都有耳闻。鄙人也没忍住,不仅刷完了杨洋主演的网剧,还趁着这股热乎劲儿,一口气在微信读书连读再听地补完了小说的人界篇。

当看到韩立资质平平,相貌普通,却凭着“小绿瓶”、远超常人的心智和不懈的努力,在残酷的修仙界中,历经炼气、筑基、结丹、元婴,终至化神时,我猛然拍案:

这不就是我们程序员升级打怪的真实写照吗?!

仔细一想,还真是如此。在这“码农”修仙界,人人皆望飞升,脱离 CRUD 的苦海,证得架构大道。韩天尊从一介凡人,在人界一步步逆天修行;我们则从一行“Hello World”开始,在代码的世界里摸爬滚打。从初窥门径到执掌乾坤,其间的艰辛与突破,又何尝不是一场惊心动魄的修行?

今日,不妨让我们借韩天尊的人界飞升之路,一同探寻这程序员的修仙境界。看看你我,如今身在何处,又该如何“破境”飞升。

第一境:炼气期 – 程序员学徒


炼气期

此境界的修士初入仙门,刚刚感应到“天地灵气”(编程语言),开始学习吐纳之法(基础语法)。灵力微薄,法术生疏,面对浩如烟海的功法秘籍(API文档),常常感到力不从心,一不小心就可能“走火入魔”(写出 Bug)。

  • 境界特征:
    • 初窥门径,灵力微薄: 刚掌握一门或多门“功法”(Java/Python/Go),但理解不深。能写出基础的业务逻辑,但对底层原理一知半解,如同只会念咒却不知其所以然。
    • 修炼功法,打牢根基: 每日勤修不辍,疯狂“吸收灵石”(看文档、刷 LeetCode、学习框架)。主要任务是完成导师(Mentor)分配的“宗门任务”(小功能、Bug修复),以此换取修炼资源。
    • 依赖法器,难离其身: 严重依赖各种“低阶法器”,如 Stack Overflow、CSDN 和各类 AI 代码助手。一旦“法器”失灵(断网),便束手无策,战力大减。
    • 心魔与瓶颈: 最大的心魔是“我是不是不适合写代码”的自我怀疑。常常会遇到“瓶颈”,一个简单的 Bug 可能要耗费数日才能解决,此时急需一颗“筑基丹”(高人指点)方能突破。

第二境:筑基期 – 合格的工程师


筑基期

经历无数次“走火入魔”后,终于炼化灵气,开辟丹田,成功“筑基”,体内的“灵力”(知识体系)凝聚成形。从此,你不再是修仙界的炮灰,而是一名真正的修士,可以独立执行任务,在宗门(团队)中有了一席之地。

  • 境界特征:
    • 筑基成功,道途有望: 能够独立负责一个模块或一条业务线。对团队的技术栈了如指掌,是项目的中坚力量,道基稳固。
    • 拥有本命法器: 不再是见什么用什么,而是有了自己得心应手的“本命法器”(精通的框架或工具链),如 Spring 全家桶、Vue/React 生态。使用起来得心应手,威力倍增。
    • 神识初成,洞察秋毫: 开始具备一定的“神识”(Code Review 能力和设计嗅觉),能发现炼气期修士代码中的明显问题,并预见一些潜在的风险,如同神识外放,探查四周。
    • 独立执行宗门任务: 可以独立外出执行有一定难度的“宗门任务”(负责一个完整需求),并能顺利归来,不再需要师兄寸步不离地看护。

第三境:结丹期 – 资深工程师 / 技术骨干


结丹期

此乃修行路上的巨大分水岭。修士将全身修为压缩、凝练,在丹田内结成一颗“金丹”(核心技术壁垒)。从此,寿元大增(职业生涯更稳定),神通广大,成为宗门里受人敬仰的长老级人物。

  • 境界特征:
    • 凝结金丹,质的飞跃: 在某一领域(如高并发、分布式、数据库优化)形成了自己深厚的知识体系和方法论,这便是你的“金丹”。你是这个领域的 Go-to Person,是众人眼中可靠的“X哥”、“X姐”。
    • 本命法宝,威力大增: 不再满足于使用“法器”,开始炼制自己的“法宝”(轮子、工具库、脚手架),供宗门内弟子使用,极大提升了整个团队的战斗力。
    • 开辟洞府,传道授业: 开始承担起“长老”的职责,为宗门“开辟洞府”(搭建技术分享平台),“传道授业”(指导新人、进行技术培训),培养后辈力量,扩大自己的影响力。
    • 阵法大师,布局为先: 对小型系统的架构设计信手拈来,如同布置“阵法”,懂得权衡取舍,让系统在未来一段时间内稳固运行,易于扩展。

第四境:元婴期 – 架构师 / 首席工程师


元婴期

碎丹成婴,道行进入全新天地。修士的“元婴”可以出窍,神游天外,对“天地法则”(系统规律)的理解远超常人。他们是宗门的守护神,轻易不出手,但一言一行都足以影响宗门的兴衰。

  • 境界特征:
    • 元婴出窍,神游天外: 视角早已超越某个具体项目或业务线。他们的“元婴”(思想和影响力)可以“出窍”,俯瞰整个公司的技术体系,思考跨团队、跨领域的平台级问题。
    • 参悟天地法则: 深入理解分布式、高可用、可扩展性等“天地法则”。他们关注的不再是“术”(具体实现),而是“道”(设计哲学与原则),能在纷繁复杂的需求中,找到最核心的技术模型。
    • 开宗立派,影响一方: 他们设计的“护山大阵”(核心技术架构、平台),能支撑公司未来数年的发展。他们制定的“门规”(技术规范、研发流程),被众多弟子遵守,深刻影响着整个技术团队的文化和效率。
    • 趋吉避凶,未卜先知: 具备强大的技术预判能力,能洞察技术趋势,规避未来的技术债务和架构风险,带领宗门走在正确的“修行”道路上,避免误入歧途。

第五境:化神期 – 技术大牛 / 领域开拓者


化神期

此境界已是人界的传说,神龙见首不见尾。他们对“道”的理解已返璞归真,能够洞悉本源,甚至创造规则。他们的存在,本身就是一座无法逾越的高山,是无数修士仰望的目标。

  • 境界特征:
    • 返璞归真,大道至简: 他们的言论和代码往往看起来平平无奇,却蕴含着对技术最深刻的理解。能用最简单的语言解释最复杂的原理,如同“大道至简”,一言一行皆是道法自然。
    • 言出法随,创造规则: 他们不再是规则的遵守者,而是规则的创造者。他们创造的某个开源框架(如 K8s, TensorFlow)、某篇论文(如 MapReduce, DynamoDB),可能开创一个时代,成为无数修士修行的“根本大法”。
    • 破碎虚空,飞升上界: 他们的影响力早已超越一家公司,成为整个行业的灯塔。他们可能在顶级技术会议上“讲道”,也可能在某个开源社区中“点化”众生。对他们而言,换个公司已不是“跳槽”,而是“破碎虚空”,去往另一个更广阔的世界(灵界)。

小结:路漫漫其修远兮

修仙之路,道阻且长,行则将至。

从炼气期的迷茫,到筑基期的坚定;从结丹期的突破,到元婴期的洞察,乃至化神期的传说。每一个境界,都离不开日复一日的“打坐”(学习)、一次又一次的“渡劫”(攻克难题),以及那么一点点“机缘”(好的项目和团队以及赛道)。

韩立资质平平,却凭着“勤奋”与“谨慎”二字,终成大道。我辈程序员,或许没有逆天资质,但只要心向大道,勤勉不怠,终有一日,也能突破瓶颈,得见真我。

那么,各位道友,你现在修炼到哪个境界了?在修行路上又遇到了哪些瓶颈或趣事?欢迎在评论区留下你的“道号”和境界,我们一同论道!


想系统学习Go,构建扎实的知识体系?

我的新书《Go语言第一课》是你的首选。源自2.4万人好评的极客时间专栏,内容全面升级,同步至Go 1.24。首发期有专属五折优惠,不到40元即可入手,扫码即可拥有这本300页的Go语言入门宝典,即刻开启你的Go语言高效学习之旅!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats