《HarmonyOS:领航者说》技术公开课来啦,大咖分享、实战解码,不容错过 了解详情
写点什么

C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光

  • 2024-09-03
    北京
  • 本文字数:3376 字

    阅读完需:约 11 分钟

大小:1.57M时长:09:09
C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光

Rust for  Linux 内核维护者之一因“非技术原因”退出团队


近日,InfoQ 获悉,Rust for  Linux 内核维护者之一、微软工程师 Wedson Almeida Filho 在Linux 内核邮件列表上写道:

 

我本人将退出 Rust for Linux 项目的维护者团队。

 

之所以决定退出项目,是因为在过去四年的工作当中,我发现自己的精力和热情已经被严重消磨,越来越抗拒回应那些跟技术无关的废话。所以这份任务,最好是留给那些仍然抱有这份热情的成员。

 

致 Rust for Linux 团队:感谢大家,你们最棒。很高兴能跟各位一起工作,我们共同讨论技术问题、寻找解决健全性漏洞的方法等等产,这些都是我宝贵的回忆和人生经历。很幸运能够与这样一个才华横溢、友好和善的团队携手并进。

 

祝愿这个项目一切顺利。

 

我坚信内核开发的未来在于内存安全语言。我不是那种很有前瞻性的人,但如果 Linux 没法把这项优势内化己用,我担心其他内核终将像取代 Unix 那样冲击 Linux

 

Wedson Almeida Filho 是一位微软工程师,在过去几年中为 Rust for the Linux 内核代码做出了大量贡献。Wedson 开发了许多 Rust Linux 内核功能,甚至还主持将 EXT2 文件系统驱动程序移植到了 Rust。但他已经受够了,现在正退出 Rust for Linux 的工作。

 

值得注意的是,该电子邮件还包含一个YouTube 视频链接,该视频是 Filho 在 2024 年 Linux 内核峰会上发表的演讲,在演讲中,他因在内核中使用 Rust 而遭到一些观众的强烈反对。

 

观众中的批评者认为,Rust 的集成将给 C 语言开发者带来过度负担,他们将被迫学习一门新语言并保持与 Rust 绑定的兼容性。

 

此外,一些开发人员还对 Rust 绑定的稳定性以及对 C 代码进行更改时可能出现的故障表示担忧。然而,Wedson 和其他支持将 Rust 纳入内核的人认为,这些担忧被夸大了,Rust 可以与 C 共存,而不会损害内核的稳定性。他们认为,Rust 的好处(尤其是其内存安全功能)超过了集成带来的挑战。

 

关于将 Rust 纳入 Linux 内核的争论凸显了开源社区在维护稳定的代码库和拥抱创新之间的更广泛的矛盾。

 

虽然一些开发人员看重 C 的熟悉度和可靠性,但其他开发人员认为采用 Rust 等更新、更安全的语言对于 Linux 内核的长期健康和安全至关重要。这场辩论的结果可能会对 Linux 和更广泛的开源生态系统的未来产生重大影响。

Linux 社区的反应


Linux 社区中就是否将 Rust 纳入 Linux 内核展开了很多激烈的争论。在国外知名技术社区平台Reddit上,用户关于这个问题的讨论十分激烈。以下是支持和反对在 Linux 内核中使用 Rust 的论据。

支持将 Rust 纳入 Linux 内核的论据:

  • 提高内存安全性:Rust 的内存安全功能可以帮助防止 C 和 C++ 代码中出现的大量错误和安全漏洞。这在像 Linux 内核这样庞大而复杂的代码库中尤为重要,因为即使是技术娴熟的程序员也难免会犯错。此外,谷歌的数据表明,在现有代码库中使用 Rust 代替 C 和 C++ 可以减少高严重漏洞的数量。

 

  • 吸引新的开发者:将 Rust 纳入内核有助于吸引那些更熟悉现代语言的新开发人员,他们可能会因为使用 C 语言的难度和复杂性而放弃使用。这也是 Linux 创建者 Linus Torvalds 批准将 Rust 纳入内核的主要原因之一。

反对将 Rust 纳入 Linux 内核的论据:

  • 内核开发人员对变更的抵制:许多长期从事内核开发的人员不愿意学习一门新语言,尤其是当他们没有明显需要学习新语言时。他们认为,他们宁愿花时间学习更多关于内核的知识,也不愿学习一种新的方式来完成他们已经知道如何做的工作。这种抵制表现为对于那些在内核中提倡使用 Rust 的人的敌对和不专业的行为,例如对 Wedson Almeida Filho 的态度。

 

  • 维护 C 和 Rust 代码之间兼容性的难度:确保对 C 代码的更改不会破坏 Rust 代码,反之亦然,是一项重大挑战。在内核中缺乏全面的自动化测试的情况下,这尤其成问题。

 

  • 对 Rust 成熟度的担忧:一些内核开发人员担心 Rust 还不够成熟,无法用于像 Linux 内核这样重要的项目。他们担心该语言及其工具仍在快速发展,依赖它们可能会导致不稳定和不可预见的问题。

 

