另一场 Linux 内核似乎正在发生“争吵”。这次是关于 Rust 设备驱动程序——Linux 权威人士 Linus Torvalds 已经率先射杀了信使。
针对 Asahi Linux 首席开发人员 Hector Martin 的呼吁,Torvalds同志 “提出权威答案”来解决设备驱动程序僵局,以及 Martin 为“在社交媒体上羞辱”以对抗 Linux 维护者对 Rust 代码的敌意而进行的辩护,但是 Torvalds 拒绝了这种做法,并将矛头指向了 Martin。
托瓦兹在几年前就承认自己在处理网络外交方面存在困难。他说:“你不如接受这个事实,也许问题出在你身上。你以为自己更了解情况。但目前的流程很有效。”
“它存在问题,但问题就是生活中的事实。没有完美的。”
“不过,我要说的是,社交媒体的攻击,让我根本不想与你的做法有任何瓜葛。
“因为如果我们的核心开发模型存在问题,那么社交媒体肯定不是解决方案。就像它肯定不是解决政治问题的办法一样。
“技术补丁和讨论很重要。社交媒体宣传?不,谢谢。”
Torvalds 相对克制的言论——与苹果停止向开发者发出的“沉默不语”警告并无太大区别。他说道:“如果你跑到媒体上诋毁我们,那根本就没有用”,然而这次却遭到了强烈反对。此后不久,Martin要求解除其对上游 Linux 代码的维护者职务,该代码为苹果的 Arm 兼容硬件提供支持。
在与内核维护者 Christoph Hellwig 发生冲突后,Martin 被指责“煽动”社区情绪——还在社交媒体上争取支持。这场争端源于 Hellwig 反对上个月提出的一个补丁,该补丁允许 Rust 编写的设备驱动程序调用主要基于 C 的内核的核心DMA API,该 API 分配和映射内存区域以便进行直接内存访问。
Linux 内核主要用 C 语言代码编写。近年来,C 代码和 C++ 都已经不再那么流行,因为具有手动内存管理的编程语言将会让开发人员犯内存安全错误。在某些情况下,这些错误可能会带来严重的安全后果。
而Rust 是一种较新的编程语言,其目标在通过其所有权模型来加强内存安全,从而防止 C 和 C++ 中发现的许多常见漏洞。因此,它被广泛推广为减少软件开发中的内存安全问题的方法。
Linux 内核组于 2022 年开始集成 Rust 代码,但它仍然主要是一个以 C 为中心的代码库。许多贡献和维护代码的 C 语言程序员已经明确表示,他们不会因为 Rust 的崛起而改变自己的编码方式。
Linux 内核中 C 和 Rust 开发人员之间的紧张关系源于 Rust 的内存安全功能被引入到传统上以 C 为主导的代码库中,而一些维护人员则抵制增加的复杂性和潜在的维护负担。
正如我们之前曾写到的那样,Hellwig 坚决拒绝该补丁,这导致 Martin 敦促Rust for Linux团队“在审核并准备就绪后立即合并该系列,而不要理会 Christoph 公然破坏该项目的行为”。
上周二,Martin 发布了一条消息,建议不要参与内卷闹剧 — 尽管 Mastodon 上对此事发表了激烈的争论,但该帖子现已被删除 — 因为Torvalds 对设备驱动程序补丁是否接受拥有最终决定权。
“要么 Linus 喜欢,要么很讨厌,”他写道,“其他一切都是一群破坏分子维护者精心策划的干扰,他们试图挫伤你的士气,直到你放弃为止,因为他们知道他们迟早会成为历史的失败者。无论老派的顽固维护者如何破坏,都无法阻止世界向内存安全语言去迈进。”
但内核维护者对 Rust 的厌恶,可能会减缓 Linux 社区的这一改革进程,Rust 补丁的命运仍然尚未确定。
各位肿么看?欢迎留言~
作者:聆听世界的羊
参考:
https://lkml.org/lkml/2025/1/8/803
https://rust-for-linux.com/
https://lkml.org/lkml/2025/2/4/8