找回密码
 立即注册
搜索
查看: 25588|回复: 132

[欢乐] Linux 内核爆发 C / Rust 大战,核心开发者愤然离职

[复制链接]
发表于 2025-2-11 20:05 | 显示全部楼层 |阅读模式
本帖最后由 月灵银羽 于 2025-2-12 11:02 编辑

2月 11 日消息,Linux 内核社区近期爆发了一场关于编程语言的激烈争论,最终导致一位核心开发者退出项目。这场争论的核心在于是否应该更多地使用 Rust 语言来开发内核,以及开发者之间的沟通方式。

Asahi Linux 项目的领导者 Hector Martin 公开批评另一位资深内核开发者 Christoph Hellwig,阻碍 Rust 语言在内核中的应用。

Martin 认为,Rust 语言在内存管理方面更加安全和现代,应该在内核开发中扮演更重要的角色;而 Hellwig 则对从 C 语言迁移到 Rust 持谨慎态度,认为迁移过程会增加内核的复杂性,并直言在 Linux 中混用代码就是“癌症”。

Linux 之父 Linus Torvalds 的介入成为了事件的转折点。Torvalds 本人并不反对在内核中使用 Rust,但他对 Martin 公开批评 Hellwig 的方式表示强烈不满。

Torvalds 在内核邮件列表中批评 Martin,认为他应该反思自己的行为,并指出技术问题应该通过技术途径解决,而不是诉诸社交媒体。

在 Torvalds 的批评之后,Martin 宣布退出内核上游开发,转而专注于 Asahi Linux 的下游开发。他表示对内核开发流程和社区管理方式失去了信心,尽管如此,Martin 表示未来仍有可能向上游提交补丁。





论坛助手,iPhone
回复

使用道具 举报

发表于 2025-2-11 20:15 | 显示全部楼层
看hackernews,kernel邮件列表上貌似吵了很久了

论坛助手,iPhone
回复

使用道具 举报

     
发表于 2025-2-11 20:15 来自手机 | 显示全部楼层
总觉得rust粉跟特么邪教一样
回复

使用道具 举报

     
发表于 2025-2-11 20:15 来自手机 | 显示全部楼层
一直想学rust,找不到应用场景啊...
回复

使用道具 举报

     
发表于 2025-2-11 20:20 | 显示全部楼层
这两者的矛盾本来就是不可调和的,最开始 rust 爱好者拿进内核来吹就觉得此事不长久。rust 需要 kernel 来证明自己,而 kernel 并不需要 rust 来保证所谓的安全性。

另外现在编译内核加个 ebpf 需要一堆依赖我就觉得麻烦的要死,更别提整另一个编译器依赖了。
回复

使用道具 举报

     
发表于 2025-2-11 20:22 来自手机 | 显示全部楼层
rust确实蛮奇葩的,去到哪都想替换,从应用来看,替换造成的功能不可预期性比所谓的安全还值得担心

—— 来自 鹅球 v3.3.96-alpha
回复

使用道具 举报

     
发表于 2025-2-11 20:26 | 显示全部楼层
linus才55岁,就他这个级别来说不算老,起码还能镇压十年吧
回复

使用道具 举报

     
发表于 2025-2-11 20:32 | 显示全部楼层
不如另开分支直接用rust实现完成kernel。
回复

使用道具 举报

     
发表于 2025-2-11 20:38 | 显示全部楼层
蟹粉为嘛不自己从头开始搞一个内核替代linux
回复

使用道具 举报

     
发表于 2025-2-11 20:41 | 显示全部楼层
内核开发需要rust所谓的安全性吗,为了运行效率本来就允许用不安全的写法的,引入另一套体系复杂度不是爆炸了
回复

使用道具 举报

     
发表于 2025-2-11 20:55 | 显示全部楼层
pwzzy 发表于 2025-2-11 20:41
内核开发需要rust所谓的安全性吗,为了运行效率本来就允许用不安全的写法的,引入另一套体系复杂度不是爆炸 ...

肯定一堆unsafe
回复

使用道具 举报

     
发表于 2025-2-11 20:56 来自手机 | 显示全部楼层
支持ruster重写kernel

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

