点击上方蓝字关注 👆👆
大家好,我是秀儿
不久前,在 Linux 内核中使用除 C 之外的另一种语言的想法还被嘲笑。事情变了。今天,不仅高级系统语言Rust 更接近 Linux,而且它比以往任何时候都更接近于[1]下一个将 Rust 作为第二语言添加到 Linux 内核的支持的补丁系列。[2]
这些新软件包的最大变化是,为内核提出的 Rust 代码现在依赖于稳定的 Rust 编译器,而不是 beta 编译器。展望未来,每次发布新的稳定 Rust 编译器时,Linux 上的 Rust 都会迁移。目前,它使用Rust 1.57.0[3]。
通过这样做,作为 Linux 内核和 Linux 上的 Rust 负责人,开发人员 Miguel Ojeda 说,通过升级编译器,我们已经能够从列表中删除一些我们正在使用的不稳定特性。 反过来,这意味着 Linux 上的 Rust 将更加稳定。
展望未来,Ojeda 写道:我们将继续升级,直到我们不依赖任何不稳定的功能;此时我们可能想要开始声明支持最低 Rust 版本,就像它已经完成的那样,例如 GCC 和 Clang。
高级 Linux 内核开发人员 Greg Kroah-Hartman 告诉我,他相信驱动程序可能是Rust 在 Linux 中出现的第一个位置,[4]因为它们是内核源代码中依赖关系树的‘末叶’。它们依赖于内核内核功能,但没有什么依赖于它们。
这已经有好几年了。在虚拟的2020 Linux Plumbers 大会[5]上,顶级 Linux 内核开发人员讨论了 Linux 的未来,引入了将Rust 作为内核的第二语言[6]的想法。
虽然 Linus Torvalds 确信,Linux 最终不会用 Rust 编写。但是,这不是目标。没有人会用 Rust 重写内核的 2500 万行 C 代码。
在 Rust 语言负责人 Josh Triplett 和 Google 工程师 Nick Desaulniers 的带领下,他们提议在内核中使用系统级 Rust 语言。为什么?因为它比 C 更安全,尤其是在处理内存错误方面。
正如微软首席云开发倡导者 Ryan Levick 所解释的那样,Rust 是完全内存安全[7]的。 由于大约三分之二的安全问题可以追溯到内存处理不当,这是一项重大改进。此外,Rust 通常可以在不增加任何运行时开销的情况下防止这些问题,Levick 说。
Torvalds 看到了优势[8]。虽然他鼓励将 Rust 引入 Linux 的缓慢但稳定的方法,但[9]他也表示将 Rust 接口用于驱动程序和其他非核心内核程序是有道理的:我相信它会发生。它可能不是 Rust,但它将会发生,我们将有不同的模型来编写这些东西,而 C 不会是唯一的。
因此,正如 Ojeda 今年夏天告诉ZDNet 的那样,该项目尚未完成,[10]但如果高级维护人员接受当前的更改并更喜欢我们在内核中工作,我们已经准备好进行主线化。大部分工作仍在我们前面。。
不过,现在工作进展顺利。我希望在 2022 年的某个时候在 Linux 内核中看到第一个 Rust 代码。
参考资料
[1]
Rust 更接近 Linux,而且它比以往任何时候都更接近于:https://www.rust-lang.org/
[2]下一个将 Rust 作为第二语言添加到 Linux 内核的支持的补丁系列。:https://lkml.org/lkml/2021/12/6/461
[3]Rust 1.57.0:https://blog.rust-lang.org/2021/12/02/Rust-1.57.0.html
[4]驱动程序可能是Rust 在 Linux 中出现的第一个位置,:https://www.theregister.com/2021/11/10/where_rust_fits_into_linux/
[5]2020 Linux Plumbers 大会:https://www.linuxplumbersconf.org/blog/2020/
[6]Rust 作为内核的第二语言:https://linuxplumbersconf.org/event/7/contributions/804/attachments/641/1168/barriers-to-in-tree-rust.pdf
[7]Rust 是完全内存安全:https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
[8]Torvalds 看到了优势:https://www.zdnet.com/article/linus-torvalds-looks-at-the-future-of-linux-kernel-developers-and-development/
[9]将 Rust 引入 Linux 的缓慢但稳定的方法,但:https://lore.kernel.org/lkml/CAKwvOdmuYc8rW_H4aQG4DsJzho=F+djd68fp7mzmBp3-wY–Uw@mail.gmail.com/T/u
[10]该项目尚未完成,:https://www.zdnet.com/article/rust-in-the-linux-kernel-why-it-matters-and-whats-happening-next/
[11]Rust 作为 Linux 的第二种官方语言向前迈出了一大步:https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/
推荐阅读
后台回复【加群】,秀儿与您进行深入交流~
Rust是一种赋予每个人力量的语言,致力于构建可靠、高效的软件。
👇扫下方码关注👇
觉得不错,请点个在看
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容