HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Linus 开喷谷歌内核贡献者:你的代码是垃圾!网友:我们熟悉的 Linus 回来了

  • 2024-02-01
    北京
  • 本文字数:2889 字

    阅读完需:约 9 分钟

大小:1.33M时长:07:45
Linus开喷谷歌内核贡献者:你的代码是垃圾!网友:我们熟悉的Linus回来了

近年来脾气愈发温和的 Linus Torvalds,刚刚在 Linux 内核邮件列表中发布一篇措辞最为激烈的帖子,矛头直指谷歌一位贡献者关于文件系统的建议。

 

引发 Linus 愤怒情绪的导火索正是 inodes,即索引节点。根据红帽给出的定义,inodes 是“给定文件系统上特定元数据片段的唯一标识符”。

 

过去几周以来,inodes 在 Linux 内核邮件列表上引发了广泛争论,其中谷歌员工 Steven Rostedt 与 Linus 甚至就此事展开了激烈对抗。在题为《保证所有文件和目录都拥有相同 inodes》的帖子中,作者认为在使用 tar 归档文件时,inodes 仍可发挥作用。但 Linus 则反驳称 inodes 早已过时

 

Linus 指出,“没错,inodes 曾经地位特殊且拥有历史传承。但总的来看,我们应当努力摆脱这段破碎的历史。Indoes 编号不再作为唯一的描述符。现在已经不是 20 世纪 70 年代,如今的文件系统早已发生重大转变。”

 

但关于 inodes 的争论仍未平息。Rostedt 最终建议称,所有 inodes 都应拥有唯一编号。

 

Steven 于 1998 年开始研究 Linux 内核,并于 2001 年成为一名专业(付费)内核开发人员。目前,Steven Rostedt 是谷歌内核的开发者,也是 VMware 的开源程序员,负责维护 Linux 内核的实时稳定版本等。Rostedt 是 PREEMPT_RT 补丁的原始开发者之一,并于 2004 年开始研究该补丁,目标是将 Linux 转变为实时设计的操作系统。他也是内部跟踪工具Ftrace的主要作者、开发人员和维护者,该工具旨在帮助开发人员查找内核内部发生的情况。根据 Ftrace wiki,该工具可用于调试或分析用户空间之外发生的延迟和性能问题。

 

Rostedt 参加了很多 Linux 基金会的活动,已在世界各地进行了 80 多场演讲,他也是 Linux 基金会技术咨询委员会 (TAB) 和 Linux Plumbers 编程委员会的成员。



Steven Rostedt

 

Linus 也终于按捺不住,捡起了近年来已经大大缓和的火爆脾气。

 

2018 年,在向 Linux 程序员和项目贡献者们就“邮件中的轻率攻击”道歉之后,Linus 曾宣布要休息一下并寻求帮助,并承认这种粗暴的反应“既不专业,也没有必要。我把技术上的争论当成了个人恩怨……我知道这样不好,真的非常抱歉。”

 

Linus 之所以诚恳致歉,是因为 Linux 内核邮件列表其实是众多项目贡献者的共同工作场所。辱骂性帖子显然会破坏轻松愉快的工作氛围。毕竟 Linux 的发展还要仰仗于这些志愿贡献者和维护者,恶言恶语恐怕会损害项目的未来发展。

 

在回应 Rostedt 关于唯一 inodes 编号的建议时,Linus 先是表示“如非必要,勿增复杂性。”

 

但在此之后,他就有点失控了。

 

“我真的服了,别再照搬 VFS 层函数了。这玩意当初就有问题,现在一样要出问题。我不想讨论这种废话。”

 

Linus 对 Rostedt 的批评意见,主要集中在这位谷歌开发者对讨论主题存在理解偏差——Rostedt 本人后来也承认了这一点。

 

但在此之前,Linus 的“大炮”已经轰轰作响:

 

你直接照搬了这条函数,却不理解它为什么会有相应的效果,这样的代码纯属垃圾。

真让人心累。

 


争论持续一段时间之后,Linus 开始以冷静的证据提出了更好的方法,希望解决 Rostedt 所关切的问题。这位写道,他倒不打算立刻跟进这件事,因为“我在这事上已经浪费了很多时间,手头还有不少亟待解决的工作,所以暂时就先放一放。”

 