发表于 2025-2-12 08:57 来自手机 | 显示全部楼层
提到rust听到的大多都是重写,rust有没有自己的拳头应用?
回复

使用道具 举报

发表于 2025-2-12 09:00 来自手机 | 显示全部楼层
kumh 发表于 2025-2-11 20:32 不如另开分支直接用rust实现完成kernel。

rinux,正好r l 不分来自: iPhone客户端

评分

参与人数 1战斗力 +1 收起 理由
鱼丈人 + 1 思路广

查看全部评分

回复

使用道具 举报

     
发表于 2025-2-12 09:03 来自手机 | 显示全部楼层
语言神批真的闹麻了
回复

使用道具 举报

     
发表于 2025-2-12 09:05 | 显示全部楼层
厨具战士mk2 发表于 2025-2-12 08:57
提到rust听到的大多都是重写,rust有没有自己的拳头应用?

Cloudflare的Pingora算吗?
回复

使用道具 举报

发表于 2025-2-12 09:06 | 显示全部楼层
搞成这个样子,是不是Linus Torvalds本人受够了C语言,想用Rust?
回复

使用道具 举报

     
发表于 2025-2-12 09:07 | 显示全部楼层
没有拿得出手的东西只能靠吹是这样的
回复

使用道具 举报

发表于 2025-2-12 09:08 | 显示全部楼层
还不是linus放进来的
回复

使用道具 举报

     
发表于 2025-2-12 09:10 来自手机 | 显示全部楼层
pwzzy 发表于 2025-2-11 20:41
内核开发需要rust所谓的安全性吗,为了运行效率本来就允许用不安全的写法的,引入另一套体系复杂度不是爆炸 ...

Rust这玩意儿最奇葩的是,搞了一大堆,各种概念,各种限制,来保证所谓的内存安全性。但是在这些东西之外,他居然也留了unsafe的后门。
我当时看到这一点后,我就对这语言的吹嘘失去了兴趣。如果他的安全性真的这么厉害,这么坚不可摧,那为什么要留后门?
回复

使用道具 举报

     
发表于 2025-2-12 09:13 | 显示全部楼层
上次俄罗斯贡献者那事咋样了,冷处理成功了?
回复

使用道具 举报

     
发表于 2025-2-12 09:13 | 显示全部楼层
本帖最后由 Midnight.Coup 于 2025-2-13 17:42 编辑

用 rust 写的系统有啊,RedoxOS,用的 DE 也是 rust 写的 COSMIC Epoch
回复

使用道具 举报

发表于 2025-2-12 09:20 | 显示全部楼层
印象里起码5、6年前,ruster就到处布道了,恨不得从今以后所有东西都要用rust写,到现在这个局面一点也不意外

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2025-2-12 09:20 | 显示全部楼层
厨具战士mk2 发表于 2025-2-12 08:57
提到rust听到的大多都是重写,rust有没有自己的拳头应用?

区块链上面的solana,以及由基于rust的move语言的aptos和sui
回复

使用道具 举报

     
发表于 2025-2-12 09:34 | 显示全部楼层
RIIR的人很多都很礼貌的

至少内核这件事上, C系开发者一个在别人演讲时突然打断演讲, 直球大喊大叫的

然后Christoph Hellwig说癌症

结果RIIR被泥潭骂邪教....

评分

参与人数 3战斗力 +3 收起 理由
Casper-上弦月 + 1
HariSeldon + 1
darklinden + 1 思维顽固了已经

查看全部评分

回复

使用道具 举报

     
发表于 2025-2-12 09:36 | 显示全部楼层
montanaB 发表于 2025-2-12 09:10
Rust这玩意儿最奇葩的是,搞了一大堆,各种概念,各种限制,来保证所谓的内存安全性。但是在这些东西之外 ...

因为通过Rice Theorem(莱斯定理)可以证明你不可能构造一个编译器使其接受所有内存安全的程序并拒绝所有内存不安全的程序。
Rust选择接受内存安全的程序的一个子集(从而把语义性质变为语法性质),通过unsafe让程序员在需要的时候自行写出内存安全集合与这个子集的差集。

评分

参与人数 2战斗力 0 收起 理由
希德尼娅 -1 传统邪教套话
darklinden + 1

查看全部评分

回复

