AI Agent、AI Infra、RAG 、出海合规,2024 前瞻性和实用性技术案例都在这里了 了解详情
写点什么

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:242
用户头像
李冬梅 加V:busulishang4668

发布了 899 篇内容, 共 479.3 次阅读, 收获喜欢 1071 次。

关注

评论

发布
暂无评论

Hadoop企业级生产调优手册(一)

大数据技术指南

11月日更

“元宇宙”究竟是什么

华为云开发者联盟

云计算 AI AR vr 云宇宙

Linux学习方法,《Linux一学就会》教你如何学习Linux

侠盗安全

Linux 运维 linux运维 云计算架构师 linux电子书

连续 14 年!IBM 荣获 2021 年 Gartner 主存储魔力象限领导者

WorkPlus

【Pandas学习笔记02】处理数据实用操作

恒生LIGHT云社区

Python 数据分析 pandas

北京朝阳区有正规等保测评公司吗?联系电话多少?

行云管家

网络安全 等保测评 朝阳区

自动驾驶汽车的安全架构体系 易筋 ARTS 打卡 Week 77

John(易筋)

ARTS 打卡计划

HBase 调优详细剖析

五分钟学大数据

11月日更

面试官问:mysql中时间日期类型和字符串类型的选择

华为云开发者联盟

MySQL timestamp 时间日期 字符串类型

50强诞生!2021 OceanBase 数据库大赛百所高校争霸!

OceanBase 数据库

数据库 开源 开发者 比赛 oceanbase

大数据开发之如何用Scala进行spark开发

@零度

scala 大数据 spark

《新程序员》走进微软亚洲研究院

刘旭东

微软 hololens

Remix.run 新手教程

程序员铮铮

JavaScript 大前端 React SSR 教程分享

安全架构|云安全框架及虚拟化技术

明亮安全观

云计算 网络安全 云安全 安全架构

Flutter 异常监控、符号解析及聚合分流实践

贝壳大前端技术团队

flutter 监控 异常 符号化

智能楼宇管理系统开发,智慧楼宇管控系统开发

电微13828808271

TMF国际大奖技术揭秘:5G智能动态步长

鲸品堂

5G 计费模式 通信运营商

spark2.0笔记

Clarke

Java开发之集成开发环境

@零度

JAVA开发 Java学习 IED

盘点分布式软总线数据传输技术中的黑科技|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

前端开发环境搭建在内网是如何搭建的

@零度

大前端

拿捏这10点,玩转云原生应用

WorkPlus

大会回顾丨游戏用户体验优化如何实践,看大咖怎么说(附PPT下载)

WeTest

淘宝客户端安全生产体系建设

阿里巴巴终端技术

ios android 淘宝 客户端 安全生产

Linux一学就会之Linux详细基本命令操作

学神来啦

bash Linux centos 运维 Shell

鸿蒙智联生态服务平台——智能硬件伙伴的最佳拍档|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

质量基础设施“一站式”服务信息平台建设,NQI一站式线上搭建

电微13828808271

还有人不知道鸿蒙智联设备认证咋搞?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

35岁程序员创业,为何选择云原生赛道

行云创新

云计算 创业 程序员 云原生 CEO

阿里一面灵魂一问:RPC或者HTTP什么时候需要序列化和反序列化?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

这才是Springboot事务创建流程的正确打开方式(附源码分析!)

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

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