C 语言老兵不服 Rust!Linux 内核爆发内讧,核心维护者被迫退出:真的吵累了

科技   2024-09-06 12:18   福建  

本文经授权转自公众号CSDN(ID:CSDNnews)

整理 | 郑丽媛

从几年前传闻 Rust 要进驻 Linux 内核,到如今 Rust for Linux 项目的目标是让 Rust 成为 Linux 内核模块开发的第二语言,期间 Linux 社区内有关于 Rust 的争论就不曾停止,近期更是达到了一个新高峰。

上周,一位负责 Rust for Linux 的核心维护者 Wedson Almeida Filho 决定退出此项目,原因是他已疲于应对社区内越来越多与技术毫无关系的“废话”了——换句话说,他真的已经吵累了。

而 Wedson 的官宣退出,也再次引发了开源社区对内核开发和语言选择的广泛讨论。


1、从最初的质疑,到 Rust for Linux 的诞生

Rust 语言以其内存安全特性而闻名,被许多开发者认为是克服 C 和 C++ 中常见内存漏洞的理想解决方案。正因如此,Rust 在近年来受到了包括微软和谷歌在内的众多科技巨头的青睐,也得到了如美国网络安全与基础设施安全局等政府机构的支持。

然而如开头所说,最初 Rust 在 Linux 内核中的起步并不顺利。

Linux 内核维护者 Greg Kroah-Hartman 在 2019 年首次提出“用 Rust 开发 Linux 驱动”的主张时,许多开发者都对此否定,并提出了一些用 Rust 实现驱动程序时不可避免的难题:Linux 内核无法保证 API/ABI 的稳定性,通用 Rust 接口设计较为困难,Linux 内核采用的 C 语言特性并没有相应的 Rust 支持等等。

自 2020 年以来,围绕在 Linux 内核中引入 Rust 的讨论逐渐升温。这种想法的核心在于,通过将 Rust 引入 Linux 内核,可以显著提高系统的安全性和稳定性——内存安全漏洞是许多重大安全问题的根源,而 Rust 的内存安全性正是其最大的卖点之一。

在传统的 C 和 C++ 开发中,内存管理是一项复杂且容易出错的任务,稍有不慎便会导致严重的安全漏洞,尤其在操作系统内核这样的复杂系统中,任何细微的内存错误都可能带来灾难性的后果。而 Rust 通过严格的编译器检查和所有权机制,可以有效避免这些问题。

于是 2022 年底 Linux 6.1 版本的发布,标志着 Rust 正式被引入内核,这是一个重要的里程碑。但即便如此,正如 Wedson 在邮件中所揭示的那样,Rust for Linux 这条前进的道路也依旧不平坦。


2、由于非技术性争论,一名核心维护者决定辞职

Wedson 本职是一位微软软件工程师,过去几年中为 Rust for the Linux 项目做出了大量贡献,一直是其核心推动者。他参与了许多 Rust Linux 内核功能的开发工作,还进行了一个实验性的 EXT2 文件系统驱动程序的 Rust 移植。

然而,上周他在 Linux 内核开发邮件列表中发布的辞职公告中表示:“将近四年的时间过去了,我发现自己已经没有了当初那种回应一些非技术性废话的精力和热情,因此最好把这个项目交给那些仍对此充满热情的人。”

Wedson 指出,自己原以为技术讨论会成为项目中的主要挑战,他也做好了与同事们一起解决这些问题的准备——然而,项目中不断出现的是各种非技术性争论,久而久之他感到愈发疲惫,最终不得不选择退出。

在邮件的最后 Wedson 还引用了一个视频链接,其中正是一名开发者对他提议的抵制:Wedson 曾提议,通过在 Rust 绑定中静态编码文件系统接口语义来减少错误,而知名 Linux 内核维护者 Ted Ts'o 评论道,“你不能强迫我们所有人都去学习 Rust”。

对此,Wedson 在邮件中回应道:“再重申一次,没有人试图强迫其他人学习 Rust,也没有人阻止对 C 代码的重构。


3、“我坚信内核开发的未来就是内存安全语言”

意料之中,Wedson 的退出在 Linux 社区中引起了诸多讨论:有支持,亦有反对。

开发者 Asahi Lina 在 Mastodon 上对 Wedson 的决定表示理解和支持。她认为部分 C 语言内核开发者“似乎决心让 Rust 维护者的工作变得非常艰难,因为他们不觉得 Rust 有价值,甚至希望它消失”。

而另一位资深开发者、SourceHut 的创始人兼首席执行官 Drew DeVault,也是公开反对在 Linux 内核中引入 Rust 的一员。他在博客中对 Rust for Linux 项目的开发者表示同情,同时提出了一个新的建议:别再试图将 Rust 嵌入现有的 C 代码中,而是从零开始构建一个兼容 Linux 的新内核。他指出,这样才可以让项目更快地取得实质性进展,避免现在项目中的各种争议。

确实,Rust 进入 Linux 内核的过程,不仅仅是一个技术选择的问题,社区内的沟通和合作也是一大挑战。Linux 社区以其开放和自由的文化著称,但正因为缺乏传统企业中的层级结构和管理规范,项目的方向和决策往往依赖于社区成员的共识,而这种共识的达成并非易事

Filho 的退出无疑给 Rust for Linux 项目带来了不小的冲击,但这并不意味着项目会因此停滞,而他本人也仍对这个项目的前景充满信心:

“我坚信内核开发的未来就是内存安全语言。我并不能预知未来,但如果 Linux 不能将这个优势内化,恐怕其他内核也终将像取代 Unix 那样对 Linux 造成冲击。”

参考链接:

https://www.theregister.com/2024/09/02/rust_for_linux_maintainer_steps_down/

https://lore.kernel.org/lkml/20240828211117.9422-1-wedsonaf@gmail.com/

本文转自公众号“CSDN”,ID:CSDNnews

---END---

Linux学习
专注分享Linux/Unix相关内容,包括Linux命令、Linux内核、Linux系统开发、Linux运维、网络编程、开发工具等Linux相关知识和技术
 最新文章