
在2025年12月举行的Linux内核维护者峰会上,经过长达五年的技术探讨与工程实践,内核维护者们正式达成共识:Rust在内核中的“实验性”标签被移除。这标志着Rust不再是Linux内核的“旁听生”,而是被明确认可为主线内核的长期核心组成部分,一场围绕系统编程安全与效率的静默革命就此进入新阶段。
这一里程碑事件,不仅是技术上的胜利,更是开发理念演进的重要信号。下面这张时间轴清晰地勾勒出Rust走入Linux内核的关键历程。
flowchart LR
A[2020年<br>项目启动] --> B[2022年 Linux 6.1<br>基础设施合入主线]
B --> C[2022-2024年<br>构建抽象层与生态]
C --> D[2025年12月<br>实验阶段正式结束]
D --> E[未来<br>长期共存与深化整合]
🔍 为何需要Rust?
Linux内核作为数字世界的基石,其稳定与安全至关重要。然而,其赖以构建的C语言缺乏内在的内存安全保证,导致内存泄漏、缓冲区溢出等漏洞长期存在,成为系统安全的“阿喀琉斯之踵”。Rust语言的核心优势在于其所有权系统和借用检查器,能在编译阶段就拦截这些潜在风险,从源头上避免多数内存安全漏洞。
引入Rust并非要颠覆和取代C,其初始目标非常克制:评估Rust是否值得内核为其付出额外的复杂度成本。核心思路是 “增量替代” ,优先在新模块(尤其是驱动程式)中采用Rust,而非重写经过数十年验证的C核心代码。
🛠️ 面临的挑战与博弈
Rust的融入之路并非坦途,主要挑战集中在工程复杂度和社区文化层面。
- 工程整合复杂度:将一门现代语言嵌入庞大的既有C代码库,面临严重的“阻抗匹配”。内核中大量使用的C特有惯用法(如位域、侵入式数据结构)与Rust的所有权模型存在天然冲突,需要复杂的
unsafe代码和抽象层来桥接,增加了实现的复杂度和心智负担。 - 架构支持鸿沟:Linux以支持海量硬件架构著称,而Rust编译器的Tier 1/2支持列表相对有限。这迫使社区采取务实策略:Rust目前主要用于驱动程序,核心内核仍由C主导,不支援Rust的架构可选择不编译相关驱动。
- 社区文化与维护责任:最激烈的博弈在于“责任归属”。在实验阶段,Rust代码享有“豁免权”,若C API变更导致Rust编译失败,可由Rust团队事后修复。但“转正”后,Rust失去了特殊性,理论上任何修改核心API的C开发者都有义务确保不破坏现有Rust代码。这促使社区趋向务实的“混合双打”模式,但Rust代码也因此获得了要求C开发者协作的“政治地位”。
🚀 “转正”后的生态与展望
“实验”标签的移除,为Rust在内核中的发展扫清了制度障碍,一批重量级驱动项目正加速进入主线。
- 关键驱动落地:面向Apple Silicon的Asahi GPU驱动、作为Nouveau继任者的Nova驱动(用于NVIDIA GPU)以及针对ARM Mali的Tyr驱动,这些高复杂度驱动的推进,强有力地证明了Rust处理复杂并发和硬件交互的能力。
- 产业界支持:Google在Android系统中推动Rust重写Binder IPC机制,Intel开源基于Rust的SGX驱动,以及AWS在虚拟化平台测试Rust模块等,表明产业巨头正以实际行动押注Rust,旨在从源头降低安全风险。
展望未来,Linux内核将进入一个C与Rust长期共存的时代。C语言凭借其极致的灵活性和成熟度,继续守护调度器、内存管理等最核心的底层逻辑;而Rust则将在驱动程序、文件系统、网络协议栈等“高危”区域发挥其内存安全优势,形成“C守核心,Rust攻外围”的混合新常态。对于开发者而言,这预示着内核开发的技能栈正在进化。虽然无需立刻成为Rust专家,但能够阅读和理解Rust代码,正逐渐成为参与内核开发的必备技能。
💎 总结
Rust在Linux内核中的“转正”,标志着一个新时代的开启。它并非革命性的取代,而是一次面向安全的进化,是Linux这个庞大生态系统在守护其生命线——稳定与安全——的过程中,一次必要且务实的现代化升级。这为整个系统软件领域树立了标杆,预示着内存安全将成为未来系统编程不可动摇的基线。
希望这篇文章能帮助你全面理解Rust在Linux内核中的这一重要进展。如果你对某个具体的驱动项目或技术细节特别感兴趣,我很乐意提供更深入的探讨。






