AI与Rust联手:悄然撼动C语言在Linux与Windows中的主导地位

文章深入探讨了AI和Rust编程语言如何在Linux和Windows操作系统中逐步取代传统的C语言。微软和Linux社区都在积极采用Rust以提高内存安全性,并利用AI辅助代码维护与开发,标志着系统编程领域正在经历一场深刻的转型。

伟大的编程转型:AI与Rust如何悄然撼动C语言在Linux和Windows中的地位

关键要点

  • 微软和Linux都在其开发流程中引入AI和Rust。
  • 微软在AI开发方面比Linux更为激进。
  • 两者都在扩展Rust的应用,但短期内操作系统都不会完全用Rust重写。

近期,微软杰出工程师加伦·亨特写道:“我的目标是到2030年,消除微软的每一行C和C++代码。我们的策略是结合AI和算法来重写微软最大的代码库”,并“发展和增强我们的基础设施,以实现将微软最大的C和C++系统翻译成Rust。”

如果这听起来像是微软要用AI将Windows从C重写为Rust,你并非个例。不过亨特后来澄清了这种解读,写道:“并没有用AI将Windows重写为Rust。”尽管如此,人们不禁会想。毕竟亨特继续表示:“我们正在构建技术,使语言间的迁移成为可能。”而这正是如果你想将Windows从C迁移到Rust首先需要做的事情。而且,微软CEO萨提亚·纳德拉最近表示,微软20%到30%的代码是“由软件编写的”,即AI。

更早之前,在2022年,微软Azure CTO马克·拉西诺维奇就在推特上写道:“是时候停止任何新的C/C++项目,转而使用Rust了……为了安全和可靠性。行业应该宣布这些语言已被弃用。”

微软并非孤例。正如我一直报道的那样,Linux开发者社区也正深入参与AI和Rust。正如林纳斯·托瓦兹本人最近宣称,他是“使用AI维护代码的坚定信徒”。

维护者和开发者现在正使用AI来帮助构建Linux。与此同时,Rust已经毕业,成为Linux主流开发中与C语言并重的第二核心语言。

伟大的转型

然而,编程世界正处在一个转折点。对于系统编程,Rust和AI正在取代C和手动编码。为什么?很简单。C语言容易产生内存错误,约占所有操作系统安全漏洞的70%。内存安全的Rust可以防止这些问题。正如微软在2019年所述:“将Rust与C和C++区分开来的是其强大的安全保证。”

这并不是说你用Rust就不会犯错。你仍然可能。首个Rust相关的通用漏洞披露(CVE)安全漏洞也已被确认:Rust Android Binder驱动漏洞,CVE-2025-68260。与此同时,在Windows领域,2025年初,Check Point Research在Windows 11 24H2中基于Rust的图形设备接口(GDI)组件中发现了一个错误。

众所周知,微软对在编程中使用AI非常热衷。想购买Copilot许可证吗?如果你是Windows用户,今天可能已经看到过Copilot服务的推销广告。Linux开发者则认识到AI可以使他们的工作更轻松。然而,正如托瓦兹所说,当今AI行业90%是炒作。他也警告说,使用AI生成严肃、长期的生产代码可能是一个“可怕的想法”,因为它会损害可维护性,并隐藏了调试和演进系统所需的推理过程。

让我们更仔细地看看这两个操作系统巨头在做什么。

AI

对于Linux,AI将承担许多繁琐的工作。在东京举行的Linux Plumbers Conference(仅限受邀者参加的Linux开发者会议)上,程序员和维护者都告诉我,他们采取了非常谨慎的态度。他们将使用AI来帮助处理项目中一些最脏最累的活:补丁分类、识别可能的向后移植、以及管理CVE。

Linux维护者萨沙·莱文将AI工具描述为一个“额外的稳定维护者”,它可以筛选大量的补丁流,减少维护者的倦怠,同时将最终决定权留给人。至于实际创建代码,那又是另一回事了。维护者们认为,当AI的使用是透明、可问责和已披露时,才是可以接受的。社区仍在讨论具体如何实现这一点。

