写点什么

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

发布了 1037 篇内容, 共 651.7 次阅读, 收获喜欢 1204 次。

关注

评论

发布
暂无评论
发现更多内容

Vue3中常用的Composition(组合)API-shallowReavtive和shallowRef

不觉心动

6 月 优质更文活动

【Netty】「萌新入门」(五)Pipeline 与 ChannelHandler

sidiot

Java 后端 Netty 6 月 优质更文活动

【网络安全】打造安全的应用程序:了解 SSDLC 的关键步骤

sidiot

SSDLC 6 月 优质更文活动

四大因素解析:常规阻抗控制为什么只能是10%?

华秋电子

Vue3中常用的Composition(组合)API-set的两个注意点

不觉心动

6 月 优质更文活动

Vue3中常用的Composition(组合)API-readonly 与 shallowReadonly

不觉心动

6 月 优质更文活动

强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN

汀丶人工智能

人工智能 深度学习 强化学习 DQN 6 月 优质更文活动

强化学习从基础到进阶-常见问题和面试必知必答[4]::深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN

汀丶人工智能

人工智能 深度学习 强化学习 DQN 6 月 优质更文活动

【AI】浅谈使用正则化防止过拟合(上)

sidiot

人工智能 正则化 6 月 优质更文活动

【AI】浅谈使用正则化防止过拟合(下)

sidiot

人工智能 正则化 6 月 优质更文活动

飞桨携手登临解读软硬一体技术优势,共推AI产业应用落地

飞桨PaddlePaddle

人工智能 百度 飞桨

【Netty】「项目实战」(一)如何构建多客户端聊天室

sidiot

Java 后端 Netty 6 月 优质更文活动

Nop平台中的模块依赖关系

canonical

开源 低代码 低代码平台 Nop平台

【JAVA】浅说 AQS

sidiot

Java AQS 6 月 优质更文活动

聚力领航,2023 开放原子全球开源峰会燃爆夏日开源热

开放原子开源基金会

C语言字符串的常用操作

芯动大师

C语言 字符串数组 6 月 优质更文活动

STM32采集传感器数据通过冒泡排序取稳定值

DS小龙哥

6 月 优质更文活动

Vue3中常用的Composition(组合)API-自定义hook函数

不觉心动

6 月 优质更文活动

数据基建:埋点体系从认知到解决方案搭建

小鲸数据

埋点 用户行为分析 精细化运营 埋点框架 埋点设计

Linux 中的密码生成器:如何在命令行中生成随机密码

wljslmz

Linux 6 月 优质更文活动

攻克信创难题|海泰新一代信创迁移平台解决方案“神农二号”问世

电子信息发烧客

Vue3中常用的Composition(组合)API-toRef API和toRefs API

不觉心动

6 月 优质更文活动

对线面试官-Redis(缓存的三大问题)

派大星

Java 面试题

Vue3中常用的Composition(组合)API-watchEffect()函数

不觉心动

6 月 优质更文活动

强化学习从基础到进阶-案例与实践[4.1]:深度Q网络-DQN项目实战CartPole-v0

汀丶人工智能

人工智能 深度学习 强化学习 DQN 6 月 优质更文活动

Nautilus Chain:模块化Layer3架构为RWA赛道构建基础设施

鳄鱼视界

蔚来手撕代码题:三个线程循环打印ABC

王磊

java面试

Ionic用于构建跨平台移动应用程序的开源框架

没有用户名丶

详细介绍 `ls -ltr` 命令的功能和用法

wljslmz

Linux 6 月 优质更文活动

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