在最近于乌得勒支举行的 Rust Week 2026 大会上,负责维护 Linux 内核的主要人员之一Greg Kroah-Hartman登台发表了一番非常明确的讲话:Rust 是该项目需要的救赎。
由于每天发布的 CVE(通用漏洞报告)数量惊人,开发团队面临着几乎无法处理的漏洞数量。自 2005 年以来一直处理这些漏洞的Kroah-Hartman 表示,罪魁祸首是 C 语言在内存和错误处理方面的传统缺陷——而 Rust 语言承诺将大幅缓解这一问题。
在座无虚席的开发者面前,这位资深程序员传递的信息直截了当。他坦言,团队对 Rust 社区充满信心,相信他们能够守护现代计算的基础架构。对他们而言,测试阶段已经结束, Rust 在内核中的应用已成为现实,他们将全力推进 Rust 集成到最关键的组件中。
C 代码的噩梦与 Rust 的自动解决方案
为了说明他们每天面临的实际问题,这位开发者回忆起蓝牙代码中一个长达十五年未被发现的缺陷,其原因仅仅是忘记检查内存指针。他还提到Xen代码中的一个漏洞,有人忘记释放一个锁。这些小小的疏忽日积月累,最终会导致系统崩溃或为网络攻击敞开大门。Rust的巨大优势在于,它能在代码编译过程中,也就是代码进入代码审查阶段之前,捕获这些错误。如果程序员忘记检查错误或释放资源,程序就会直接拒绝编译。
得益于这种自动验证机制,代码审查人员无需再浪费时间查找细枝末节,可以专注于程序的实际逻辑。Kroah -Hartman 估计,仅这些特性就能消除当前内核 60% 的 bug。此外,这种新的工作方式已经影响到 C 代码,迫使程序员优化接口并采用更安全的技术,这表明 Rust 的存在本身就已经改进了 Linux。
除了内存锁之外,本次演讲还探讨了一种基于微软一条古老格言的重要安全理念:假设任何进入系统的数据都是恶意的。Kroah-Hartman解释说,他们正在Rust中开发一种方法,以便在类型系统内部显式地将数据标记为“不受信任”。
这样一来,编译器就能强制程序员在使用或访问信息之前对其进行验证。这一点在今天尤为重要,因为开发人员不仅不信任用户编写的程序,也对硬件本身抱有疑虑,硬件往往存在出厂缺陷,甚至可能被恶意设计。通过将所有验证集中在一个点上,安全检查将更加快速准确。
无需从头重写即可实现进化
尽管这位专家热情洋溢,但他明确指出 Rust 并非万能。他举例说,一段用 Rust 编写的小代码原本用于在系统崩溃时显示二维码,结果却因为没人想到要检查数据缓冲区的大小而导致内存问题。Rust如果使用不当,缺乏常识,也会出现问题。正因如此,公司里没有人考虑重写 Linux 现有的 36 万行 C 代码。规则很明确:旧代码保持不变,新工具只会用于创建现代驱动程序。
目前,内核仅由大约 113.000 行 Rust 代码构成,其中大部分是为弥合两种语言之间的差异而进行的临时性适配。然而,像 Android 内部通信系统(Binder)这样的大型项目已经开始进行过渡,这意味着很快将有数十亿部手机每天运行这段代码。
该项目将这种变化视为一种自然演变,随着新硬件需要使用具有现代安全保证的全新程序,旧的 C 驱动程序将随着时间的推移而逐渐被淘汰。