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

Linux内核正式接纳Rust:五年实验结束,未来可期

在Linux内核领域,鲜有技术路线能像Rust这般,激起如此持久、尖锐且公之于众的辩论。

一些人将其视为保障内核安全的“破局利器”,另一些人则觉得这会对现有工程秩序构成风险。围绕Rust是否应被纳入内核的讨论,过去数年间,邮件列表上的争论、核心开发者的意见分歧乃至项目成员的离去,几乎构成了一部不断上演的“内核连续剧”。

而就在近期,这场拉锯战终于迎来了一个明确的转折点。

在2025年的Linux内核维护者峰会上,内核维护者们一致同意:Rust在Linux内核中的“实验期”正式告终——这意味着,Rust不再仅仅是一个被小心翼翼试用的新兴语言,而是被明确接受为Linux主线内核的长期组成部分。

Linux内核正式接纳Rust:五年实验结束,未来可期 Rust Linux内核 内存安全 驱动程序 第1张

五年“试验”,一条布满荆棘的路

Rust for Linux项目最早可追溯至2020年。彼时,该项目的定位极为谨慎:并非取代C语言,也非大规模重写内核,而是试图回答一个问题——Rust是否值得Linux内核为其承担额外的复杂度成本?

正因如此,在相当长的时间里,Rust代码只能在严格受限的范围内存在,被明确标记为“experimental(实验性)”。它不像C那样天然属于内核世界,更像是一个被允许“旁听”的新成员。

这种审慎态度也伴随着持续不断的争议。一方面,Rust提供的内存安全模型几乎精准击中了Linux内核长期以来最头疼的问题;另一方面,引入新语言意味着新的工具链、新的构建复杂度,以及对维护者心智负担的增加。

这场博弈,一打就是数年。而真正改变Rust在Linux内核中局面的,并非某一次宏大的技术宣言,而是一系列逐渐累积、难以忽视的事实:

● 首先,是代码规模和持续投入。自2022年以来,已有超过2万行Rust代码被合入Linux上游内核,这不再是概念验证,而是持续演进的真实工程代码。

● 其次,是生产环境的真实验证。Rust编写的内核驱动,已经运行在真实设备中,例如Google Pixel系列手机,其部分底层驱动已采用Rust实现——这一点对内核社区尤为关键:它证明Rust不只是“理论上更安全”,在现实世界中也站得住脚。

● 更重要的是,Rust内核生态正在成熟。围绕内核开发所需的基础库、抽象层和工具链逐步完善,使得“用Rust写内核代码”不再是少数专家才能完成的事情,而开始具备可扩展性。

官方定调:“实验”结束,但还有大量工作要做

基于以上,上周Rust for Linux项目的负责人Miguel Ojeda在内核邮件列表中明确宣布:

“Rust支持是在Linux v6.1版本中合入主线内核的,其初衷是评估Rust作为一种编程语言是否适合内核开发,也就是它在技术层面、流程层面以及社区层面是否值得付出相应的权衡成本。

而在2025年Linux Kernel Maintainers Summit(内核维护者峰会)上,这一实验已被正式宣布结束。因此,现在可以移除相关章节——事实上,这个‘实验’说法早就不准确了,因为Rust已在生产环境中被实际使用了。”

与此同时,Miguel Ojeda也特别强调,“实验结束”并不等于一切已经完美:无论是不同架构、不同内核配置,还是GCC与LLVM的混合构建,Rust在内核中的适配仍然存在大量工作要做;一些组合方案(比如GCC + LLVM的混合构建,以及即将到来的GCC原生Rust支持),目前也仍具有一定实验性。

只是方向显然已经明确:Rust将长期留在Linux内核中。

Rust驱动开始加速落地

“转正”不仅是一个象征性的里程碑,也直接为后续的Rust驱动铺平了道路。据了解,一批Rust参与编写的重量级项目正在或即将进入Linux主线:

● Asahi项目:面向Apple Silicon的GPU驱动,正朝着完整上游合入迈进,并将在Linux 6.17中加入Devicetree schema支持;

● Nova驱动:作为Nouveau的Rust继任者,面向NVIDIA基于GSP的GPU,计划在Linux 6.19中完成初始启用;

● Tyr驱动:针对ARM Mali GPU,已经能在Linux 6.18上启动GNOME桌面并运行基础游戏。

而从更宏观的角度看,此次Linux内核对Rust“实验结束”的表态,本质上是一种信号——它向公司、芯片厂商和开发者社区也释放了明确预期:Rust在Linux内核中不是短期尝试,而是值得长期投入的方向。也就是说,更多企业可能愿意为内核开发者提供Rust培训时间,更多硬件厂商会考虑用Rust编写新一代驱动。

当然,这并不意味着C的地位会被动摇,Linux内核仍将长期是一个以C为核心的工程。但Rust,已经从“是否该引入”,变成了“如何更好共存”的问题。

参考链接:https://www.phoronix.com/news/Rust-To-Stay-Linux-Kernel