Rostedt 则在回复中给出了似乎针锋相对的说法:

 

讽刺的是,我也有拖着没做完的工作,就是为 eventfs 的维护者倦怠支持小组编写文档!

 

不难看出,Rostedt 言外之意是——你忙,我也忙,说的好像谁不忙似的。

 

尽管引起了风波,但 Linus 也带来了令人振奋的好消息:Linux 内核 6.8-rc2 版本已首次亮相

 

Linus 指出,rc1 中存在“一个 amdgpu 调度错误,可能导致桌面挂起(最终可以恢复,但需要等待足够长的超时,所以大多数用户可能会选择重新启动)。”

 

“这个问题似乎产生了广泛影响。”

 

Linus 本人也遇到过 btrfs bug,但由于发现较早,所以这个 bug 没有进入 rc1。

 

 “总之,随着 rc2 版本逐渐趋于稳定,不少可能影响众多测试人员的问题正逐步得到解决。所以希望后续我们能修复掉更多比较复杂、不涉及常见核心设置的问题。”

 

“所以大家可以亲自测试一下了,现在一切正常。我们还是靠谱的,对吧?”

 

当然,Linus 大佬在内核开发领域绝对靠谱,但在项目管理和沟通方面恐怕还值得商榷……

Linus 内心 os:我也不想喷,但我忍不了

 

然而,大家似乎已经适应了这位 Linux“独裁者”的暴脾气,甚至有网友表示,看不到 Linus Torvalds 怼人,失去了很多快乐。

 

过去十多年里,被这位大佬怼过的开发者和公司不胜枚举。

 

2013 年,Intel 公司的内核开发人员 Sarah Sharp 称 Torvalds 的行为是不专业的,称 Torvalds“主张进行人身恐吓和暴力行为。”Torvalds 随后指责 Sharp 把自己描述成受害者博取同情,不接受任何劝他应该改变的建议。

 

在 2015 年发表演讲说到英伟达时,Torvalds 还曾转向一台摄像机说“so Nvidia fuck you”并竖起了中指。

 

2015 年底,Sarah Sharp 宣布退出(Closing a door)内核社区。Sarah Sharp 当时说道,过去一年多时间她已经逐步终止了手中的各项社区工作,转交了 USB 3.0 主控制器驱动的维护工作,不再担任开源会议的内核协调员。她不再递交任何补丁和 bug 报告,不再向内核邮件列表写任何的建议。她声称,Linux 内核社区的互动是一种“潜在有毒的背景辐射”,充满了性别歧视、语言暴力和不尊重人。

 

Torvalds 最终也意识到他的言行会伤害到社区发展。2018 年,他决定休假并反思自己的行为。但反思过后,该喷还是要喷。

 

2020 年,在严辞拒绝 Intel 安全漏洞相关补丁之后,Linus Torvalds 再次对 Intel 开喷,直言 “我希望 AVX-512 赶紧‘去死’ ”。

 

事情的起因是 Linus Torvalds 对 Intel 的 Advanced Vector Extensions 512(AVX-512)指令集提出了一些激进的看法,称其为“功率病毒”,其创建目的单纯只是为了使 Intel 公司的 CPU 硬件在基准测试中跑分更高。当然,Linus 也坦承了自己“脾气暴躁”,并且表示对 Intel 确实“有偏见”。

 

AVX-512 是 Intel 公司在 2013 年发布的一套扩展指令集,其指令宽度扩展为 512 bit,每个时钟周期内可执行 32 次双精度或 64 次单精度浮点(FP)运算,专门针对图像 / 音视频处理、数据分析、科学计算、数据加密和压缩和深度学习等大规模运算需求的应用场景。

 

Linus 认为 Intel 为了提高 CPU 的性能跑分,强行在 CPU 中塞入了像 AVX-512 这样的东西,导致 CPU 内核臃肿,为了提升少数特定使用场景下的运算性能而影响了大部分普通用户的使用体验。

 

Linus 就此事发表评论称:


