当前位置:首页 > 科技资讯 > 正文

微软2030年前全面转向Rust:重塑软件工程的里程碑

微软正致力于一项可能重塑软件工程历史的宏伟计划:在2030年前,彻底移除其所有核心代码库中的C和C++代码,并全面转向Rust语言。这一变革不仅涉及Windows、Azure等关键基础设施,更意味着对全球最大商业代码库的系统性重构。

1. 微软工程师:2030年前淘汰C/C++

这一战略愿景并非外界猜测,而是由微软内部核心工程负责人亲自对外公开的。

近期,微软杰出工程师Galen Hunt在LinkedIn上发布的一则招聘贴文,首次向公众详细阐述了这一雄心勃勃的计划。

微软2030年前全面转向Rust:重塑软件工程的里程碑 Rust C/C++迁移 软件工程 内存安全 第1张

根据LinkedIn上的个人介绍,Hunt长期从事系统软件与操作系统研究,目前专注于将大型语言模型引入系统软件领域,以解决复杂工程难题。

在微软期间,他创立了Azure Sphere的开发团队,该平台为物联网和嵌入式设备提供端到端安全解决方案,成为微软设备安全领域的重要基础设施。

其研究的一个重要方向是探索虚拟机监控器与操作系统内核之间的边界与权衡,并主导了Drawbridge项目,以构建新型计算系统架构。

我的目标是在2030年前消除微软代码库中的每一行C和C++代码。”这是Galen Hunt本人的承诺。

对于一家拥有数亿行代码、C/C++深度嵌入操作系统、数据库等核心系统的公司而言,这不仅仅是一次技术升级,而是一场从系统级到工具链级的工程革命。

贴文指出,团队将融合人工智能与算法技术,重写庞大的代码库,目标是实现“1名工程师、1个月时间、处理100万行代码”。

为了实现这一目标,团队已构建了强大的代码处理基础设施,包括算法基础设施和人工智能处理设施,以支持大规模的代码改造。

2. 迁移背后的原因

事实上,Hunt的公开表态是微软高层此前相关表述的延续。早在2023年,微软就宣布将使用Rust重写部分Windows内核。

微软2030年前全面转向Rust:重塑软件工程的里程碑 Rust C/C++迁移 软件工程 内存安全 第2张

微软副总裁David Weston在Blue Hat IL 2023上透露,微软将效仿Linux,用Rust重写Windows内核的部分代码。

“我们正处于Rust在Windows中应用的‘爬行、行走、奔跑’阶段。”Weston表示,“我们正在开发地球上最复杂的工程产品之一。但我们的目标是提高安全性……因此,外界很可能会在接下来的几周或几个月内看到内核中使用Rust启动Windows。”

Weston展示的示例代码说明了迁移编程语言的部分原因:Rust代码比当前的C++代码更容易编写和理解,且更安全可靠。

据Weston称,微软已经用Rust重写了Windows内核中的36000行代码,以及用于概念验证的DirectWrite Core库的15.2万行代码,且性能出色。

除了Weston外,Azure CTO Mark Russinovich也曾公开表示要停止使用C和C++进行新的内核开发,并指出未来所有用于Windows和Azure的新内核代码都应用Rust编写。

3. 内存安全问题与C++的困境

微软选择Rust作为迁移目标语言的原因,部分在于解决C/C++长期存在的内存安全问题。

微软在多份安全报告中指出,绝大多数高危安全漏洞源于内存安全问题

微软2030年前全面转向Rust:重塑软件工程的里程碑 Rust C/C++迁移 软件工程 内存安全 第3张

“内存安全”是指应用程序以正确规范的方式访问操作系统内存。而“内存安全漏洞”则指软件意外或故意越界访问系统内存的行为。

微软2030年前全面转向Rust:重塑软件工程的里程碑 Rust C/C++迁移 软件工程 内存安全 第4张

Rust通过所有权模型和编译期检查机制,系统性降低了内存错误和数据竞争风险。这对于操作系统、云基础设施和虚拟化平台而言,具有直接且可量化的安全收益。

“我们面对的是一个跨越数十年的超大型遗留系统集合。”Hunt所在团队在帖子中反复提及“规模化消除技术债务”,正是这一逻辑的直接体现。

技术社区的强烈反响

对于微软彻底逃离C/C++的决定,技术社区反响强烈。

“C++本身没问题,只是很多使用它的人实际上并不懂编程。”一位爱好者表示。

“编写优秀的C++代码需要优秀的开发者,但找到能编写优秀Rust代码的开发者可能要容易得多。”另一位爱好者说。

“我们现在可以在ISO C++中实现绝对的类型安全和内存安全。”C++“之父”Bjarne Stroustrup在接受采访时说。

“内存安全问题”都是C++的锅?

“真正的安全在于严谨的工程实践而非语言本身。”一位用户在Reddit上反驳道,“Java项目就没有漏洞了吗?”

“我并非Rust程序员,但认为人们将其作用过度神化了——它并非万能灵药。”

“迎接未来:软件工程的新纪元”

“随着人工智能与系统工程的深度融合,”Galen Hunt所描绘的愿景如果最终得以实现,“这不仅将成为一次语言迁移的成功案例,更可能成为AI深度介入系统级软件工程的标志性事件。”

“这场围绕代码、工具和工程范式的变革已经在微软内部悄然启动。”