Linux内核6.12合并窗口本周正式关闭,核心Rust基础设施支持最终并入主线代码,这意味着内核开发者从现在开始可以正式使用Rust语言开发内核模块和驱动程序。这是Linux内核发展历史上继C语言之后首次引入第二门主力开发语言,被内核社区认为是解决长期困扰内核的内存安全问题的关键方案。Linus Torvalds在合并邮件中表示,这是"Linux内核发展史上重要的一步",但同时也强调不会强制要求现有驱动重写,开发者可以根据实际项目需求自主选择开发语言。
其实早在两年前,Rust支持就以补丁形式存在于内核分支,由Miguel Ojeda及其团队持续维护。经过多轮公开讨论和社区测试,逐步完善了基础设施和宏定义,包括bindgen绑定生成器、kernel crate抽象层以及核心数据结构的安全封装,最终获得了内核维护团队的认可并入主线代码树。目前已经有超过二十个驱动程序使用Rust重新实现,包括部分GPU驱动、输入设备驱动和存储驱动,其中苹果M1系列芯片的GPU驱动已经接近可用状态,正向主线提交申请,得到了内核维护团队的积极反馈。
根据Linux基金会最新发布的开发者调查报告,过去三年企业内核开发中,Rust语言的采用率从不到8%增长到了超过35%,增长了四倍多。Google、微软、Meta这些大厂都在积极推动Rust在内核中的应用,主要目标就是减少内存安全相关的漏洞。统计显示,Rust开发的内核模块中,内存漏洞发生率相比C语言模块降低了超过70%,长期维护成本明显下降,补丁重写率减少了大约六成,这在长期维护的大型项目中节省了大量人力成本和调试时间。
不过,社区中也存在不同声音。部分资深C语言内核开发者认为,Rust引入会增加内核维护的复杂度,新手开发者学习门槛更高,而且编译时间相比纯C代码大约延长了百分之三十到四十,对内存有限的嵌入式小型设备来说不太友好。支持派则认为,内存安全问题已经成为内核安全的头号威胁,超过七成的CVE漏洞与内存安全直接相关,必须引入新的语言工具从根源上解决问题,现在迈出第一步是正确的选择。
Linux基金会表示,他们会提供专门的培训课程帮助现有C语言开发者学习Rust开发规范,降低转型门槛,预计2026年全年会开设超过一百场线上和线下培训课程。预计未来一到两年会有越来越多的驱动程序开始使用Rust重写,逐步替换老旧的C语言驱动,提升内核整体安全性。Google的Android团队也已经确认,会逐步将Android内核中的关键驱动迁移到Rust,进一步降低系统崩溃和安全漏洞的发生概率。