2022年,Rust 将成为 Linux 内核第二官方语言?

2021 年 12 月 20 日 AI前线


作者 | 闫园园

日前,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

Rust 最初是由 Mozilla 研究院的 Graydon Hoare 设计创造,然后在 Dave Herman, Brendan Eich 以及很多其他人的贡献下逐步完善。自 2016 年以来,Rust 每年都在 Stack Overflow 开发者调查中被评为“最受欢迎的编程语言” 。

为什么 Rust 如此受欢迎?

Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++ 性能不相上下。

Rust 基金会成立

今年二月份,Rust 基金会宣布正式成立。

Rust 基金会是一个新的独立的非盈利组织,负责管理 Rust 编程语言及生态。该组织将致力于为那些管理和开发该项目的维护者提供支持。

Rust 基金会由 AWS、华为、谷歌、微软和 Mozilla 联合成立,并承诺在两年的时间里,投入 100 万美元的预算,用于 Rust 项目的开发、维护和推广。

Rust 基金会临时执行董事,核心团队成员 Ashley Williams 当时表示,“这标志着 Rust 在多维度上都迈出了一大步,更重要的是,一些全球行业领先的公司做出了正式的财务上的预判: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/

你也「在看」吗?👇

登录查看更多
0

相关内容

Rust 是一种注重高效、安全、并行的系统程序语言。
NeurIPS 20201接收论文列表发布,2334篇论文都在这了!
专知会员服务
37+阅读 · 2021年11月4日
【硬核书】Linux核心编程|Linux Kernel Programming,741页pdf
专知会员服务
78+阅读 · 2021年3月26日
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
【干货书】Linux命令行与shell脚本编程大全,第3版818页pdf
专知会员服务
61+阅读 · 2020年12月30日
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
62+阅读 · 2020年10月15日
【2020新书】使用Kubernetes开发高级平台,519页pdf
专知会员服务
66+阅读 · 2020年9月19日
泛型会让你的 Go 代码运行变慢
InfoQ
0+阅读 · 2022年4月4日
“C 不再是一种编程语言!”
CSDN
0+阅读 · 2022年4月4日
Linus妥协?30年Linux内核语言标准将更新
AI前线
0+阅读 · 2022年3月1日
Deno 2021 回顾:优化内核、兼容 Node.js
InfoQ
0+阅读 · 2022年2月13日
2022年值得期待的7个Linux发行版
InfoQ
0+阅读 · 2022年1月8日
Linus最高产,2021 Linux内核开发统计出炉
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Arxiv
0+阅读 · 2022年4月20日
VIP会员
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员