Rust 将拯救 Linux:Greg Kroah-Hartman 确认实验结束

关键点:
  • Greg Kroah-Hartman 在 2026 年 Rust 周上宣布,在 Linux 内核中使用 Rust 不再是一项实验,而正在成为一项正式标准。
  • Linux 团队每天面临近 13 个漏洞报告,其中大部分是由 C 语言中的人为错误造成的。
  • Rust 的编译器会自动检测内存错误和崩溃,这可以将系统故障减少高达 80%。
  • 我们将实施一套系统,将硬件数据标记为“不可信”,强制开发人员在使用前对其进行验证。
  • 现有的 C 代码(36 万行)将不会被重写。Rust 只会用于开发新的控制器和子系统。

Rust Week 2026

在最近于乌得勒支举行的 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 驱动程序将随着时间的推移而逐渐被淘汰。


在 Google 中将其添加为首选来源