Linus给Rust打的"实验"分,被Google一张删补丁的PR提前交了卷:C版Binder,今年从Linux内核退休

源自40位全网作者

07:14

9月18日,Linux 7.4周期里出现一组没什么火药味的补丁:删除C语言版Binder驱动。提交者Google给的理由一句话能概括——“painful to maintain”(太难维护了)。Phoronix

标题党会写成"Rust又赢了"。但值得内核玩家想三秒的是:放弃C版Binder的,是写Binder的Google自己。 每台安卓手机上App和系统服务之间的通信都要经过这个驱动,它是内核里最老也最臭名昭著的驱动之一。 现在,原作者亲自递交了退休申请。Phoronix

而把内核Rust标成"实验"的Linus Torvalds,早就给出了答案——很多人没读对。

一、Rust进内核带的第一个"投名状",就是Binder

回到2021年4月14日,Rust-for-Linux负责人Miguel Ojeda向内核邮件列表提交13个补丁的RFC。那套代码里除了基础设施和FFI绑定,唯一的"真实驱动示例",就是Google工程师Wedson Almeida Filho用Rust实现的Binder。知乎

为什么偏偏是Binder?2023年11月,Google的Alice Ryhl提交Rust Binder正式RFC时把账算得很清楚:大约6000行代码里塞了13种锁、7套引用计数,有上千行的巨型函数,也是Android沙箱的安全核心——复杂度够证明Rust的价值,重要性够让Google肯投入知乎

五年前Rust向内核证明"我能写真实驱动",用的是Binder;五年后第一次正式接班,接的还是Binder。故事闭环。

Linus给Rust打的

而Google想甩掉的负担,就藏在驱动内部这张由进程、线程、节点、事务缠成的数据迷宫里——这正是Linus追问"谁来读、谁来修"的对象。

Linus给Rust打的

二、把Linus的发言串起来,会发现他从没打过"语言战争"

社区流传的版本是"Linus讨厌Rust"。把他的原话按时间排一遍,是一条异常一致的线:

  • 2022年10月,Linux 6.1:Linus合入Rust基础设施,但贴了标签:实验——不顺利就移除,推进者每一步都得拿结果说话。知乎

  • 2024年9月,Maintainers Summit:有人问"C侧接口改了,Rust绑定编译不过,谁修?“Linus:内核里没有任何东西依赖Rust,重要的是往前走,开发者应该"steam right ahead”(大踏步前进);要是有子系统阻挠,“That’s my job”(那是我的工作)。

  • 同一时期,ext4维护者Ted Ts’o道出老维护者的困境:"学一点Rust就够了"不成立——一点Rust读不懂文件系统抽象。Linus的台阶很务实:没人完全理解内存管理子系统,但每个人都能协作。会审查就行,改,是Rust开发者的事。

  • 2025年:DMA抽象层之争,核心维护者Christoph Hellwig一句"别给别人添堵"把Rust阵营堵了回去,邮件线程吵出超过4万英文单词,LWN专文报道。Rust阵营最后不硬碰硬:绑定做成独立组件,Rust侧的代码Rust的人自己审。

  • 2025年底的Maintainers Summit:Ojeda宣布实验成功——数百万台安卓手机已跑着Rust内核代码。2026年4月,Linux 7.0发布,Rust正式摘掉"实验性"标签,成为内核正规军。知乎

  • 2026年7月:Linus接受采访时依然在降温——别指望Rust能修复所有bug,没人能彻底搞懂Linux内核。36氪

Linus从头到尾只有一把尺子:谁读这段代码、谁修这段代码、出了事谁负责。 他既非Rust的敌人也非盟友;他把"实验"的判定权推迟给结果。而今天的结果是:C版Binder的维护者本人,承认C版维护不动了。

这不是对Linus的打脸,是"实验"按设计交出的成绩单。

三、但先别急着写"Rust大获全胜":内核里外,是两个温度

这周的Rust行业热度近年少见。9月16日,vivo蓝河操作系统4宣称内核到应用全链路Rust实现。 9月18日,NVIDIA发布cuda-oxide与cutile-rs,官方支持Rust直写GPU内核代码。 9月19日,Rust版Coreutils 0.12发布,Ubuntu已将其用作默认实现。微博知乎知乎

但把镜头拉回内核内部,温度骤降:

  • 从6.12到6.18-rc1,内核Rust文件数从76个翻倍到242个,但对比C的6万多个文件仍是零头。 截至2026年4月,内核里生产级Rust代码两万几千行,相对3500万行C是沧海一粟。知乎知乎

  • TIOBE4月榜里,Rust从历史最高的第13名滑到第16名,报告标题就叫"C Gains Again While Rust Loses Some Steam"——C在回暖。 9月榜Rust虽回升到第10(份额1.34%),但那是行业热度,不是内核现实。知乎

  • RDMA维护者Jason Gunthorpe的担忧仍在:如果客户环境跑不了Rust、公司还得再写一份C版本,谁投资Rust。知乎

  • 发行版与架构仍是硬约束:截至2026年初,RHEL等企业级发行版仍未在内核启用Rust。

  • alpha、parisc等7种架构连Rust编译器支持都没有。

  • 知乎"内核坚持单一C,还是适当引入Rust"的提问,9月19日仍有新回答在互呛。知乎

Linus给Rust打的

最准确的说法是:内核完成了第一次正式的"语言交接",交接的是负债的维护权,不是C的统治权。 C没输掉什么,只是不再需要为一段老债兜底。

四、谁该关心这次退休,往下该看什么

  • 安卓/嵌入式内核开发者:Rust Binder对外接口不变,App层照旧;但从7.4起,drivers/android下的参考实现只有Rust。"读得懂Rust驱动"正在从加分项变成默认项。

  • 驱动作者与维护者:Binder和DMA给出了已被验证的共存模板——抽象层独立成组件,Rust代码由Rust背景的人维护,C维护者不必为不熟的语言兜底。这条路比站队更值得抄作业。

  • 技术选型的企业:别拿"内核给Rust转正"当生产理由,先看发行版有没有开内核Rust、目标架构是不是Tier 1。顺序是反的:先有Pixel、AWS Nitro、N卡Nova驱动这些真实生产负载,才有"转正"。

  • 爱站队的围观者:"C药丸"和"Rust税"两个叙事这周同时找到了新弹药——这本身就是两个叙事都在过度简化。

盯三个信号:删除补丁能否搭上7.4列车;下一个被"自我删除"的C实现在哪个子系统;Rust文件数能否在7.4统计复制翻倍曲线。

Linus去年在访谈里承认,自己已经快20年不写代码了,每天的工作更像"阅读者"。 他判断代码进内核的眼光,在这组删除补丁上被检验得最彻底。在内核,新增代码显得你在干活,删除代码才说明你敢负责。微博

Google删掉自己养了十几年的C版Binder,理由不是"Rust更时髦",而是"我维护不动了"。这句话比任何语言战争都诚实——也是四年前那声"实验",最干净的回应。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章