Linux 上的 Rust:进展、挑战和现状

Linux 上的 Rust 驱动程序

自从莱纳斯·托瓦兹 (Linus Torvalds) 加入以来 Rust 在 Linux 内核版本 6.1 中,该语言已逐渐普及 越来越多的开发者正在加入这一运动。

然而, 一些开发商 linux内核的 他们强调,进步将越来越意味着更多的工作和挑战,因为他们在评论中暗示可能会出现僵局。

值得澄清的是,我们并不是说实施进入了死胡同,而是考虑到各个开发人员的评论,并且正如我们已经提到的,在当前状态下,减少工作节奏的需要已经开始出现,或者至少这就是下面的文章向我们建议的 LWN.net。

几周前,我看到了这篇文章,它探讨了 Rust 在 Linux 中的使用现状,并分析了这种编程语言的实验是否成功。

值得一提的是,多年来, Rust 一直是一个没有停止讨论的话题 在“内核维护者峰会”上,2023年举行的峰会也不例外,因为自正式实施以来 Rust 作为 Linux 中的第二编程语言, 米格尔·奥赫达, Rust for Linux 开发人员, 强调了人们对 Rust 的使用日益增长的兴趣 在专门讨论该主题的会议期间进行内核开发。

米格尔·奥赫达 提到该项目 适用于 Linux 的 Rust 去年经历了巨大的势头,自从一名全职工程师和一名学生开发人员加入以来,各个公司都加入了支持这项工作。此外,将 Coccinelle 工具与 Rust 代码集成的工作正在进行中。然而,并非一切都是乐观的,因为当前的挑战之一是为正在开发的代码招募更多的审阅者。

Linux内核
相关文章:
Linux 6.1 带来 Rust、性能改进、驱动程序等

文章中并提到问题已经开始明显 在工具链中,因为 编译器进度 基于 GCC 的 Rust,称为 gccrs,已经放慢了速度。 另一方面,rustc 的 GCC 代码生成器显示出有希望的进展,并已与编译器合并,这将使 Rust 支持扩展到与 LLVM 不兼容的架构。

相关文章:
在 GCC 中,他们批准了 RUST (gccrs) 的实施

在内核内部, 几个子系统正在取得进展, Rust 实现就是这种情况 安卓活页夹 它已经证明了与 C 实现相当的性能,并且不安全代码的数量最少。此外,文件系统链接方面的工作正在进行中,目标是在 Rust 中实现只读支持,其愿景是在 Rust 中实现完全安全的文件系统。

DRM(图形)子系统的维护者 Dave Airlie 表示,如果他能如愿,在接下来的几个版本中将会有一个合并的 Rust DRM 驱动程序。克里斯托夫·赫尔维格回应说,艾尔利愿意“让每个人的生活都变得地狱”,这样她就可以玩她最喜欢的玩具。 Hellwig 表示,合并 Rust 将迫使其他人处理第二语言、新工具链和“具有奇怪语义的包装器”。 Dan Williams 表示,目前的情况“就是成功的样子”,并且内核社区已经致力于 Rust。

尽管维护者对采用 Rust 的兴趣越来越大, 挑战出现, 既然已经被争论了 需要用 Rust 编写内核参考驱动程序 展示如何用这种语言编写控制器。然而,Rust 和 C 驱动程序之间的功能重复引起了维护人员的不信任。

关于 Rust 的讨论有不同的方向, 好吧,一些维护者主张合并独立的 Rust 驱动程序,例如 Binder 驱动程序,以证明它们的可行性,而在硬币的另一面,其他人 他们对使用两种编程语言维护内核的复杂性表示担忧。

艾尔利接着说,拉斯特的大部分工作目前都陷入了先有鸡还是先有蛋的问题。抽象在有用户之前无法合并,但需要这些抽象的代码会被阻止,等待代码到达多个子系统。因此,Rust 开发人员需要携带大量补丁才能使代码正常工作。打破这个障碍需要允许在没有直接用户的情况下进入一些抽象概念。

尽管面临挑战, 内核社区认识到 Rust 在提高代码安全性和稳定性方面的潜力。一旦解决了可修补性和可维护性的问题,未来就有可能将更广泛使用的驱动程序合并到 Rust 中。

奥赫达同意这个问题减缓了进展,但表示他已尽力不向维护人员施加压力,要求其快速合并代码。讽刺的是,就网络而言,Rust 开发人员不得不要求网络人员放慢 Rust 代码的合并速度。

最后,值得一提的是,在 Linux 上广泛采用 Rust 的道路面临着挑战,但该领域的兴趣和进展是显而易见的。随着时间的推移,Rust 有望在改进 Linux 方面发挥重要作用。

数据来源: https://lwn.net/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。