写点什么

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

发布了 1003 篇内容, 共 617.4 次阅读, 收获喜欢 1178 次。

关注

评论

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

SpringBoot之多模块开发

北漂码农有话说

面试都在问的微服务、服务治理、RPC、下一代微服务框架... 一文带你彻底搞懂!

程序员柠檬

微服务 后台开发 架构设计

python实现·十大排序算法之桶排序(Bucket Sort)

南风以南

Python 排序算法 桶排序

Cassandra可调一致性的使用及原理

老任物联网杂谈

大数据 分布式 Cassandra 可调一致性

写给产品经理的信(6):时间管理

punkboy

极客时间,项目管理 职场 产品经理 时间分配 时间管理

Django ListView DetailView等基于类的视图如何添加装饰器?

BigYoung

Python django LiveView 装饰器

只需CSS的下拉式导航菜单

寇云

CSS css3

2020年5月30日 泛型程序设计

瑞克与莫迪

终于找到了一篇文章!通俗地讲解计算机工作原理

图灵社区

cpu 存储器 编译器 计算机工作原理

一位测试工程师的自我介绍

姬翔

测试

JUC整理笔记四之梳理VarHandle(上)

JFound

Java

谈谈控制感(11):这样提升控制感,谁都能做到

史方远

心理 成长

广告的发展历程

子悠

广告 计算广告 广告系统 互联网广告 RTB

Vite for Vue 是什么?

꯭🇫꯭

Vue vuejs vite Vue3

设计模式:建造者设计模式

毛佳伟🐳

ARTS-week-1

youngitachi

ARTS 打卡计划 arts

Spring源码

云淡风轻

spring 源码

大厂为什么不招30岁以上程序员,看这篇就够了

金刚小书童

程序员 职业规划 技术管理 职业成长

Spring Bean生命周期——初始化和销毁

xiaoxi666

Java spring

vue-router 容易被忽视的几个地方

꯭🇫꯭

Vue vuejs vue-router router

关于字符编码那些你应该知道的事情

꯭🇫꯭

Java MySQL emoji utf-8 ASCII

【CSS】为什么a标签的伪类选择器要注意书写顺序?

德育处主任

CSS html css3 大前端 Web

产业区块链:产业是本质,区块链是工具

CECBC

新基建 CECBC 区块链技术 中国电子

平台化服务的基石:权限模型设计

孤岛旭日

企业架构 用户权限 数据建模

恭喜你,赢得了爱情长跑的胜利

小天同学

爱情 兄弟 祝福

不忘初心,继续努力

一周思进

ARTS 打卡计划

贴吧电纸书资深用户,从7个方面详谈BOOX Poke2上手体验!

DT极客

如何存储1个二进制位&锁存器的核心和本质

姜海天

计算机 数字逻辑

Vol.10 Java 25岁了!

pyfn2030

Java jdk 编程语言 Java25周年

毫无意义的人生唯有编织图案

xyz

图片与标题的Ken Burns动效

寇云

CSS css3

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