皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

据报道,Linus Torvalds 将不顾维护者的反对而合并 Rust 内核代码

据报道,Linus Torvalds 将不顾维护者的反对而合并 Rust 内核代码

围绕 Linux 内核中 Rust 代码的戏剧仍在继续……Christoph Hellwig 是 DMA 映射帮助程序的维护者,内核的其他几个领域一直直言不讳地批评 Rust 代码或 Linux 内核内核中的辅助编程语言。Hellwig 一直对 Linux 内核的 Rust 代码及其长期可维护性持批评态度。今天,他发布了另一篇邮件列表帖子,其中他指出 Linus Torvalds 私下提到他将覆盖维护者对内核中 Rust 代码的否决。

以下是 Hellwig 对 Linux 内核中 Rust 代码的最新看法。来自不同观点的一些有趣见解。完整的帖子可以在 Rust for Linux 邮件列表中找到。

“我认为拥有任何形式的网页都没有用。如果你想让它有效,它必须在内核树中并得到广泛同意。

它还陈述了事实不正确的信息。例如,

“一些子系统可能决定暂时不想使用 Rust 代码,通常是出于带宽原因。这很好,也是意料之中的。

而 Linus 私下里说他绝对会不顾维护者的反对而合并 Rust 代码。(他私下这样做了,以防你正在寻找参考资料)。

因此,截至目前,作为 Linux 开发人员或维护者,无论您是否愿意,您都必须处理 Rust。

Rust 代码不仅仅意味着 Rust 代码 [1] – 绑定看起来完全不像惯用的 Rust 代码,它们是非常不同的野兽,试图弥合巨大的语义差距。他们没有在少数几个地方这样做,因为它们现在被展示到每个小的子系统和库中。

因此,我们将让这些绑定像癌症一样无处不在,并且很快就会从一个允许并努力实现全局变化以改善整个项目的软件项目转变为增加分区化 [2]。这把 Linux 变成了一个用多种语言编写的项目,没有明确的指导方针,什么语言应该用于哪里 [3]。即使在绑定之外,很多代码也不会是非常地道的 Rust,因为内核数据结构是侵入性的和自引用的数据结构,就像无处不在的链表一样。我们不是对那些试图将现有代码库带入一个更好、更安全的空间的人和用 Rust 进行系统编程的人造成伤害吗?

像这样在代码库上工作,它们是我最可怕的噩梦,因为由于原因 X,从语言 A 重写部分到语言 B 再到原因 Z 的部分不断变化。这还没有通常的 Linux 内斗维护过程。

我想了解这个 Rust “实验” 的目标是什么:如果我们想修复内存安全方面存在的问题,我们需要对现有代码进行修复,并找到对其进行改造的方法。最近在这方面做了很多工作,我们需要更多。但这也表明核心维护者是如何被一些琐碎的事情所拖延的,比如检查整数溢出或编译器强制同步(就像在 clang 线程清理器中一样)。我们将如何弥合内核的一部分甚至不接受相对简单的规则来提高安全性的部分与另一个强制执行强规则的部分之间的差距。

如果我们只是想让编写驱动程序更容易,那么一种新的语言会推动更多的工作,并增加已经超负荷工作的人的工作量,以保持核心基础设施的正常运行。

所以我认为这份政策文件不是很有用。现在的规则是 Linus 可以强迫你任何他想要的(这显然是他的项目),我认为他需要非常清楚地阐明这一点,包括对贡献者的期望。

就我自己而言,我可以而且确实很好地处理 Rust 本身,我很想将内核带入一个内存更安全的世界,但是处理不受控制的多语言代码库是让我将业余时间花在其他事情上的一种非常肯定的方法。我听说过其他几个人 mumble 类似的东西,但并不是每个人都那么直言不讳。

[1] 我已经编写并处理了相当多的用户空间 Rust 代码,但我无论如何都不是专家,所以对此持保留态度

[2] HID 在 eBPF 中驱动程序的想法也确实没有帮助,因为我喜欢 eBPF 用于某些用例

[3] 除非 Linus 将其强制到您的子系统上, 或者 Dave 决定任何涉及 Nvidia 硬件的东西当然都必须在 Rust 中”

邮件列表线程与尝试定义 Rust 内核策略的 Rust for Linux 策略页面有关。

转自 Linus Torvalds Would Reportedly Merge Rust Kernel Code Over Maintainer Objections – Phoronix

已有 0 条评论
  1. [赞]

    2013年11月18日 12:39 回复
已有 0 条评论
  1. [赞]

    2013年11月18日 12:39 回复
-->