写点什么

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

发布了 1054 篇内容, 共 667.8 次阅读, 收获喜欢 1214 次。

关注

评论

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

到底怎么理解分布式事务

做梦都在改BUG

JavaScript刷LeetCode拿offer-栈相关题目

js2030code

JavaScript LeetCode

来讲讲怎样获取到url上所有参数并以对象形式保存,再讲讲JSON解析与序列化

梁木由

前端 前端开发 前端面试

flutter系列之:在flutter中使用导航Navigator

程序那些事

flutter 大前端 程序那些事

分布式事务系统Seata的这些安保机制是否会让你更放心

做梦都在改BUG

Java 分布式 Spring Boot seata

【立哥】【每日一个小知识】按照法律,遗产应该怎么继承?

Lee Chen

法律 知识

NFTScan 团队正式发布 NFT Portfolio 产品

NFT Research

NFT

墨天轮发布数据库行业报告,亚信科技AntDB“超融合+流式实时数仓”开启新纪元

亚信AntDB数据库

数据库 AntDB 国产数据库 AntDB数据库 企业号 2 月 PK 榜

快速实现一个企业级域名SSL证书有效期监控巡检系统

观测云

前端 后端 可观测性 观测云 可观测性用观测云

Apifox IDEA 插件 | 帮助开发者快速生成 API 文档

Apifox

IDEA idea插件 Apifox API文档 idea web

带你动手设计一个高速公路多节点温度采集系统

华为云开发者联盟

云计算 物联网 华为云 企业号 2 月 PK 榜 华为云开发者联盟

佛萨奇2.0智能合约矩阵公排系统开发源代码(可改链)

开发微hkkf5566

线上研讨会报名 | 与龙智、Perforce共探大规模研发中的数字资产管理与版本控制,赢取千元大奖

龙智—DevSecOps解决方案

版本控制 数字资产 游戏开发 芯片开发 数字资产管理

数仓在线运维:如何进行在线增删CN

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

聚焦中国大数据流程挖掘,这场发布会值得关注!

ToB行业头条

【NeurIPS 2022】视频动作识别,AFNet 用更低的成本接收更多数据

Zilliz

代码质量与安全 | 一文了解高级驾驶辅助系统(ADAS)及其开发中需要遵循的标准

龙智—DevSecOps解决方案

静态代码分析 ADAS 汽车软件开发 汽车软件

Atlassian Server用户新选择 | Data Center产品是否适合您的企业?

龙智—DevSecOps解决方案

Server Atlassian Atlassian迁移 Data Center

袋鼠云高教行业数字化转型方案,推进数字化技术和学校教育教学深度融合 | 行业方案

袋鼠云数栈

大数据‘’

为什么推荐一个容器只运行一个进程?

追赶者

k8s 为什么

MQTT QoS 0,1,2介绍

EMQ映云科技

物联网 IoT mqtt QoS 企业号 2 月 PK 榜

JavaScript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

用javascript分类刷leetcode15.链表(图文视频讲解)

js2030code

JavaScript LeetCode

天翼云AI团队夺得ZeroCLUE榜单桂冠

极客天地

Teradata退出中国,您可以相信中国数据库!

墨天轮

数据库 数据仓库 GaussDB gbase8a teradata

在TitanIDE中使用ChatGPT辅助科研开发

行云创新

AI 云端开发 TitanIDE

MQTT持久会话与Clean Session详解

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 持久会话

项目上线后我是如何通过慢查询和索引让系统快起来的

做梦都在改BUG

MySQL 数据库 索引

BSN-DDC基础网络详解(三):注册门户账号和业务开通(1)

BSN研习社

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