Linux|Linux之父表示对Rust语言感兴趣 但当前尚未达到可以大力推荐的时候
作为 C 语言开发的代表作 , Linux 内核也在越来越多地引入 Rust 语言 。近日 , ZDNet 就与 Linus Torvalds 和 Greg Kroah-Hartman 等人展开了类似的讨论 。早在去年的 Linux Plumbers 会议上 , 开发者们就认真思考了如何将 Rust 语音用于新的 Linux 内联代码 , 且当前市面上已有不少 Rust 产品 。
文章图片
早些时候 , 亚马逊云服务(AWS)推出了面向容器的 Bottlerocket Linux , 其中就包含了大量的 Rust 元素 。至于 Rust 为何如此流行 , 主要是因为它能够用于编写更安全的软件 。
AWS 产品经理 Samartha Chandrashekar 表示:Rust 有助于确保线程安全、避免与内存相关的错误 , 从而堵上潜在的缓冲区溢出型安全漏洞 。作为 Mozilla 的主管 , Sylvestre Ledru 也在夜间兼职 Debian Linux 的开发 , 目前已使用 LLVM 编译了基础结构、Clang C 语言前端和工具基础结构 , 并将 Rustutil 版本的 Coreutils 移植到了 Linux 平台 。
Coreutils 是 GNU Shell 的核心实用程序 , Sylvestre Ledru 借此启动了 Linux、并运行了深受欢迎的 Debian 软件包 。虽然距离生产部署还有很长一段路要走 , 但它最终还是有望取代 GNU Coreutils。
2019 年的时候 , Alex Gaynor 和 Geoffrey Thomas 在 Linux 安全峰会上表示 , 约有 2/3 的 Linux 内核漏洞源于内存安全性问题 。不过 Linux 开发者 Nelson Elhage 还是在 Linux Plumber 会议的总结词中强调 , 他们并非提议通过 Rust 来彻底重写 Linux 内核 , 而是专注于向新一代编程世界迈进 。
从理论上来讲 , Rust 可带来本质上更安全的应用程序接口(API) , 以全面规避此类情况的出现 。
Rust 的三大潜在应用 , 包括了对 Linux 内核中现有 API 的使用、体系结构支持、以及处理 Rust 和 C 语言之间的应用程序二进制接口(ABI)的兼容性 。
在向 Linus Torvalds 提问对这一切都有怎样的看法时 , 他表示正在耐心等待和保持密切观察:
我对 Rust 项目很感兴趣 , 但当前似乎主要由 Rust 的爱好者所推动 , 因此我决定静观其变 , 看它最终能够在实践中发挥怎样的作用 。如果分个轻重缓急 , Linus Torvalds 认为 Rust 的首要目标应该放在驱动程序的改进上 。
就个人而言 , 目前应该还不是推举 Rust 语言的最佳时机 。不过考虑到该语言所承诺的一些优势(虽然不一定能完全兑现)、以及能够规避一些安全问题 , 我还是愿意接受它的 。
即便显得有些枯燥 , 大家还是可以在这里找到许多不同的潜在目标 , 且内核的这些部分都是相对较小且彼此独立的 。Kroah-Hartman 对这一观点表示同意 , 因为驱动程序只是内核源代码依赖树上最末端的叶子 。此外 Linus Torvalds 提到了内核与用户空间项目的不同:
针对驱动程序的任何初步试验都仅停留在体系结构层面 , 而许多驱动程序仅与特定的几个目标体系结构有关 , 所以 Rust 支持代码的重要性也没有那么高 。
许多人抱怨在用户空间这块使用 Rust 并不是一个好兆头 , 但这里其实和内核项目有很大的不同 。在 Kroah-Hartman 看来 , 一切都归结为“如何将用 C 语言编写的内核核心架构和生存期规则之间的交互”映射到 Rust 结构和生存期规则中 , 以便基于 Rust 语言开发的驱动程序能够被顺利推行 。
由于我们使用了许多非常奇怪的头文件 , 其在某些方面确实更加困难 , 你也可以将之称作 C 语言的一个边界 。
但在其它方面 , Rust 开发或许可以做到更加轻松 。这点主要得益于内核的相对独立 , 所以并不需要依赖于其它项目的最终二进制文件 。
【Linux|Linux之父表示对Rust语言感兴趣 但当前尚未达到可以大力推荐的时候】至于 Rust 语言在 Linux 平台上的后续发展 , 还请耐心留意未来几年里的更多项目 。
推荐阅读
- 功能|Linux 微信官方版 2.1.1 正式发布
- Linux|glibc在默认情况下并未妥善解决Y2038问题
- Intel|英特尔正为Linux 5.17准备PFRUT:升级系统固件无需重启
- Linux|Fedora 36默认字体将改为Noto,以覆盖更多语言
- Linux|Ubuntu Kylin 20.04 Pro(RISC-V)版本正式发布
- Linux|有人说,Linux 发行版激增不利于 Linux 生态系统?
- Linux|兆芯x86 CPU+国产OS:安卓App在桌面跑起来
- AMD|Linux 5.17将支持AMD智能追踪缓冲区功能
- Linux|国产Linux系统可爱鱼CutefishOS 0.7 Beta发布
- Intel|英特尔已为Linux 5.17准备了一些Wi-Fi改进