微软则全身心投入AI。拉西诺维奇展示了微软从简单的代码助手转向能够处理问题、启动环境、修改代码并在工程流程中发起拉取请求的完整AI代理。他将AI程序描述为微软开发者的日常工具。不过,他也提醒说,内部使用AI必须考虑提示注入、数据泄露和可靠性问题。

安全的采用需要强大的防护栏和严格的评估,而不是盲目信任生成的代码。拉西诺维奇警告说:“大型语言模型容易产生幻觉、提示注入和越狱,这对它们广泛采用和负责任的使用构成了重大但可克服的挑战。”

因此,尽管微软使用AI,但公司认识到它并非万能药,必须谨慎使用。

Rust

多年来,微软一直在Windows、Azure和设备固件中扩大Rust的使用。虽然可能不会很快用Rust重写Windows,Linux也不会。相反,两者都在追求一种积极但渐进的策略:在新开发的安全关键组件中使用Rust,并长期推动在适当的位置使用内存安全的Rust。

两者中,微软在采用Rust方面比Linux激进得多。确切地说,微软已经在Windows及其生态系统的关键部分交付了Rust代码。例如,Windows 11现在包含了用Rust编写的内核组件和系统功能,特别是在较新的版本如24H2中,作为逐步强化操作系统以抵御内存错误的一部分。微软最近还采用了Rust Windows应用程序编程接口(API)和用于Windows驱动程序的Rust框架。这使得开发者能够用Rust构建Windows应用程序以及内核/用户模式驱动程序,同时调用现有的WDK和Win32 API。微软Surface和Windows驱动程序团队已经在采用Rust来交付“更安全的驱动程序、更强大的设备”,利用该语言的安全保证来减少设备固件和驱动程序中的崩溃和可被利用的缺陷。

展望未来,Windows到2030年可能不会被重写为Rust,但到2035年,如果其大部分代码都是用Rust编写的,我也不会感到惊讶。

至于Linux,Rust几乎无处不在。正如Rust-for-Linux项目负责人米格尔·奥赫达在Plumbers会议上所说,Rust“已经扎根”。Rust正式成为内核中与C语言并列的第二核心语言。即使在两年前,谁能想到呢?特别是,虽然Rust在很大程度上仅限于驱动程序和外围设备,但它正在进入Linux的核心程序。例如,Debian Linux最近宣布,从今以后,其至关重要的apt包管理器将完全用Rust编写。这意味着Mint和Ubuntu也将在其核心中拥有Rust。

Linux维护者戴夫·艾尔利表示,到明年这个时候,关键的图形程序Direct Rendering Manager(DRM)项目将要求新驱动程序使用Rust。在Maintainers Summit上,艾尔利说DRM项目“大约一年后”将禁止新的C语言驱动程序,并强制要求新驱动程序使用Rust。计划是在图形堆栈中“要求使用Rust,并禁止为新控制器使用C”。

同时,rust_codegen_gcc和基于GCC的gccrs项目也在继续推进,并取得了良好进展。这些核心编译器最终将使开发者能够使用现在用于C语言的相同编程工具在Linux中编译Rust。

此外,在谷歌的支持下,我们所熟知的移动版Linux(Android 16)中,已有几个Rust程序在幕后运行。

全部AI?全部Rust?还没到时候

就像Windows一样,你不会在短期内看到“全Rust的Linux”。可能永远都不会。Rust可能更安全,但就纯粹的运行速度而言,C语言仍然无可匹敌。不过,我绝不会说“绝不可能”。到2035年再看。

到那时,AI将完全融入两者的开发过程中。当然,我们中的一些人仍将在Visual Studio Code、vim和EMACS中编码。但是,就像今天大多数人都在集成开发环境(IDE)中编程一样,到2025年,AI将与IDE如此紧密地集成,以至于开发者无法将它们分开。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计