7 月 4 日,一套修订后的补丁被提交至 Linux 内核的邮件列表中,该补丁为在 Linux 内核中以 Rust 作为辅助编程语言提供了支持,借助 Rust 可以提高 Linux 内核和内存的安全。
整套补丁包含 17 个子项,不光为 Linux 内核提供了初步的 Rust 支持,还提供了一个驱动实例,总共有超过 33000 行的新代码。
Miguel Ojeda 一直在领导 "Rust for Linux" 的工作,此前我们也报道了 Google 为了提升 Linux 内核安全性对该项目进行了资助,以使这种编程语言能够在内核中使用。虽然 Linux 5.14 的内核合并目前仍在进行中,但这套补丁目前并没有被标记上 “Pull Request”,因此预计要到下一个合并周期这套补丁才会正式登陆 Linux。
Rust for Linux 的启用现在已经达到了 33000 多行代码,之所以包含这么多代码的其中一个原因是目前在数据结构中包括了 Rust 的 "alloc" 标准库的一个子集,并在此基础上添加了一些内容。这使得开发者可以根据自己的需要进行定制。同时给上游提供所需的时间来评估这项变化。最终的目标是将内核需要的所有东西都放在上游的 "alloc" 中,并将其从内核树中删除。
这些新补丁的另一个变化是,在之前的版本中想要编译 Linux 内核需要使用 Rust 编译器的 nightly 版本,而现在内核可以用 Rust 编译器的 Beta 测试版和稳定版。不过由于对内核的支持确实需要一些 Rust 编译器的最新功能,因此 Beta 版和稳定版在特定情况下会出现编译失败的情况。
除了支持 AArch64、PowerPC 和 x86_64 之外,ARM 32 位和 RISC-V 现在也被这个 Rust for Linux 所支持。想要了解更多详情,可以在 kernel mailing list (https://lore.kernel.org/lkml/20210704202756.29107-1-ojeda@kernel.org/)中找到这些最新的 Rust for Linux 内核补丁。
END