使用道具 举报

     
发表于 2025-2-12 09:37 | 显示全部楼层
montanaB 发表于 2025-2-12 09:10
Rust这玩意儿最奇葩的是,搞了一大堆,各种概念,各种限制,来保证所谓的内存安全性。但是在这些东西之外 ...

按我理解用rust那套东西确实是可以实现所有功能,但是心智负担可能会增加到惊人的程度
回复

使用道具 举报

     
发表于 2025-2-12 09:42 来自手机 | 显示全部楼层
coyove 发表于 2025-2-12 09:00
rinux,正好r l 不分

r l不分是什么意思?

—— 来自 鹅球 v3.3.96-alpha
回复

使用道具 举报

     
发表于 2025-2-12 09:56 | 显示全部楼层
坚决抵制Rust作为内核。它针对内核开发,除了所谓的捕风捉影的"内存安全"之外,全无任何比较优势,缺点却很多,这个话题发展到目前的程度就是一种匪夷所思,而且针对未来的亲智能计算时代的计算架构来说更是灾难性的麻烦。这玩意现在被硬推有政治性,我甚至怀疑它最近这波被推动和某类美国情报部门特殊的网络攻击后门手段应用有关。
无论如何,如果有Rust混入内核,我肯定会用原来C系内核的搞自己的分支,不会接受。

评分

参与人数 3战斗力 +3 收起 理由
sinaway + 1 思路广
LStardust + 1 好评加鹅
ForeverTime + 1 +1

查看全部评分

回复

使用道具 举报

     
发表于 2025-2-12 10:03 | 显示全部楼层


“嘿兄弟,我知道你是十年经验的老走钢丝侠,但是你先别急,我给你推荐一辆走钢丝专用轮椅”

“这玩意儿纯钢打造,操作失误会挨鞭子,并且无法后退,无法跳跃,无法拿大顶”

“但是相信我,这玩意儿绝对可以保证小脑发育不全的人都能安全走钢丝,甚至有些情况下比你还快得多”

“并且像你这样的高手,也可以按下【unsafe】按钮跳出轮椅爱怎么跳怎么跳,当然以你的经验是不会摔的”

“你看以后你只需要在轮椅发展的过程中以你的高超能力做【unsafe】相关的工作,剩下的事情训练过的猴子都能干,是不是很棒啊?”

“你为什么要走?兄弟?什么?你为什么要砸了它?”
回复

使用道具 举报

     
发表于 2025-2-12 10:04 | 显示全部楼层
厨具战士mk2 发表于 2025-2-12 08:57
提到rust听到的大多都是重写,rust有没有自己的拳头应用?

从流行程度来看应该是 deno 和 Tauri,我自己用的最多的是 ripgrep,不过从功能来看这几个也都是广义重写,
排版软件 Typst 应该算原创
回复

使用道具 举报

     
发表于 2025-2-12 10:09 来自手机 | 显示全部楼层
毕竟他们都写rust了


—— 来自 鹅球 v3.3.96-alpha
回复

使用道具 举报

     
发表于 2025-2-12 10:11 来自手机 | 显示全部楼层
ryanz 发表于 2025-2-11 20:20
这两者的矛盾本来就是不可调和的,最开始 rust 爱好者拿进内核来吹就觉得此事不长久。rust 需要 kernel 来 ...

所以需要rust码农直接重写个runix
回复

使用道具 举报

     
发表于 2025-2-12 10:23 来自手机 | 显示全部楼层
YoumuChan 发表于 2025-2-12 09:36
因为通过Rice Theorem(莱斯定理)可以证明你不可能构造一个编译器使其接受所有内存安全的程序并拒绝所有内 ...

既然从原理上就已经做不到了,那rust花费如此大的代价,就更不合算了。这套设计本来就对程序员的负担心智过重。我以前并不了解你说的这个原理,只是从直觉上觉得,无论是设计还是使用上,都付出了如此大的代价,却还是留下了不安全的后门,这不合理。现在你的说法更加坚定了我的想法:rust吹嘘的这套安全机制,并不能如他所说的那样,解决所有安全问题,他本质就跟Java语言的gc一样,是个为大部分场景设计的工具而已,但是Java的gc用起来很方便,你rust的安全系统,使用起来代价太大了
回复