一位观看了 Wedson 和 Kent 在会议上的演讲完整视频和这次会议的其他一些视频的 Reddit 用户认为,Linux 内核开发人员看起来非常糟糕。

 

“看起来他们正在现场对演讲者进行嘲讽,完全不关心他们是如何进行 30 分钟的演讲的,那场会议看上去让人很不舒服。他们对待 Wedson 显然是不尊重的,而且是当面直说的,所以我认为不应该责备 Wedson 辞职。我读了一些关于 Rust for Linux 的评论,Linux 内核似乎是一个特别有毒的工作环境,里面充满了那种自己没什么成熟经验,但却仍然自以为是的工程师们。”

为什么 Linux 内核要反抗 Rust?


从上述 Reddit 讨论帖和 Wedson Almeida Filho 的辞职邮件中可以似乎看出,现在还有很多人反对将 Rust 纳入 Linux 内核。

 

这种抵制并不一定源于对语言本身的厌恶,而是由多种因素共同导致的,其中许多因素反映了软件开发中更广泛的问题。其中一些是技术问题,但更多的则是非技术上的问题

 

从技术角度而言,反对将 Rust 纳入 Linux 内核的原因集中在两点上:第一是维护负担和 API 稳定性,第二是复杂性和“不安全”难题。

 

人们反复担心的是保持 C 和 Rust 之间兼容性的实用性。内核开发人员(其中许多人都是资深的 C 专家)表示,他们担心需要承担额外的责任,以确保他们的 C 代码更改不会无意中破坏 Rust 组件。鉴于内核中的自动测试有限,这一点尤其重要。

 

此外,一些开发人员认为,为了弥合 Rust 严格的安全规则与内核级编程固有复杂性之间的差距,可能需要在 Rust 中过度使用“unsafe”关键字。这被视为可能会破坏 Rust 旨在带来的安全优势。

 

非技术原因是更深层次的开发者之间的文化冲突。在 Reddit 和 Hacker News 上,都有用户提到 Wedson 的退出是一个非常典型的“旧团队”与“新团队”之间的分歧。这种声音强调:

 

“一个新团队认为他们将重写一切并让世界变得更美好。而老团队多年来则是一直埋头苦干,他们对代码了如指掌,并经过艰苦的调试,才让系统进入目前的状态(在这种情况下,这是一个非常成功的状态,因为 Linux 文件系统几乎将所有数据存储在云中),他们更加脚踏实地。新团队思考问题的方式可能过于简单,让老团队感到不被尊重。(这种明显的不尊重可能是你听到这种咄咄逼人的语气的原因。)这是一种非常典型的文化冲突。”

 

此外,想将 Rust 纳入到 Linux 也面临着一些变革阻力和学习曲线难题。许多长期的内核维护者表示不愿意花时间和精力学习一门新语言,尤其是如果他们已经成功使用 C 多年,这种抵触情绪随着 Rust 的责任落在他们身上而加剧。

 

更糟糕的是,一些内核开发人员和 Rust 拥护者似乎在开发理念上存在根本分歧。内核社区重视稳定性、成熟的方法论以及对复杂代码库的深入理解,他们可能会认为 Rust 的严格规则和对内存安全的重视是一种额外的限制,而不是一种好处。

 

Reddit 讨论中的一些评论暗示,人们认为 Rust 支持者是“精英主义者”,或者对 C 开发人员的专业知识不屑一顾。再加上长期使用 C 语言的开发人员和那些更熟悉新语言的开发人员之间可能存在的代沟,这进一步加剧了 Rust 融入具有完善规范和等级制度的社区的难度。

 

然而,不得不提的是,并非所有 Linux 内核开发人员都反对 Rust。许多人看到了它的潜在优势并支持将其纳入。但是,上述观点凸显了技术、社会和哲学因素的复杂相互作用,这些因素导致了 Rust 在 Linux 内核团队内部面临的抵制。

Rust 在 Linux 内核中的未来


在抵制和支持两种声音兼而有之的情况下,Rust 在 Linux 内核中的未来将何去何从?在近日 Verizon 开源官 Dirk Hohndel 与 Linux Torvalds 的一次关于 Linux 的现状以及未来发展方向的公开对话中或许能窥见些端倪。

 