“我希望 AVX-512 赶紧“去死”(dies a painful death),这样 Intel 就可以开始解决实际的问题,而不是去尝试创造这些花里胡哨的指令集,然后围绕它们做一些自欺欺人的基准测试。

 

我希望 Intel 能够返璞归真:让他们的进程再次正常运行,更多地专注于提升用户基本体验的常规代码,而不是纠结于所谓的高性能运算或一些毫无意义的特殊情况下才会出现的问题。

 

参考链接:

https://www.theregister.com/2024/01/29/linux_6_8_rc2/

https://www.bez-kabli.pl/news/en/2024/01/29/linus-torvalds-expresses-frustration-with-google-developers-over-inodes-in-the-linux-kernel/

https://twitter.com/srostedt/status/1403081676327108612?lang=en

2024-02-01 16:179913
用户头像
李冬梅 加V:busulishang4668

发布了 940 篇内容, 共 534.8 次阅读, 收获喜欢 1105 次。

关注

评论

发布
暂无评论

毕业总结

babos

#架构实战营

【Promise 源码学习】第一篇 - Promise 简介

Brave

源码 Promise 11月日更

vivo 全球商城:商品系统架构设计与实践

vivo互联网技术

软件架构 架构设计 商城项目

Android C++ 系列:JNI数组操作

轻口味

android 11月日更

从0-1教你利用服务器做属于自己的个人博客

坚果

git 博客 服务器 nodejs 11月日更

Java 自定义注解(二)

程序员架构进阶

Java 注解 11月日更

什么是开源软件和自由软件,你真的了解吗

耳东@Erdong

开源软件 11月日更 自由软件

微信朋友圈复杂度分析

豪毅

架构实战营

Vue进阶(幺陆玖):JS 垃圾回收机制

No Silver Bullet

Vue GC 11月日更

超详细攻略!手把手教你如何在windows下搭建openLooKeng开发环境

openLooKeng

大数据 计算引擎

高级UI强行进阶:自定义View实现女朋友欲罢不能的网易云音乐宇宙尘埃特效,拿去装笔不用谢~

android 程序员 移动开发

dart系列之:dart语言中的内置类型

程序那些事

flutter dart 程序那些事 11月日更

Scrum Master们,难道每天都在摸鱼

华为云开发者联盟

摸鱼 敏捷教练 开发团队 Scrum Master 领导

极复杂编码,下载《原神》角色高清图、中日无损配音,爬虫 16 / 120 例

梦想橡皮擦

11月日更

Hazelcast在openLooKeng中的应用(Cache篇)

openLooKeng

大数据 cache 计算引擎 openLooKeng

架构实战营模块三作业

孙志强

架构实战营

解锁WiFi密码,我只用了60行代码....

Jackpop

【Flutter 专题】15 图解 ListView 异步加载数据与 Loading 等待

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

MySQL 默认隔离级别是RR,为什么阿里这种大厂会改成RC?

Hollis

【LeetCode】只出现一次的数字 IIIJava题解

Albert

算法 LeetCode 11月日更

linux之我常用的20条命令( 之三)

入门小站

Linux

CSS响应式布局之REM(二)

Augus

CSS 11月日更

[ CloudWeGo 微服务实践 - 06 ] 服务发现(2)

baiyutang

golang 微服务 11月日更

在线文本转2-36任意进制工具

入门小站

工具

Elastic-Job的执行原理及优化实践

安第斯智能云

Java 架构 分布式 后端

外包学生管理系统的架构

胡颖

鸿洋:拖不得了,Android11真的要来了,最全适配实践指南奉上

android 程序员 移动开发

如何从 JavaScript 中的数组中删除空元素?

devpoint

JavaScript filter 11月日更

开源应用中心|最好用的5款开源论坛软件,你知道吗?

开源 博客 开源软件 论坛

基于软件分析的智能化开发新型服务与技术

华为云开发者联盟

程序员 开发 漏洞 软件分析 智能开发

模块九—电商秒杀系统

babos

#架构实战营

Linus开喷谷歌内核贡献者:你的代码是垃圾!网友:我们熟悉的Linus回来了_操作系统_李冬梅_InfoQ精选文章