使用道具 举报

     
发表于 2025-2-12 10:25 来自手机 | 显示全部楼层
小止 发表于 2025-2-12 09:37
按我理解用rust那套东西确实是可以实现所有功能,但是心智负担可能会增加到惊人的程度 ...

如果真的能,那rust就不会为这套安全机制留个后门。楼上那位已经从理论上说明了,这套机制确实解决不了所有问题,只是一个子集,所以才留下unsafe的后门。
回复

使用道具 举报

     
发表于 2025-2-12 10:30 来自手机 | 显示全部楼层
还是Rust自己写个内核吧。混合的东西确定不好

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

     
发表于 2025-2-12 10:34 | 显示全部楼层
本帖最后由 abcxiawei 于 2025-2-12 10:39 编辑
Steel.Haze 发表于 2025-2-12 09:56
坚决抵制Rust作为内核。它针对内核开发,除了所谓的捕风捉影的"内存安全"之外,全无任何比较优势,缺点却很 ...

如果rust真的能彻底解决内存安全问题,我不介意它代替其它语言,毕竟内存安全是个非常麻烦的问题。


问题恰恰是rust解决不了内存安全问题。我以前仅仅是直觉上觉得如此——你rust真能解决内存安全问题为什么要留unsafe后门呢?

现在好了,楼上有个理论大拿直接从定理证明,能彻底解决内存安全的编译器至少目前不存在!

那你rust花了那么大代价——无论是设计还是使用上——程序员用起你这个安全系统痛苦万分,付出如此大的代价后,发现你这东西其实是个半拉子,根本构建不起吹嘘的【彻底解决内存安全问题】的宏大叙事,那意义何在?

解决内存安全的半拉子工程现在就有样板:各个带有内存回收的语言,人家也是半拉子,解决不了所有内存安全问题,问题是人家这个半拉子给程序员用起来没有心智负担啊。

rust没戏,我以前只是直觉觉得如此,看了26楼那位大佬从基础理论论述为啥rust必须留unsafe后门后,我现在反而更坚定了这点。
回复

使用道具 举报

     
发表于 2025-2-12 10:49 | 显示全部楼层
abcxiawei 发表于 2025-2-12 10:34
如果rust真的能彻底解决内存安全问题,我不介意它代替其它语言,毕竟内存安全是个非常麻烦的问题。

是的,我也觉得肯定解决不了,内存安全怎么能单靠换个语言写法就搞定。不光是unsafe问题。编写的逻辑错误、FFI 交互等等都是不可避免的。

而且原则上,我觉得编译越麻烦的语言框架解决起来越难。所以现在的Linux的内核已经是一种接近逻辑、应用需求和简洁度相对自洽的状态。一旦混入Rust,那么可能造成的污染和带来的问题非常不可测。现在内核核心子系统(如调度、内存管理)高度依赖C语言实现的复杂数据结构与宏,Rust的强类型系统和所有权模型难以直接兼容,需通过大量 unsafe代码桥接,削弱安全性优势,甚至直接操作MMIO寄存器也要unsafe实现。本质上,引入混用,将直接给Linux内核在内存安全上开口子,而不是增强。而Linux内核层突破其实一直是美国情报机构想要“更便利”解决的一个问题。

而且本质上,目前unsafe代码需人工验证其正确性,但内核规模的代码库中,此类代码的交互可能引入难以追踪的底层问题。引入Rust后,实际上这部分安全性就拿捏到代码提交者手上,本质上这个也是一种“夺权”。
回复

使用道具 举报

     
发表于 2025-2-12 10:59 | 显示全部楼层
所以如果rust真的那么牛逼,为什么不直接重构一个内核分支去证明自己牛逼,而是老想着鹊巢鸠占

说白了这件事就根本不是技术驱动而是利益驱动罢了
回复

使用道具 举报

     
发表于 2025-2-12 11:00 来自手机 | 显示全部楼层
abcxiawei 发表于 2025-2-12 10:34
如果rust真的能彻底解决内存安全问题,我不介意它代替其它语言,毕竟内存安全是个非常麻烦的问题。

只是对你个人而已觉得心智负担大吧

但是新成长起来的00后码农很多人都会

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-3-4 03:05 , Processed in 0.257825 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表