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

整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

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

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

6f3d7c8e8d6a772e353c30b34287a4f7.png

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

3ff4ffe18a4e2e750261aa040c86135f.png

从最初的质疑,到 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 这条前进的道路也依旧不平坦。

84b87024c5e1c643c9b46d310ca9feea.png

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

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

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

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

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

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

79eeeb9788a598301f3d5ccb7e701f76.png

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

意料之中,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/

推荐阅读:

▶猜 iPhone 16 “真高光”还是“挤牙膏”?苹果秋季发布会前瞻!

▶苹果中国回应“iPhone16不支持微信”;京东大幅上调校招薪资;华为、苹果发布会再度撞档 | 极客头条

▶2000名应届生收到offer两年后仍未入职,被迫参加无薪培训,印度IT巨头被指“剥削”!

7b4a0c59e8297edf0d31f4cc8a749b7c.gif

65b6fb788dc89e7f4e39a7da9a7052c9.png

Rust for Linux维护者对未来计划的展望非常乐观。Rust作为一种高性能、安全可靠的编程语言,与Linux内核开发目标是高度契合的。Rust for Linux项目的目标是用Rust语言编写Linux内核的关键组件,提高内核的代码质量和安全性。 未来计划的重点之一是将Rust逐渐引入Linux核心组件,例如文件系统、网络栈等。Rust的内存安全特性可以有效减少内核中的资源泄漏和未初始化内存访问等问题,提高内核的稳定性。此外,Rust提供了高级的并发编程机制,有望改善Linux内核对多核处理器的利用效率。 除了内核组件,Rust for Linux维护者还计划将Rust作为Linux驱动程序的编程语言。借助Rust的安全性和性能优势,可以减少因驱动程序带来的系统崩溃和安全漏洞。这将为Linux生态系统的稳定性和可靠性带来显著的提升。 另一个重要的计划是与Rust社区的合作。Rust for Linux维护者将积极参与Rust语言开发和维护,推动Rust的生态系统成熟和技术进步。与此同时,他们也将借助Rust社区的力量,为Rust for Linux项目提供更多的资源和支持。 总的来说,Rust for Linux维护者相信RustLinux内核的发展具有重要的意义。他们计划通过逐步引入Rust,提升Linux内核的安全性、性能和稳定性,为用户提供更好的体验。同时,他们也希望通过与Rust社区的合作,共同推动Rust语言Linux内核的发展,为整个开源社区带来更多的创新和进步。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值