在这次公开对话中,Hohndel 与 Torvalds 谈到了如何将 Rust 语言引入 Linux。Torvalds 对 Rust 的应用速度未能如预期般加快感到失望。“我原本指望着更新速度会更多,但问题在于不少老一代内核开发人员更习惯于使用 C 语言,而不太熟悉 Rust。他们不太愿意学习一种在某些方面与老办法截然不同的新语言。因此,Rust 的普及受到了一些阻力。

 

除此之外,Torvalds 还评论道,“另一个原因在于,Rust 自身的基础也并不是十分牢靠。”

 

最后,Torvalds 表示自己并不关心云和 Kubernetes 这类新技术。“内核才是唯一需要关注的重点。”

 

参考链接:

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

https://ostechnix.com/rust-maintainer-for-linux-kernel-resigns/

2024-09-03 15:247028
用户头像
李冬梅 加V:busulishang4668

发布了 1114 篇内容, 共 727.7 次阅读, 收获喜欢 1256 次。

关注

评论 2 条评论

发布
用户头像
rust不会太流行
2024-09-07 10:53 · 北京
回复
用户头像
机翻也太明显了吧,不如用ai翻译
2024-09-06 17:27 · 浙江
回复
没有更多了
发现更多内容

Hibernate实现CRUD(附项目源码)

爱好编程进阶

Java 程序员 后端开发

JAVA API调用elasticsearch实现基本增删改查

爱好编程进阶

程序员 后端开发

助力提升研发效能的“黄金三角”

博文视点Broadview

云电脑的四重守护,安全有谱

天翼云开发者社区

安全 云电脑

聊聊如何在华为云IoT平台进行产品开发

华为云开发者联盟

物联网平台 IoT 华为云 iotda 设备接入

npm install xxxx --legacy-peer-deps命令是什么?

华为云开发者联盟

前端 npm install 依赖树 对等依赖关系

使用APICloud & MobTech SDK 快速实现分享到社交平台功能

YonBuilder低代码开发平台

APP开发 APICloud MobTech袤博科技 社交分享

web前端培训React 中Router的必备知识点

@零度

前端开发 React

Docker Swarm从部署到基本操作

爱好编程进阶

Java 程序员 后端开发

蒙牛乳业加入星策开源社区,携手推动企业智能化转型建设

星策开源社区

人工智能 机器学习 企业数智化 智能化转型

Java-进阶:集合框架1

爱好编程进阶

程序员 后端开发

OpenHarmony新增两个分布式能力!快来了解~

科技汇

秒云 (元来云志)获邀加入中国开源云联盟,共筑开源生态

MIAOYUN

开源 开源生态 开源中国

DM 是如何处理 DML 的丨TiDB 工具分享

PingCAP

使用xdebug调试php详细教程

CRMEB

华为云持续快速增长,IaaS市场排名中国第二、全球第五

科技热闻

Java8新特性-Optional

爱好编程进阶

Java 程序员 后端开发

java不使用客户端授权密码直接用账号密码发送带附件的邮件

爱好编程进阶

程序员 后端开发

【架构视角】一篇文章带你彻底吃透Spring

潘大壮

spring 后端 springboot 后端开发

网易云信 QUIC 应用优化实践

网易云信

音视频开发

Demo:第三章:权限框架spring security oauth2

爱好编程进阶

程序员 后端开发

git(8)Git 与其他系统

爱好编程进阶

Java 程序员 后端开发

低通信量是筛选分布式多方安全计算常用安全协议方案的先决条件

易观分析

安全多方计算 低通信量

HDI硬件设备接口介绍

科技汇

【高并发】如何使用互斥锁解决多线程的原子性问题?这次终于明白了!

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

dubbo实战之二:与SpringBoot集成

爱好编程进阶

Java 程序员 后端开发

GitHub上超火的阿里调优专家的677页Java性能调优笔记,已让我拿下5个offer

爱好编程进阶

Java 程序员 后端开发

Java培训MySQL体系构架、存储引擎和索引结构

@零度

MySQL JAVA开发

与多家机构战略合作,背后彰显PlatoFarm元宇宙龙头的实力

西柚子

Java中当对象不再使用时,不赋值为null会导致什么后果?

爱好编程进阶

Java 程序员 后端开发

简述数仓的时间域函数

华为云开发者联盟

数据库 时间 时间戳 GaussDB(DWS) 时间域函数

C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光_操作系统_李冬梅_InfoQ精选文章