日前,Linux 内核和 Rust on Linux 的主要开发者 Miguel Ojeda 向 Linux Kernel 邮件列表提交了一个新补丁 (v2),进一步推进了 Rust for Linux 的工作进展。
邮件内容指出,新的补丁将为 Linux 内核增加对 Rust 作为第二语言的支持,并且对 Rust 的整体支持进行了多项改进。具体来说,Rust 代码现在已经依赖于稳定的 Rust 编译器而不是之前的 beta 版本状态。Ojeda 称,接下来每次发布新的稳定 Rust 编译器时,Linux 上的 Rust 都会进行迁移。目前其已经迁移到了上周刚发布的 Rust 1.57.0 版本。
展望未来,Ojeda 继续提到 “通过升级编译器,我们已经能够把我们使用的一些不稳定的特性从列表中删除。我们将继续升级,直到我们不再依赖任何不稳定的特性,到那时,我们可能要开始宣布支持 Rust 的最低版本,就像对 GCC 和 Clang 那样。”
随着 Rust 的兴起,许多开发人员越来越有兴趣在 Linux 内核中尝试 Rust。
2019 年,Alex Gaynor 和 Geoffrey Thomas 在 Linux Security Summit 安全峰会上进行了演讲,他们介绍了 Rust 内核模块的一个原型,并提出了在内核中采用 Rust 的理由。此次演讲重点是在安全问题上,其中指出在 Android 和 Ubuntu 中,约有三分之二的内核漏洞被分配到 CVE 中,这些漏洞都是来自于内存安全问题。原则上,Rust 可以通过其 type system 和 borrow checker 所提供的更安全的 API 来完全避免这类错误。
在 2020 Linux Plumbers Conference 上,Thomas 、Gaynor、Rust 语言团队的联合领导者 Josh Triplett 以及其他一些对此感兴趣的开发者以“Barriers to in-tree Rust”为主题,讨论了想要把 Rust 引入到 Linux 内核项目中作为一种可选的开发语言还需要解决的一些问题。其中 in-tree 是 Linux 术语,意思是与内核源代码树本身一起存储并与之一起构建内核模块。
与会者强调,他们并不是提议将 Linux 内核重写成 Rust,只是关注于走向一个可以用 Rust 编写新代码的世界。本次讨论集中在 Rust 支持的三个潜在关注点上:
对现有 C API 的绑定(Binding to existing C APIs);
架构支持(Architecture support);
关于 Rust 和 C 之间 ABI 与内核的兼容性(ABI compatibility with the kernel)。
对此,Linux 之父 Linus Torvalds 也曾发表看法:Linux 最终不会用 Rust 编写,没有人会用 Rust 重写内核的 2500 万行 C,但是他也看到了 Rust 的优势,鼓励采用缓慢但稳定的方法将 Rust 引入 Linux,同时他表示将 Rust 接口用于驱动程序和其他非核心内核程序是有道理的。
此外,Ojeda 还在邮件中透漏继 ARM、谷歌和微软之后,红帽方面也表达了他们对该项目的支持意向。
Rust 最初是由 Mozilla 研究院的 Graydon Hoare 设计创造,然后在 Dave Herman, Brendan Eich 以及很多其他人的贡献下逐步完善。自 2016 年以来,Rust 每年都在 Stack Overflow 开发者调查中被评为“最受欢迎的编程语言” 。
为什么 Rust 如此受欢迎?
Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++ 性能不相上下。
今年二月份,Rust 基金会宣布正式成立。
Rust 基金会是一个新的独立的非盈利组织,负责管理 Rust 编程语言及生态。该组织将致力于为那些管理和开发该项目的维护者提供支持。
Rust 基金会由 AWS、华为、谷歌、微软和 Mozilla 联合成立,并承诺在两年的时间里,投入 100 万美元的预算,用于 Rust 项目的开发、维护和推广。
Rust 基金会临时执行董事,核心团队成员 Ashley Williams 当时表示,“这标志着 Rust 在多维度上都迈出了一大步,更重要的是,一些全球行业领先的公司做出了正式的财务上的预判:Rust 将是未来企业生产中不可缺少的技术。”
前不久,Rust 编程语言的审核团队(Mod 团队)在 GitHub 上发表了一封辞职声明,并宣布即刻生效,根据公告,该团队辞职是为了抗议 Rust 核心团队(Core team):“除了自己,他们不受任何人的监督和约束。”
根据 Matthieu M 在 Reddit 上的表述,导致 Mod 团队直接辞职的原因是其与 Rust 核心团队数月来一直不断恶化的矛盾。
此次离职风波发生后,Rust HQ 发布了一份声明:Rust 基金会致力于支持该项目。我们尊重项目团队的独立性和任何决定,我们知道今天所做的变化。我们希望项目和语言蓬勃发展,并将继续努力实现这一愿景。
小 结
Ojeda 曾在今年夏天表示,“当前项目还尚未完成,若高级维护人员接受当前的更改并希望切换到内核中工作,我们就准备好进入主线。”
在本次邮件中,Ojeda 还承诺开始“每两周左右”提交内核补丁,以加快进度。目前工作进展顺利,希望在 2022 年的某个时候看到 Linux 内核中的第一个 Rust 代码。
我们将持续关注此事进展。
参考链接:
https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/
https://www.theregister.com/2021/12/07/rusty_linux_kernel_draws_closer/
你也「在看」吗?👇