LinusTorvalds谈软件开发管理经验
Linus Torvalds说,有两件事,世界上大都数人,无论是独立开发者还是公司级别的开发团队,都有普遍的错误认知。
其一:“大都数人认为可以把事情丢给其他人,让他们帮忙。在你公开你的想法后,你得假设自己一个人要干完全部的活,然后你在网上征求人们的意见,你应该询问自己该干什么,而不是他们该干什么。或许开始他们会偶尔帮助你解决一些实际问题,但是,必须从一开始就告诉自己这份工作只有你一个人负责,并且做好完成它的准备。”
如果你一开始就认为全世界的人们都会联合起来为你的项目工作,一起创造一个更美好的世界,那么你可能不会走得很远。
其二:“人们往往认为自己写的代码是最重要的东西,而事实不是这样。即使你编写了100%的代码;即使你是世界上最好的程序员并且从来不需要任何帮助。然而最重要的东西也不是你写的代码,而是代码的用户。代码本身不重要;只有当用户真正用到它的时候项目才是有用的。之所以提到这一点是因为它不只是一个程序员的问题,我见过一些公司把追求完美的程序当做事情的全部。”
Torvalds就第二个问题上继续展开言论,他说:“这就是为什么Linux内核团队无法容忍这种‘脱离本质’的东西。比如,为了“修复”某个问题而打破原来的用户体验绝对是错误的观点;千万不要这么干。如果你破坏了用户体验,或许你觉得是在修复问题,但你就犯了刚才说到的第二个错误——你以为代码质量比用户重要,大错特错。”
Torvalds最后总结道:“有太多的项目将代码质量置于用户之上,结果两边都不讨好,而且还不肯承认错误,因为他们觉得是在“修复”问题,并且一点都没错。”
关于开发工具的重要性
关于SCM(Software Configuration Management软件配置管理系统 )工具,比如,以Git版本控制系统的问题为例,他回答说:“我不认为工具是最重要的。”
“现在重要的是你的项目是否有一个好的工作流程,工具当然能够启到帮助的作用,”他说,“但是,大多数的项目其实并不是必须要使用这些工具。许多项目其实并没有那么多改动,多到必须要在他们整个工作流程中使用这些工具;如果你在每个release中只有几百个补丁,你可以随便怎么维护他们,完全手动也不是问题。”
当然,Linux就绝对不是同一个层次的了,“对于内核,我们每个release都有成千上万个补丁,而且基本上每三个月就有一个release,所以对我们来说SCM工具就尤其重要了。”他说,“但我仍然不认为这所有大的错误是因为最初几年开发的目标球和补丁,这是一个小得多的项目,而且直到很多年后是因为缺乏管理工具才显现出来。”
他还说,“一些工具积极鼓励工作流程,我认为CVS(Concurrent Versions System并发版本控制系统)”例如已经影响了很多项目,使他们有了一个概念“承诺团体”,
Torvalds继续说,“我个人认为tar-balls和补丁相比他来说要好得多,因为他们使开发者都是“平等”的。而且你不会遇到这种情况:一些开发者有委员权限而其他的人都是二级权限。有时全部人都只有二等权限要比有人有特权要好得多。”(注:Torvalds很熟悉CVS很而且非常讨厌有很多年时间了。就如他在Google Talk 2007所说的,“我讨厌带着许可证的CVS”。)Torvalds还说:“比工具更重要的是人,是维护者和他们的思想。”
如何把大家都保持在正轨上
现在的人们是怎么一起工作的呢?我向Torvalds提问了关于正在实施中的LKML(Linux Kernel Mailing List ,用来将讨论话题转发给各位开发者。)他回答说:“我认为过去在LKML上发生的讨论比现在的多。LKML中的signal-to-noise和纯信息量表明大多数开发者没有时间仔细地去读LKML——最多他们会扫一下标题栏。所以,现在我主张大多数开发者都在独自完成工作,然后他们会在一个大的开发者范围中发送email告之对方是如何完成的”。
“并不是说LKML不重要,而是说LKML已经成为了独立开发者的公共纽带。所以事情最后会变成这样:你其实只有4-5个人一同参与一个讨论,但是LKML会转发并且让其他人有机会能够参加进来,而不是让他成为一个封闭的讨论。”
接下来说说它怎么工作的,“大多数人其实不阅读LKML,他们经常让它自动存档,只对某几个关键词或关键人物参与的话题感兴趣。”它其实有点类似于某种存档机制。人们可以在日后查阅它,而且很多Bug可以通过Google找到LKML中以前报道的记录。如果某人提出了一个问题,它可能只是个别硬件问题,但如果Google后发现在LKML中已经被提交过几次了,那这个问题原因会有点不确定,但必然不是个案。”
“所以我认为LKML非常重要,但我们不是通过它来保持人们走在正轨上的。所有的开发者都非常主动积极,而且他们都有非常好的意见和想法(核心成员之所以是核心成员因为他们的自我定位)。LKML很重要,因为这是公开讨论的,即使实际中参与某些特定问题的只有特定的一小组人。在开源项目中事情就是和其他不一样。”Torvalds总结道。
关于信任,托付和保持清醒
曾经Linux是一个个人项目。现在他有成千上万的提交者和贡献者。接下来我问道:“现在有多少工作你是交付给其他人做的?对于如何分配才能保持人们思路清晰和遵循工作流程你有什么想法?”
“如果我从中学到了什么的话,那就是你必须学会放手,不要试图控制别人和他们的代码。如果你不信任别人,而一定要监视着他们的话,还是早点放弃这个负责人位置吧。”
他说:“是的,我经常会跟别人纠结一些细节,但不是因为我不信任别人或不愿分配给他们权限。而是因为一些小错误最后会闹到我头上。要么是个 Bug(而且都是一些平时忽视的小错误),要么是一些把我弄烦了的工作流程问题(就像今天早些时候我向一个分负责人抱怨开发者的名字显示不正常)。”
Torvalds还说,“你只能偶尔关注一下细节,而不是老是站在开发者后面监视他、检查他写的每一句代码。我相信分负责人做的事99%都是没问题的,然后偶尔我会大声抱怨一些东西。”比如说GNOME桌面系统正在怎么改进,或者根本没有改进。
以上就是全部内容了。这就是Torvalds怎么做的,如果你觉得你比他好,先问问自己:有创造过一个在大多数超级计算机、股票交易和类似于 Google这样的网站上运行的世界级的操作系统吗?如果你的答案是没有,如果我是你,我会重新读一遍他的答案并且好好想想自己是怎么维护项目的。
一个干净代码库的关键并不是什么类型的语言,而是维护这个代码库的人和团队,无论是设计得多么良好的代码库,用了多么先进的编程语言,如果守不住当初的原则,最终的结果就是代码腐化。
第一,C语言虽然是面向过程的语言,但是却可以实现面向对象的各个特性。C不是一个面向对象的语言,但是Linux内核却是一个面向对象的程序,到处都能看到虚函数表,内核甚至有元编程。
第二,越大型的项目越需要优秀的设计,Linux内核由以Linus为首的一大批大牛维护,在这一点上做得非常好。
第三,Linux代码库的厉害之处就在于此,一群非常优秀和有经验的程序员对代码结构和风格做了严格的定义,在Review中坚决执行。
Linus 再次严辞拒绝 Intel CPU 漏洞补丁
2020年6月,Linux 内核项目负责人 Linus Torvalds 拒绝了 AWS 工程师提交的一个补丁,该补丁的目的是减轻 Intel CPU 遭遇一种新型窥探攻击而导致数据泄露的风险。
这种新型攻击名为“探听辅助 L1 数据采样攻击”,简称 Snoop (CVE-2020-0550)。今年 3 月,来自 AWS 的软件工程师 Pawel Wieczorkiewicz 率先发现了 Intel 处理器的这一漏洞,它可能会泄露 CPU 内部存储器或缓存中的数据,涉及 CPU 包括 Intel 旗下流行的 Xeon 和 Core 系列处理器。Pawel 迅速向 Intel 报告了此问题,随后该漏洞被 Intel 定位为中等严重性漏洞。
新的 Snoop 攻击利用了 Intel CPU 多级缓存、缓存一致性和总线监听等特性,通过位于 CPU 内核中的一级数据缓存(L1D),通过“总线监听”(bus snooping)功能 —— 在 L1D 中修改数据时发生的缓存更新操作,将数据从 CPU 中泄漏出来。
以近代 CPU 的视角来说,计算机通常会采用三级缓存的设计来提高 CPU 的运行效率。三级缓存包括 L1 一级缓存、L2 二级缓存、L3 三级缓存,这些缓存都集成在 CPU 内,它们的作用是作为 CPU 与主内存之间的高速数据缓冲区。其中 L1 最靠近 CPU 核心;L2其次;L3再次。运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。在执行一项任务时,CPU 会先在最快的 L1 中寻找需要的数据,找不到再去找次快的 L2,还找不到再去找 L3,L3 都没有才去内存找。
而一级缓存其实还分为一级数据缓存(Data Cache,D-Cache,L1D)和一级指令缓存(Instruction Cache,I-Cache,L1I),分别用于存放数据及执行数据的指令解码,两者可同时被CPU 访问,减少了 CPU 多核心、多线程争用缓存造成的冲突,提高了处理器的性能。一般CPU 的 L1I 和 L1D 具备相同的容量,例如 I7-8700K 的 L1 即为 32KB+32KB。Snoop 攻击就是一种窃取 L1D 缓存中数据的攻击手段。
不过 Intel 的用户也不用惊慌,据 Intel 官方解释说,这种新攻击「很难实施」,并且不会泄露大量数据,毕竟 L1D 缓存中的数据非常有限,并且只有在任务运行时调用数据的短暂时间内才会存在。“我们不认为 Snoop 攻击在可信赖的操作系统环境下是一种实用的攻击方法,因为要利用这一漏洞需要同时满足很多苛刻的条件,比如攻击的时间要正好与用户打开程序的时间吻合,且程序调用的数据正好是攻击者想要窃取的数据。”
该漏洞披露之后,另一位来自 AWS 的软件工程师 Balbir Singh 为 Linux 内核提交了一个补丁,该补丁使 Linux 的应用程序能够选择在任务切换时自动刷新 L1D 的缓存,以降低 Linux 系统遭遇 Snoop 攻击的风险。
Singh 在 4 月份曾解释说:“这个补丁可以防止他们的数据在任务结束后被监听或通过旁道泄露。”他原本打算该补丁可以随 Linux 内核的 5.8 版一起发布。“如果硬件支持,该特性将允许基于可选加入的应用程序调用 prctl() 功能来刷新任务关闭后残留在 CPU 中的 L1D 缓存。” 但知名技术测试网站 Phoronix 指出,在任务结束后刷新 L1D 缓存会导致 CPU 的性能降低。Linux 内核项目负责人 Linus Torvalds 认为,这将导致使用该补丁的所有 Linux 用户(无论是否采用 Intel CPU)的 CPU 性能降低,严正拒绝了该补丁。
Torvalds 在回复该提交的邮件列表中写道:“因为在我看来,这基本上是将缓存刷新指令导出到用户空间,并为进程提供了一种方式,可以说让与这事情无关的其他人也慢了下来。”
“换言之,据我所知,这就是疯狂的 Intel 发布了有缺陷的 CPU,它给虚拟化代码带来了问题(我对此并不太在意),但现在要因为它的问题影响到本来就没有这些问题的 Linux 用户,这是完全没有意义的” 。“我不想某个应用程序跑起来就像在说 ‘哦,我是一个特别的,漂亮的,如此娇嫩的花,我想刷新 L1D 上的每一个任务缓存,无论我在什么 CPU 上,无论它是否有漏洞’。因为这个应用程序不仅会降低自身速度,还会降低其他应用程序的速度。”
在一番非常 Linus 式的回复下,Linus 对虚拟化的引用其实也是针对 AWS 的,AWS 和其他云服务提供商一样,销售的虚拟 cpu 通常启用了同步多线程(simultaneous multithreading,SMT)功能。Linus 接着指出,“在启用 SMT 的情况下,任务调度是分布式进行的,所以说,在任务结束与新任务开始之间刷新 L1D 缓存是非常愚蠢的。”
值得一提的是,AWS 的首席工程师 Benjamin Herrenschmidt 在与 Red Hat Linux 内核贡献者 Ingo Molnar 的讨论中也为该补丁的争论添加了一些背景。Herrenschmidt 承认这个补丁对 SMT 来说毫无意义,但他敦促 Linux 内核开发人员不要“把婴儿和洗澡水一起扔掉”,并反驳了这个补丁是因为 AWS 想把超线程作为虚拟 cpu 出售的说法。Herrenschmidt 说,“这些补丁并不是要解决运行 SMT 的客户 VM 内部出现的问题,也不是要保护 VM 免受同一系统上其他 VM 的攻击。”
事实上,Linus 已经不是第一次严辞拒绝与 Intel CPU 有关的补丁。在 2018 年初,为了修补 Spectre 漏洞,Intel 工程师提供了一个间接分支限制推测(indirect branch restricted speculation, IBRS)功能的补丁。Linus 当时就在邮件列表中公开指出 IBRS 会造成系统性能大幅降低,直言该补丁“就是彻彻底底的垃圾”,“Intel 真的要做这个 X 一样的东西?” 一顿口吐芬芳。而就在上个月,Linus 对自己的私人电脑进行了升级,同时公开了自己最新的主力机器配置,他把自己的 CPU 换成了 AMD Ryzen Threadripper ,放弃使用了 15 年的 Intel 处理器。
Linus Torvalds出席2022开源峰会并发表演讲 对Linux的热情30多年未减
在工作了 30 年后,Linux 之父 Linus Torvalds 依然对这款开源操作操作和未来的创新前景充满了热情。时至今日,Linux 已经成为云计算、边缘、嵌入式和物联网等技术的重要基础,为全球数十亿台设备提供着底层支撑。而从一个开发的贡献者社区,到每 6~10 周更新一轮内核版本,Torvalds 一直肩负着主要的审订职责。

Linus Torvalds 在 2022 开源峰会活动上发言
在今日的开源峰会活动中,Torvalds 与老朋友 Dirk Hohndel(Cardano 基金会首席执行官)再聚首,畅谈了从开源安全到新技术、以及大流行对 Linux 开发的影响。
Torvalds 指出,COVID-19 无疑对 Linux 社区中的许多人产生了负面影响,但情况没有往坏的方向蔓延太久。 在严格防疫的头几个月,Linux 开发者的生产力反而有所提升。毕竟他们已经习惯了电邮沟通,且大多数人都已采取居家办公的方式。其次,过去 15 年里,Linux 内核开发一直保持着相对不变。2005 年的时候,Torvalds 创建了开源的 Git 版本控制系统,以帮助实现更快、更优化的开发方法。
经过数年发展,Git 已经成为了各种开源开发项目的一项主要推动力,并为开源代码托管平台 GitHub 等服务提供着支持。
我们有着一以贯之的流程和发布时间表,从这个意义上来说,Linux 内核开发一直波澜不惊。我们希望有一个稳定的流程,这样大家就不会对所有基础设施的变化感到不安。更重要的是,在为 Linux 工作 30 多年后,尽管开发过程有些乏味、且事态基本上都可预测,Torvalds 还是对内核中不断涌现的新鲜事物感到惊讶和高兴,且其中不乏大量创新。近期 Linux 的一大变化,就是引入使用开源 Rust 编程语言开发的代码。Torvalds 表示 ——“Rust 可能会包含在下一个 Linux 内核版本中”—— 这句话在会上引来了热烈的掌声。
Linux 内核代码主要由 C 语言编写,但 Rust 能够更好地利用和保护计算机的内存资源。不过在初期,Linux 内核仅会以相当有限的方式来试水 Rust 。 Torvalds 向观众提醒道 —— 25 年前,他曾尝试用 C++ 对 Linux 内核加以修复,可惜最终还是以失败告终。 此外对于技术人员想要尝试的一些新奇有趣事物,Torvalds 认为还是悠着点来为好。
然后话题转到了最近大家颇为关注的开源安全上,Linux 基金会旗下的开源软件基金会(OpenSSF)早前表示,他们将话费 1.5 亿美元来保护开源软件的安全。而今早的一篇报道指出,大家对开源的整体安全性仍缺乏足够的信心。对此,Torvalds 并不奢望包括 Linux 内核在内的开源软件都可做到永远 100% 安全且无 Bug 。
错误总是难免,如果它们不在硬件层面上出现,软件层面也有很高的概率发生。 即使你自家软件表现稳妥,其他人的软件也不见得如此。 想要获得充分的保障,唯一可行的就是构建一套安全层。Torvalds 强调,Linux 内核只是整个应用程序堆栈的其中一层。在内核底部,进程的不同部分已具有多层安全性。对于构建整个应用程序堆栈的开发者来说,对战中的每一层都需要有一些概念 —— 如果存在安全漏洞该怎么办?以及在应用程序代码的上下层中存在漏洞的话又该怎么补救?
任何认为自己可以获得 100% 安全性的人们,都生活在其梦想的某个世界中,但现实并不是那样如你所愿的。
Linus Torvalds 谈内核社区 “老龄化” 问题
Linus Torvalds 2023年12月出席了 Linux 基金会的日本开源峰会,并与他的好友、Verizon 开源负责人 Dirk Hohndel 谈及了 Linux 的现状。
两人首先谈到了 Linux 内核版本的迭代。Linus 在飞往东京参会前发布了 Linux 6.7 的第四个候选版本,预计稳定版将在避免大家节假日加班的前提下,在圣诞节前后正式发布。他不想在 "圣诞节前后出现合并窗口,因为这会破坏我的圣诞节"。为了让准备 6.8 版本的维护人员和开发人员放心,合并窗口将推迟一到两周再打开。

就经常被提及的内核维护人员疲态和压力问题,Linus 首先否认了维护者必须是一个 “无所不能的超级开发者” 角色的说法,“要成为一名维护者,你必须有一定的品味来评判其他人的代码。其中一些可能是天生的,但大多数都需要后天的练习。你必须能够审视其他人的代码,并能够判断 ' 这是一个好方法还是一个坏方法?' 而这通常只是一个多年经验的问题。”
Linus 指出,Linux 内核现在确实拥有一些优秀的维护者。但问题在于,大家基本需要保持一个随时在线的工作状态,无法自由的安排假期,除非是可以找到能换班的其他维护者。对 Linus 自己来说,因为热爱所以保持在线不是什么问题,然而并不是所有人都能和他一样。“几个月前,我去度假的时候也带着笔记本电脑。如果没有笔记本电脑,我会觉得很无聊。这就是我的工作。但我意识到,这不是每个人都能过的生活,尤其是当你必须为之付出多年心血的时候。”
事实上,人际关系的处理也是 Linus 需要继续学习的方面。“写代码很容易。因为有确定的正确答案和错误答案。但人际关系很难,要试着与其他开发人员和维护人员一起和谐工作,尤其是当维护人员的工作目标各不相同时...... 这可能会带来很大的压力。”Linus 表示,自己的火爆脾气已经有所收敛。在吸取了一些教训之后,他已经不会再 “对一些公司竖中指” 了。
总的来说,他认为开源不仅仅是编程问题,很多时候也与交流有关。“维护者是翻译者。我指的不一定是语言,我的意思是上下文、代码的原因。这是一项艰巨的工作。但是,如果你想成为一名维护者,相信我,顶层还有空间。”
此外,Linus 还回答了一个 “Linux 内核社区的老龄化” 的问题。Hohndel 指出,如果把目光投向未来五年,很多顶级 Linux 内核人员将开始步入 60 多岁,第一批人员甚至已经接近 70 多岁。对此 Linus 坦承道," 我们中的很多人确实都已经白发苍苍了。但部分原因在于,我们的维护者已经工作了 30 多年。他们仍然存在、仍很活跃,最终仍将与我同在。We have a community where people do stick around"。
Linus 也赞同了 Hohndel 有关内核社区的老化是一把 “双刃剑” 的说法。并以 Rust 举例称:"我喜欢内核 Rust 方面的一点是,有一位维护者明显比大多数维护者年轻得多。我们可以清楚地看到,内核中的某些领域引入了更多的年轻人。例如,在驱动程序方面,你会更容易找到年轻人,而这也是我们培养大量维护者的传统方式,包括 Greg。"
双方还谈到了 Rust 语言在 Linux 内核中的应用。Linus 称:“它一直在增长,但我们还没有任何内核部分真正依赖于 Rust。对我来说,Rust 是具有技术意义的事物之一,但对我个人来说,更重要的是作为内核和开发人员,我们不能停滞不前。”
他透露,2024年将在内核中开始集成驱动程序,甚至一些主要的子系统也将开始积极使用 Rust。并表示想让 Rust 成为内核的重要组成部分,还需数年的时间。“但它肯定会成为内核的一部分”。
正在风头上的人工智能大语言模型(LLM)自然也得到了 Linus 的关注。但 Linus 并不担心 AI 威胁,"很明显,自动化一直在帮助人们编写代码。这根本不是什么新鲜事。"
他反而更希望 AI 工具能提供真正的帮助,譬如识别一些愚蠢且低级的错误。“我们实际上需要加强自动更正功能。我认为 AI 是一种可以帮助我们做得更好的工具。”
而 AI 所存在的幻觉问题在 Linus 的眼中就更不值一提了。他颇带讽刺意味的回答称,"我每天都能看到一些在没有 AI 的情况下所犯的错。所以我才不那么担心。我认为,我们自己犯错误的能力还不错。"
最后,Linus 还表达了自己对开源和开放性的概念被越来越多的人所接受的欣喜。
“我特别喜欢这一事实,因为我还记得三十年前我启动这个项目时的情景,人们会问我:' 为什么?' 人们会说,' 但你怎么赚钱?' 现在,这个问题再也不会出现了。开放已经成为行业的标准。人们理所当然地认为,当你必须开展大型项目时,无论是编程还是数据,最终都会因为项目太大而需要在公司之间共享。”
AI泡沫“病态扭曲、迟早暴跌”、马斯克式KPI、“愚蠢到不该待在科技圈”
2025年12,Linus Torvalds 罕见地出现在 Linus Tech Tips 的一期节目里,与主持人一起,从零组装一台 Linux 研发用机。乍看是装机,但对 Linus 这样的人来说,只要开始回答问题,内容就绝不会只停留在硬件本身。随着对话展开,他对 AI 的态度、对工程师职业的判断、对行业荒诞现象的厌恶,以及对 Linux 世界的许多“老脾气”,都一点点显露出来。把这次对话拆成两条贯穿全文的叙事线:一条是他的技术与世界观,另一条来自装机过程中的细节与吐槽。
在谈到 AI 和生成式 AI 时,Linus 的态度非常清晰:它明显是一场泡沫,但同时也非常有趣,而且围绕它的市场叙事病态到离谱,“又病态又扭曲,最后肯定会迎来一次暴跌,而且会很难看”。 他并不相信“软件工程师要被替代”,因为最终成果一定需要能真正维护系统的人,而不是只会生成代码片段的工具。
当聊到某些企业用“写了多少行代码”当作绩效指标时,他的语气甚至比谈 AI 更直接:这是“纯粹的愚蠢与无能”,而“认为行数等于生产力的人,不配在科技公司工作”。
主持人提醒他说,这套 KPI 来自一位前阵子还在美国政府里担任“提升效率计划”的负责人,也就是马斯克。Linus 的反应只有一句话:“那看来我骂得没错。”
在装机过程中,Linus 也展现了他作为内核之父的另一面:他根本不搞本地存储:“值得保存的东西,我上传到互联网,别人会帮我存。”
内存必须加 ECC?“那次我一度以为内核出了 bug,结果 debug 到最后发现——是因为我没用 ECC。”
发行版碎片化?“多年来一直是 Linux 的巨大劣势,但同时这种‘蛮荒状态’也有优势。”
Ubuntu?“它故意让升级内核变困难,那不是给我这种人准备的。”
“等我哪天成了世界皇帝,那统一发行版就决定是 Fedora。”
在这场访谈里,Linus 几乎把能吐槽的都吐了个遍。下面我们将问答分成了两部分整理成了中文(为方便阅读,我们改变了一些问题的顺序):
主线一:Linus 如何看 Linux、AI 和程序员的未来
Linux 和 Git,谁才是亲儿子
主持人:Linux 和 Git,谁更让你骄傲?
Linus Torvalds: 毫无疑问是 Linux。很多人并不清楚我在 Git 上付出了多少,其实我只做了早期设计。虽然也相当自豪,但我在 Git 身上只花了半年,而作为维护者的 Junio 投入了整整 20 年。
我开发 Git 的唯一原因就是为了 Linux。我真正的孩子是 Linux。Git 是为了让“第一个孩子”更好,而生出来的第二个孩子。比如刚接触 Git 时,我从来没想过要做什么“版本控制系统”,在我心里,那东西跟数据库一样无聊。
主持人:那你为什么爱做操作系统?
Linus Torvalds: 因为好玩,我喜欢硬件和软件的结合。80 年代刚拿到电脑时,编写的任何东西都是直接操作硬件,没有抽象层。
主持人:你曾在自传书里提到过:“如果当时有人把操作系统做好了,我根本不会去搞 Linux。”现在你仍坚持这个判断吗?
Linus Torvalds:是的。如果别人做得比我好,我不会重复造轮子。我只是需要一款操作系统而已。当然,如果不搞操作系统,我也会做其他和硬件贴近的东西。
主持人:如果能从头再做一次 Linux,你会有什么不同的做法?
Linus Torvalds: 这个问题我有两个答案。第一个答案是:如果我一开始就知道这事有多难,我根本不会开始做。要干这种规模的事,你一开始必须“足够天真”。
另一个答案是:我不会改任何东西。因为它一路走得很好,这段经历对我来说也是非常愉快。我这一生非常幸运。我在一家创业公司待了七年,我从来没觉得自己是团队里最聪明的那个人,而且也从来不想当那个人。
主持人:就是说,你希望身边的人都比自己更厉害。
Linus Torvalds: 当然,不然怎么成长呢?
主持人:那你今天为什么还愿意来参加节目?
Linus Torvalds: 有时候,当房间里最聪明的那个人也挺爽的。哈哈,也算顺带嘲讽你一句(笑)。关于许可证的选择,我到现在仍然是 100% 支持当年的决定。我非常喜欢 GPLv2,我认为这个选择在当时是对的,现在依然是对的。
主持人:这个问题是我临时想到的:你有没有想过,其他人依靠 Linux 赚了多少钱?
Linus Torvalds: 我没具体算过,但我对一件事挺自豪:我做过两个项目,它们都催生出了市值以“十亿美元”计的公司。我觉得“十亿”这个说法还是低估了。
主持人:是的,绝对是低估。
Linus Torvalds: 但可以确定的是,人们围绕我做的这两个大项目,构建出了数十亿美元规模的公司。有人会问我:“你看到别人赚这么多钱,会不会觉得不爽?”我会说:“你完全搞反了,这恰恰让我觉得非常高兴,说明我做的事情有价值、有意义。”
微软拿下了 GitHub,你有什么感受?
主持人:现在外界谈到 Git,最大的那个平台反而是被微软收购的 GitHub,这会不会让你觉得有点怪?
Linus Torvalds:从“历史”角度看,确实挺怪的。但从某种意义上说也很有趣。更有趣的是,现在微软靠云业务所赚的钱,可能比靠 Windows 赚得还多。可在我这代人年轻时,微软在我们心里一直是“Windows 巨兽”。而现在微软云的大多数工作负载跑的都是 Linux。从这个意义上讲,我们现在又成了“朋友”。曾经的那点“对立情绪”花了点时间才消退,但现在确实已经过去了,我对此非常高兴。
主持人:但还是要看观察的角度吧。现在 Linux 在游戏领域强势崛起,微软内部、尤其是 Xbox 部门,肯定有人会感觉压力山大、抵触心理爆表。绝对是的。
Linus Torvalds: 我自己不玩游戏,所以看不到那一面。
主持人:你当年也做过几款游戏呀。
Linus Torvalds: 非常糟糕的那种(笑)。但如果你是一个喜欢电脑的少年,你很可能会试着做游戏。
35 年后,Linus 还在乎什么?
主持人:Linux 走向“主流”,对你来说还重要吗?或者你觉得“反正大家在用就行,不用知道背后是 Linux”?
Linus Torvalds: 老实讲,我完全不在乎“主流不主流”这件事。那种“反正你们都在用”对我来说也不是重点。
我非常在乎“有没有用户”——如果一个项目没有用户,那就是毫无意义的。用户的存在会赋予项目意义,尤其是对我做的这些项目来说。但如果你个人不用 Linux,那是你的损失,不是我的问题。只要还有足够多的用户,让我做的事情不是“纯粹的自嗨”,我就很满意了。
主持人:再来个社区问题:有没有那么一刻,你真的想“干脆离开 Linux”?
Linus Torvalds: 没有。从来没有。倒是有很多很多次,我会暂时“走开一下”,跟大家说:我受够了。可能是因为某个技术问题,我连着几天撞墙,或者只是有人把我烦到不行。这种时候我会直接关电脑,去洗个长长的热水澡,拿本书躺着看,因为我知道自己需要离开一下、放松一下。但每一次“走开”,我心里都很清楚:第二天早上,我又会像“新造的人”那样回到桌前。
主持人:我们再深入一点。我的感觉是,当你做的事情非常有“份量”时,其他事情很容易显得无关紧要、甚至无聊。如果有一天你不再觉得自己“对于 Linux 是不可或缺的”,那你会不会感觉很难接受?
Linus Torvalds: 我希望不会。我绝对不想成为那种“死死扒着不肯放手”的人。我一直说,如果有更合适的人出现,我会让位。我也真心希望自己届时做得到这一点。
主持人:你刚才说过“暂时离开 Linux”,那如果你哪天就这么……“没了”,Linux 会怎样?
Linus Torvalds: 这问题的问法真奇怪。
主持人:这真是社区发来的问题。换种更具体的问法,也可以是“如果你被公交车撞了怎么办”。
Linus Torvalds: 潜台词就是我挂掉了?
主持人:对,社区的原话是:“如果你就这么死了呢?”
Linus Torvalds: 我们的开发社区非常健康,而且健康得有点夸张:大部分开源项目可能就两三个人参与,好一点的项目有十来个人。我们每个版本发布都有上千人参与,而且我们每九到十周就发一次新版本。如果我突然中风了,或者我回程路上飞机失事了,其实并不会有什么影响。
AI、Vibe Coding 与“泡沫一定会很难看”
主持人:咱们再来聊聊 AI 和生成式 AI:它到底是泡沫,还是一次计算革命?
Linus Torvalds: 显然“二者皆是”。
它明显是一场泡沫,但同时也非常有趣,我认为它会改变社会,也会改变大多数需要专业技能的工作方式。
主持人:但我不觉得它有些人吹得那么“颠覆性”。比如说 AI 在编程领域的角色,尤其是所谓的“氛围编程”。还有一个问题是:AI 用的是现实世界无数艺术家和程序员的成果,艺术圈很多人很愤怒,说“没有大规模的作品挪用,这些模型什么都做不出来”。你怎么看?
Linus Torvalds: 我会说:这就是现实,最好快点接受。潘多拉的魔盒已经被打开了。无论你是失业的摄影师,因为现在几乎什么图都能直接生成,还是程序员,都必须学会适应新的现实——没法回头了。
在编程这边,我觉得我们反而处在一个相对不错的位置。我真心相信 AI 会成为一种工具,会让人更高效。
主持人:我觉得氛围编程非常适合“入门编程”,但它会带来一堆极其难以维护的代码。
Linus Torvalds: 对,这点我非常赞同。
主持人:所以我觉得程序员不会消失。我们仍然需要那些懂得如何维护最终成果的人。
Linus Torvalds: 我对 AI 本身非常看好,但对围绕 AI 的“那一整套市场和营销叙事”完全不看好。我觉得现在这套东西又病态又扭曲,最后肯定会迎来一次暴跌,而且会很难看。
你现在还经常写代码吗?
主持人:根据维基百科 2006 年的估计,你写的代码曾占 Linux 内核的 2% 左右。
Linus Torvalds: 是的。
主持人:那你觉得现在大概是多少?
Linus Torvalds: 最早版本的 Linux 也就一万多行代码。之后我肯定还写了一些,但这几十年已经有成千上万的人参与开发了。我现在基本不写成规模的代码,只偶尔写些片段,通过邮件发给别人作为“差不多像这样”的示例,要求其他贡献者帮我写成正式版本,测试好以后再发回来。
主持人:这也算是咱们俩的共同点:都爱发写了一半的邮件,让别人干完剩下的活。
Linus Torvalds: 没错,我就是这样的汉子。
千万不要把“代码行数”当成任何重要指标。比如我们那边有几百万行的硬件描述代码,其实都是从 AMD 用来设计显卡的硬件描述文件生成出来的。
更重要的不是“行数”,而是真正能用的代码。
主持人:前不久有一家大厂,被爆出用“开发者写了多少行代码”作为绩效指标,写得不够多的人就被裁掉。很多人对这种衡量方式极度愤怒。
Linus Torvalds: 不用愤怒,那种程度已经不是“值得愤怒”,而是纯粹的愚蠢加无能。凡是觉得“行数”是有效生产力指标的家伙,他太笨了,他们的智商就不配在科技企业工作。
主持人:你知道咱们刚才在骂的是谁吗?
Linus Torvalds: 不知道。
主持人:他前阵子还在美国政府里担任“提升效率计划”的负责人呢。
Linus Torvalds: 看来我骂得一点没错了。
生活工作平衡
主持人:你之前刚出差回来,像你这种工作性质,一年要出差多少次?
Linus Torvalds: 提这个问题的人显然搞错了一个前提:这不是“主动出差”,而是“被迫出差”。
有一年我算了一下自己在外面待了多少天,结果发现那年我在家以外的地方待的天数超过了一半。于是我下定决心:再也不要这样了。这大概是三十年前的事,那时我还住在芬兰。我不喜欢为工作出差。现在好一点的是,我至少坐商务舱,洲际航班可以平躺睡觉,这样勉强可以忍。但差旅依旧谈不上“好玩”。
主持人:社区这边还有个问题:你平时会怎么放松?
Linus Torvalds: 我现在看书比以前少了,但还是以看书为主。还有像这样设计一些没什么用的小玩意儿,因为没有必须要做成的压力,所以对我来说也是放松。
我其实不觉得自己生活有多大压力。
主持人:那你觉得这是不是“心态”的问题?毕竟你也提到过,随着用户基数变大,你是感受过压力上升的。
Linus Torvalds: 一部分在于心态,但另一部分是我们把整个工作流打磨得“几乎完美”了。内核这套工作流我们已经用 20 年了,不只是 Git,而是连同发布节奏、周边流程整套下来。所以当明确了事情是怎么运转的,一切都相对可预期,那就不会有太大的意外、也不会太有压力。
技术上的问题同样不怎么让我焦虑,因为技术问题是可以修的,而我们非常擅长修复技术问题。对我来说,真正的压力来源通常是“人”。我本来就不算是那种“很会跟人打交道”的人,而人是复杂的,你没法像修 Bug 那样轻易“修好一个人”。
主持人:你用 iPhone 还是 Android?这跟 Linux 会有“哲学上的关联”吗?
Linus Torvalds: 多少有一点。但现实也很简单:有一阵子我会不断收到别人寄来的免费手机,各种厂商都寄给我试用。但苹果从来没给我寄过一台 iPhone,不知道为什么。所以我一直用 Android。
这一点上,我们倒是和很多人“出奇一致”:苹果似乎对我们都不太关心(笑)。
主线二:为 Linux 之父装一台 PC
除了技术与情怀,还有另一条同样精彩的线索:一台专为 Linux 之父量身定制的台式机,是怎样被组装出来的?
CPU:24核只是“刚好够用”,不是炫技

图 1:Threadripper 9960X
这次的 CPU 是 AMD Threadripper 9960X——24 核、48 线程。多数人会以为 Linus 需要这么多核心,是为了“写邮件更快”。但他自己笑着纠正:“我更多是用它来看邮件,不是写邮件……但我确实会有一些高负载需求,比如编译内核。我几乎不写代码了,但我每天要合并别人提交的内核代码。每一次合并,我都要把整个内核连同所有模块完整编译一遍。所以我需要性能足够强的 CPU。”
但他明确拒绝“堆到极限配置”:“我不想要最顶配,我要的是安静、稳定、可靠。”
这也是整台机器的灵魂:性能重要,但稳定性永远优先。
主板 + 内存:ECC是“不可谈判”的要求

图 2:TRX 50+ECC 内存条
在主板规格的所有优先级里,Linus 只有一个绝对红线:必须支持 ECC(Error Checking and Correction)。
“我完全不理解为什么有人不追求 ECC。你必须能够信任自己的机器。没有 ECC,内存迟早会出错,这不是'会不会',而是'什么时候'的问题。”
他讲过一段“职业级恐怖故事”:某次他因为买不到 ECC,只能临时上普通内存。两年后开始出现随机 segmentation fault,他甚至怀疑是 Linux 内核 bug,连续几天埋头 debug,最后才发现罪魁祸首竟是——内存。
“对我来说,这不是‘游戏崩了重启一下’。我写的是全球数百万人依赖的软件,我必须确认错误来源不是我的机器。我甚至相信很多 Windows 蓝屏,根本不是 OS bug,是硬件不靠谱造成的。特别是玩家还爱超频,那更是雪上加霜。”
存储:不用NAS、不归档、不囤片
上次他的机器有 4TB 存储,实际只用了几百 MB(Linux 镜像也就几百 MB)。因为他的数据存储策略很简单:“我几乎不保存任何东西。值得保存的东西,我上传到互联网,别人会帮我存。”
即便是爱电影的人,他也完全不自建本地存储:“大家现在都用流媒体嘛。”
散热:Noctua风冷比水冷更“可信赖”

图:Noctua NH-U12S
散热部分,LTT 给他选的是 Noctua NH-U12S TR5-SP6 风扇。Linus 没有异议,因为他有两个原则:不想听见电脑声音、不信任水冷的长期稳定性。
“我对水冷确实兴趣不大,主要是因为我觉得水冷一方面可靠性可能不如风冷,另一方面很多人会遇到那种“咕噜咕噜”的水声,我觉得那种声音比稳定呼呼转的风扇背景声更烦人。”
更狠的是,他见过水冷的“真·事故”:“有人整个水冷系统长绿藻,也见过整排服务器机架被漏液浇透。看过一次就很难再信任它了。”
机箱:Fractal Torrent 的“北欧风”

图:Fractal Torrent 正面双巨风扇
机箱选的是 Fractal Torrent,两颗 180mm 巨型进风扇 + 大面积网格前面板。Linus 看一眼就点头:“前面有一层网,说明灰不会直接进机箱。这很好。”
在这里,他突然开始聊宠物:猫、狗、老鼠、仓鼠、鱼都养过。他直言自己甚至不太把猫和狗当“宠物”,更像是家人。还说老鼠是“社交能力最强的家庭成员”,唯一缺点是只活三年,让女儿太伤心。
“老鼠特别好玩。最大的问题是它们只能活三年左右,这对我女儿来说太残酷了。她说:‘再也不要养了。’因为它们生命太短,但又非常依恋人、非常社交,很会跟人建立连接,是非常可爱的动物。”
电源:比显卡更重要
电源是 Prime TX 1600W——对这台机器而言几乎是“严重超配”。但理由很简单:高效、安静、不容易坏。1600W 满载下风扇几乎不转——理想中的“几乎无声”配置。电源真的很重要。它可能不是电脑里最性感的部件,但真的很关键。
显卡:不用Radeon,不用NVIDIA
这次显卡选择让所有人意外——不是传统“Linux 友好组合” Radeon,也不是 AI 时代霸主 NVIDIA,而是 Intel Arc。他避免去解释原因,但一说到“英伟达在推动 AI 这事上表现确实不错”,Linus 立刻比了个搓手指的“钱”手势:“其实厂商一直都很在意钱从哪儿来。”
安装Linux:选Fedora,是因为“它最懂内核开发者”
最后一步是安装系统。Linus 没有犹豫:“我用 Fedora,因为它和内核开发者关系最紧密。”
他毫不避讳吐槽 Ubuntu:“Ubuntu 很早以前就想做“面向消费者”的发行版,我很多年前试过一次,结果发现他们居然会把“升级内核”这件事刻意搞得很不方便,因为那不是他们想服务的人群。所以我当时就想:好吧,这显然不适合我,这是它的目标受众决定的。”
至于那些极客向发行版:“那类发行版会让你“自己编译一切”,从工具链到桌面环境,统统自己编译。而这同样不适合我,因为除了内核,我对其他东西兴趣不大。我只想自己编译内核,其它东西我希望“装上就能跑”。我只想要一个“装好就行”的发行版,然后自己把内核换掉就行。”
关于 Linux 有“一大堆发行版”,他也很现实:“我觉得碎片化这件事,多年来一直是 Linux 的巨大劣势。作为商业软件开发者,你面对的不是统一的目标平台,而是一大堆不同平台,这显然会拖慢事情的进展。
但同时,这种“蛮荒状态”也有优势。开源社区在这种环境下其实运转得挺好,只是它不适合所有人。我认为所有主流发行版都非常清楚这是个问题,他们也都“想要一个更统一的发行版生态”。但问题是:每一家都希望“那个统一标准由他们家来定”。
所以只要有人问:“我要装一台 Linux 电脑,应该选哪个发行版?”——你几乎找不到两个人会给出同一个答案,讨论立刻就会变成掐架。这也是开源世界的“传统”:我们以前还会为“哪个编辑器更好”吵架,现在倒是吵得不多了,但你总有些话题很容易成为导火索。”
最后,他补刀到:“等我哪天成了世界皇帝,那统一发行版就决定是 Fedora。”
其一:“大都数人认为可以把事情丢给其他人,让他们帮忙。在你公开你的想法后,你得假设自己一个人要干完全部的活,然后你在网上征求人们的意见,你应该询问自己该干什么,而不是他们该干什么。或许开始他们会偶尔帮助你解决一些实际问题,但是,必须从一开始就告诉自己这份工作只有你一个人负责,并且做好完成它的准备。”
如果你一开始就认为全世界的人们都会联合起来为你的项目工作,一起创造一个更美好的世界,那么你可能不会走得很远。
其二:“人们往往认为自己写的代码是最重要的东西,而事实不是这样。即使你编写了100%的代码;即使你是世界上最好的程序员并且从来不需要任何帮助。然而最重要的东西也不是你写的代码,而是代码的用户。代码本身不重要;只有当用户真正用到它的时候项目才是有用的。之所以提到这一点是因为它不只是一个程序员的问题,我见过一些公司把追求完美的程序当做事情的全部。”
Torvalds就第二个问题上继续展开言论,他说:“这就是为什么Linux内核团队无法容忍这种‘脱离本质’的东西。比如,为了“修复”某个问题而打破原来的用户体验绝对是错误的观点;千万不要这么干。如果你破坏了用户体验,或许你觉得是在修复问题,但你就犯了刚才说到的第二个错误——你以为代码质量比用户重要,大错特错。”
Torvalds最后总结道:“有太多的项目将代码质量置于用户之上,结果两边都不讨好,而且还不肯承认错误,因为他们觉得是在“修复”问题,并且一点都没错。”
关于开发工具的重要性
关于SCM(Software Configuration Management软件配置管理系统 )工具,比如,以Git版本控制系统的问题为例,他回答说:“我不认为工具是最重要的。”
“现在重要的是你的项目是否有一个好的工作流程,工具当然能够启到帮助的作用,”他说,“但是,大多数的项目其实并不是必须要使用这些工具。许多项目其实并没有那么多改动,多到必须要在他们整个工作流程中使用这些工具;如果你在每个release中只有几百个补丁,你可以随便怎么维护他们,完全手动也不是问题。”
当然,Linux就绝对不是同一个层次的了,“对于内核,我们每个release都有成千上万个补丁,而且基本上每三个月就有一个release,所以对我们来说SCM工具就尤其重要了。”他说,“但我仍然不认为这所有大的错误是因为最初几年开发的目标球和补丁,这是一个小得多的项目,而且直到很多年后是因为缺乏管理工具才显现出来。”
他还说,“一些工具积极鼓励工作流程,我认为CVS(Concurrent Versions System并发版本控制系统)”例如已经影响了很多项目,使他们有了一个概念“承诺团体”,
Torvalds继续说,“我个人认为tar-balls和补丁相比他来说要好得多,因为他们使开发者都是“平等”的。而且你不会遇到这种情况:一些开发者有委员权限而其他的人都是二级权限。有时全部人都只有二等权限要比有人有特权要好得多。”(注:Torvalds很熟悉CVS很而且非常讨厌有很多年时间了。就如他在Google Talk 2007所说的,“我讨厌带着许可证的CVS”。)Torvalds还说:“比工具更重要的是人,是维护者和他们的思想。”
如何把大家都保持在正轨上
现在的人们是怎么一起工作的呢?我向Torvalds提问了关于正在实施中的LKML(Linux Kernel Mailing List ,用来将讨论话题转发给各位开发者。)他回答说:“我认为过去在LKML上发生的讨论比现在的多。LKML中的signal-to-noise和纯信息量表明大多数开发者没有时间仔细地去读LKML——最多他们会扫一下标题栏。所以,现在我主张大多数开发者都在独自完成工作,然后他们会在一个大的开发者范围中发送email告之对方是如何完成的”。
“并不是说LKML不重要,而是说LKML已经成为了独立开发者的公共纽带。所以事情最后会变成这样:你其实只有4-5个人一同参与一个讨论,但是LKML会转发并且让其他人有机会能够参加进来,而不是让他成为一个封闭的讨论。”
接下来说说它怎么工作的,“大多数人其实不阅读LKML,他们经常让它自动存档,只对某几个关键词或关键人物参与的话题感兴趣。”它其实有点类似于某种存档机制。人们可以在日后查阅它,而且很多Bug可以通过Google找到LKML中以前报道的记录。如果某人提出了一个问题,它可能只是个别硬件问题,但如果Google后发现在LKML中已经被提交过几次了,那这个问题原因会有点不确定,但必然不是个案。”
“所以我认为LKML非常重要,但我们不是通过它来保持人们走在正轨上的。所有的开发者都非常主动积极,而且他们都有非常好的意见和想法(核心成员之所以是核心成员因为他们的自我定位)。LKML很重要,因为这是公开讨论的,即使实际中参与某些特定问题的只有特定的一小组人。在开源项目中事情就是和其他不一样。”Torvalds总结道。
关于信任,托付和保持清醒
曾经Linux是一个个人项目。现在他有成千上万的提交者和贡献者。接下来我问道:“现在有多少工作你是交付给其他人做的?对于如何分配才能保持人们思路清晰和遵循工作流程你有什么想法?”
“如果我从中学到了什么的话,那就是你必须学会放手,不要试图控制别人和他们的代码。如果你不信任别人,而一定要监视着他们的话,还是早点放弃这个负责人位置吧。”
他说:“是的,我经常会跟别人纠结一些细节,但不是因为我不信任别人或不愿分配给他们权限。而是因为一些小错误最后会闹到我头上。要么是个 Bug(而且都是一些平时忽视的小错误),要么是一些把我弄烦了的工作流程问题(就像今天早些时候我向一个分负责人抱怨开发者的名字显示不正常)。”
Torvalds还说,“你只能偶尔关注一下细节,而不是老是站在开发者后面监视他、检查他写的每一句代码。我相信分负责人做的事99%都是没问题的,然后偶尔我会大声抱怨一些东西。”比如说GNOME桌面系统正在怎么改进,或者根本没有改进。
以上就是全部内容了。这就是Torvalds怎么做的,如果你觉得你比他好,先问问自己:有创造过一个在大多数超级计算机、股票交易和类似于 Google这样的网站上运行的世界级的操作系统吗?如果你的答案是没有,如果我是你,我会重新读一遍他的答案并且好好想想自己是怎么维护项目的。
一个干净代码库的关键并不是什么类型的语言,而是维护这个代码库的人和团队,无论是设计得多么良好的代码库,用了多么先进的编程语言,如果守不住当初的原则,最终的结果就是代码腐化。
第一,C语言虽然是面向过程的语言,但是却可以实现面向对象的各个特性。C不是一个面向对象的语言,但是Linux内核却是一个面向对象的程序,到处都能看到虚函数表,内核甚至有元编程。
第二,越大型的项目越需要优秀的设计,Linux内核由以Linus为首的一大批大牛维护,在这一点上做得非常好。
第三,Linux代码库的厉害之处就在于此,一群非常优秀和有经验的程序员对代码结构和风格做了严格的定义,在Review中坚决执行。
Linus 再次严辞拒绝 Intel CPU 漏洞补丁
2020年6月,Linux 内核项目负责人 Linus Torvalds 拒绝了 AWS 工程师提交的一个补丁,该补丁的目的是减轻 Intel CPU 遭遇一种新型窥探攻击而导致数据泄露的风险。
这种新型攻击名为“探听辅助 L1 数据采样攻击”,简称 Snoop (CVE-2020-0550)。今年 3 月,来自 AWS 的软件工程师 Pawel Wieczorkiewicz 率先发现了 Intel 处理器的这一漏洞,它可能会泄露 CPU 内部存储器或缓存中的数据,涉及 CPU 包括 Intel 旗下流行的 Xeon 和 Core 系列处理器。Pawel 迅速向 Intel 报告了此问题,随后该漏洞被 Intel 定位为中等严重性漏洞。
新的 Snoop 攻击利用了 Intel CPU 多级缓存、缓存一致性和总线监听等特性,通过位于 CPU 内核中的一级数据缓存(L1D),通过“总线监听”(bus snooping)功能 —— 在 L1D 中修改数据时发生的缓存更新操作,将数据从 CPU 中泄漏出来。
以近代 CPU 的视角来说,计算机通常会采用三级缓存的设计来提高 CPU 的运行效率。三级缓存包括 L1 一级缓存、L2 二级缓存、L3 三级缓存,这些缓存都集成在 CPU 内,它们的作用是作为 CPU 与主内存之间的高速数据缓冲区。其中 L1 最靠近 CPU 核心;L2其次;L3再次。运行速度方面:L1最快、L2次快、L3最慢;容量大小方面:L1最小、L2较大、L3最大。在执行一项任务时,CPU 会先在最快的 L1 中寻找需要的数据,找不到再去找次快的 L2,还找不到再去找 L3,L3 都没有才去内存找。
而一级缓存其实还分为一级数据缓存(Data Cache,D-Cache,L1D)和一级指令缓存(Instruction Cache,I-Cache,L1I),分别用于存放数据及执行数据的指令解码,两者可同时被CPU 访问,减少了 CPU 多核心、多线程争用缓存造成的冲突,提高了处理器的性能。一般CPU 的 L1I 和 L1D 具备相同的容量,例如 I7-8700K 的 L1 即为 32KB+32KB。Snoop 攻击就是一种窃取 L1D 缓存中数据的攻击手段。
不过 Intel 的用户也不用惊慌,据 Intel 官方解释说,这种新攻击「很难实施」,并且不会泄露大量数据,毕竟 L1D 缓存中的数据非常有限,并且只有在任务运行时调用数据的短暂时间内才会存在。“我们不认为 Snoop 攻击在可信赖的操作系统环境下是一种实用的攻击方法,因为要利用这一漏洞需要同时满足很多苛刻的条件,比如攻击的时间要正好与用户打开程序的时间吻合,且程序调用的数据正好是攻击者想要窃取的数据。”
该漏洞披露之后,另一位来自 AWS 的软件工程师 Balbir Singh 为 Linux 内核提交了一个补丁,该补丁使 Linux 的应用程序能够选择在任务切换时自动刷新 L1D 的缓存,以降低 Linux 系统遭遇 Snoop 攻击的风险。
Singh 在 4 月份曾解释说:“这个补丁可以防止他们的数据在任务结束后被监听或通过旁道泄露。”他原本打算该补丁可以随 Linux 内核的 5.8 版一起发布。“如果硬件支持,该特性将允许基于可选加入的应用程序调用 prctl() 功能来刷新任务关闭后残留在 CPU 中的 L1D 缓存。” 但知名技术测试网站 Phoronix 指出,在任务结束后刷新 L1D 缓存会导致 CPU 的性能降低。Linux 内核项目负责人 Linus Torvalds 认为,这将导致使用该补丁的所有 Linux 用户(无论是否采用 Intel CPU)的 CPU 性能降低,严正拒绝了该补丁。
Torvalds 在回复该提交的邮件列表中写道:“因为在我看来,这基本上是将缓存刷新指令导出到用户空间,并为进程提供了一种方式,可以说让与这事情无关的其他人也慢了下来。”
“换言之,据我所知,这就是疯狂的 Intel 发布了有缺陷的 CPU,它给虚拟化代码带来了问题(我对此并不太在意),但现在要因为它的问题影响到本来就没有这些问题的 Linux 用户,这是完全没有意义的” 。“我不想某个应用程序跑起来就像在说 ‘哦,我是一个特别的,漂亮的,如此娇嫩的花,我想刷新 L1D 上的每一个任务缓存,无论我在什么 CPU 上,无论它是否有漏洞’。因为这个应用程序不仅会降低自身速度,还会降低其他应用程序的速度。”
在一番非常 Linus 式的回复下,Linus 对虚拟化的引用其实也是针对 AWS 的,AWS 和其他云服务提供商一样,销售的虚拟 cpu 通常启用了同步多线程(simultaneous multithreading,SMT)功能。Linus 接着指出,“在启用 SMT 的情况下,任务调度是分布式进行的,所以说,在任务结束与新任务开始之间刷新 L1D 缓存是非常愚蠢的。”
值得一提的是,AWS 的首席工程师 Benjamin Herrenschmidt 在与 Red Hat Linux 内核贡献者 Ingo Molnar 的讨论中也为该补丁的争论添加了一些背景。Herrenschmidt 承认这个补丁对 SMT 来说毫无意义,但他敦促 Linux 内核开发人员不要“把婴儿和洗澡水一起扔掉”,并反驳了这个补丁是因为 AWS 想把超线程作为虚拟 cpu 出售的说法。Herrenschmidt 说,“这些补丁并不是要解决运行 SMT 的客户 VM 内部出现的问题,也不是要保护 VM 免受同一系统上其他 VM 的攻击。”
事实上,Linus 已经不是第一次严辞拒绝与 Intel CPU 有关的补丁。在 2018 年初,为了修补 Spectre 漏洞,Intel 工程师提供了一个间接分支限制推测(indirect branch restricted speculation, IBRS)功能的补丁。Linus 当时就在邮件列表中公开指出 IBRS 会造成系统性能大幅降低,直言该补丁“就是彻彻底底的垃圾”,“Intel 真的要做这个 X 一样的东西?” 一顿口吐芬芳。而就在上个月,Linus 对自己的私人电脑进行了升级,同时公开了自己最新的主力机器配置,他把自己的 CPU 换成了 AMD Ryzen Threadripper ,放弃使用了 15 年的 Intel 处理器。
Linus Torvalds出席2022开源峰会并发表演讲 对Linux的热情30多年未减
在工作了 30 年后,Linux 之父 Linus Torvalds 依然对这款开源操作操作和未来的创新前景充满了热情。时至今日,Linux 已经成为云计算、边缘、嵌入式和物联网等技术的重要基础,为全球数十亿台设备提供着底层支撑。而从一个开发的贡献者社区,到每 6~10 周更新一轮内核版本,Torvalds 一直肩负着主要的审订职责。

Linus Torvalds 在 2022 开源峰会活动上发言
在今日的开源峰会活动中,Torvalds 与老朋友 Dirk Hohndel(Cardano 基金会首席执行官)再聚首,畅谈了从开源安全到新技术、以及大流行对 Linux 开发的影响。
Torvalds 指出,COVID-19 无疑对 Linux 社区中的许多人产生了负面影响,但情况没有往坏的方向蔓延太久。 在严格防疫的头几个月,Linux 开发者的生产力反而有所提升。毕竟他们已经习惯了电邮沟通,且大多数人都已采取居家办公的方式。其次,过去 15 年里,Linux 内核开发一直保持着相对不变。2005 年的时候,Torvalds 创建了开源的 Git 版本控制系统,以帮助实现更快、更优化的开发方法。
经过数年发展,Git 已经成为了各种开源开发项目的一项主要推动力,并为开源代码托管平台 GitHub 等服务提供着支持。
我们有着一以贯之的流程和发布时间表,从这个意义上来说,Linux 内核开发一直波澜不惊。我们希望有一个稳定的流程,这样大家就不会对所有基础设施的变化感到不安。更重要的是,在为 Linux 工作 30 多年后,尽管开发过程有些乏味、且事态基本上都可预测,Torvalds 还是对内核中不断涌现的新鲜事物感到惊讶和高兴,且其中不乏大量创新。近期 Linux 的一大变化,就是引入使用开源 Rust 编程语言开发的代码。Torvalds 表示 ——“Rust 可能会包含在下一个 Linux 内核版本中”—— 这句话在会上引来了热烈的掌声。
Linux 内核代码主要由 C 语言编写,但 Rust 能够更好地利用和保护计算机的内存资源。不过在初期,Linux 内核仅会以相当有限的方式来试水 Rust 。 Torvalds 向观众提醒道 —— 25 年前,他曾尝试用 C++ 对 Linux 内核加以修复,可惜最终还是以失败告终。 此外对于技术人员想要尝试的一些新奇有趣事物,Torvalds 认为还是悠着点来为好。
然后话题转到了最近大家颇为关注的开源安全上,Linux 基金会旗下的开源软件基金会(OpenSSF)早前表示,他们将话费 1.5 亿美元来保护开源软件的安全。而今早的一篇报道指出,大家对开源的整体安全性仍缺乏足够的信心。对此,Torvalds 并不奢望包括 Linux 内核在内的开源软件都可做到永远 100% 安全且无 Bug 。
错误总是难免,如果它们不在硬件层面上出现,软件层面也有很高的概率发生。 即使你自家软件表现稳妥,其他人的软件也不见得如此。 想要获得充分的保障,唯一可行的就是构建一套安全层。Torvalds 强调,Linux 内核只是整个应用程序堆栈的其中一层。在内核底部,进程的不同部分已具有多层安全性。对于构建整个应用程序堆栈的开发者来说,对战中的每一层都需要有一些概念 —— 如果存在安全漏洞该怎么办?以及在应用程序代码的上下层中存在漏洞的话又该怎么补救?
任何认为自己可以获得 100% 安全性的人们,都生活在其梦想的某个世界中,但现实并不是那样如你所愿的。
Linus Torvalds 谈内核社区 “老龄化” 问题
Linus Torvalds 2023年12月出席了 Linux 基金会的日本开源峰会,并与他的好友、Verizon 开源负责人 Dirk Hohndel 谈及了 Linux 的现状。
两人首先谈到了 Linux 内核版本的迭代。Linus 在飞往东京参会前发布了 Linux 6.7 的第四个候选版本,预计稳定版将在避免大家节假日加班的前提下,在圣诞节前后正式发布。他不想在 "圣诞节前后出现合并窗口,因为这会破坏我的圣诞节"。为了让准备 6.8 版本的维护人员和开发人员放心,合并窗口将推迟一到两周再打开。

就经常被提及的内核维护人员疲态和压力问题,Linus 首先否认了维护者必须是一个 “无所不能的超级开发者” 角色的说法,“要成为一名维护者,你必须有一定的品味来评判其他人的代码。其中一些可能是天生的,但大多数都需要后天的练习。你必须能够审视其他人的代码,并能够判断 ' 这是一个好方法还是一个坏方法?' 而这通常只是一个多年经验的问题。”
Linus 指出,Linux 内核现在确实拥有一些优秀的维护者。但问题在于,大家基本需要保持一个随时在线的工作状态,无法自由的安排假期,除非是可以找到能换班的其他维护者。对 Linus 自己来说,因为热爱所以保持在线不是什么问题,然而并不是所有人都能和他一样。“几个月前,我去度假的时候也带着笔记本电脑。如果没有笔记本电脑,我会觉得很无聊。这就是我的工作。但我意识到,这不是每个人都能过的生活,尤其是当你必须为之付出多年心血的时候。”
事实上,人际关系的处理也是 Linus 需要继续学习的方面。“写代码很容易。因为有确定的正确答案和错误答案。但人际关系很难,要试着与其他开发人员和维护人员一起和谐工作,尤其是当维护人员的工作目标各不相同时...... 这可能会带来很大的压力。”Linus 表示,自己的火爆脾气已经有所收敛。在吸取了一些教训之后,他已经不会再 “对一些公司竖中指” 了。
总的来说,他认为开源不仅仅是编程问题,很多时候也与交流有关。“维护者是翻译者。我指的不一定是语言,我的意思是上下文、代码的原因。这是一项艰巨的工作。但是,如果你想成为一名维护者,相信我,顶层还有空间。”
此外,Linus 还回答了一个 “Linux 内核社区的老龄化” 的问题。Hohndel 指出,如果把目光投向未来五年,很多顶级 Linux 内核人员将开始步入 60 多岁,第一批人员甚至已经接近 70 多岁。对此 Linus 坦承道," 我们中的很多人确实都已经白发苍苍了。但部分原因在于,我们的维护者已经工作了 30 多年。他们仍然存在、仍很活跃,最终仍将与我同在。We have a community where people do stick around"。
Linus 也赞同了 Hohndel 有关内核社区的老化是一把 “双刃剑” 的说法。并以 Rust 举例称:"我喜欢内核 Rust 方面的一点是,有一位维护者明显比大多数维护者年轻得多。我们可以清楚地看到,内核中的某些领域引入了更多的年轻人。例如,在驱动程序方面,你会更容易找到年轻人,而这也是我们培养大量维护者的传统方式,包括 Greg。"
双方还谈到了 Rust 语言在 Linux 内核中的应用。Linus 称:“它一直在增长,但我们还没有任何内核部分真正依赖于 Rust。对我来说,Rust 是具有技术意义的事物之一,但对我个人来说,更重要的是作为内核和开发人员,我们不能停滞不前。”
他透露,2024年将在内核中开始集成驱动程序,甚至一些主要的子系统也将开始积极使用 Rust。并表示想让 Rust 成为内核的重要组成部分,还需数年的时间。“但它肯定会成为内核的一部分”。
正在风头上的人工智能大语言模型(LLM)自然也得到了 Linus 的关注。但 Linus 并不担心 AI 威胁,"很明显,自动化一直在帮助人们编写代码。这根本不是什么新鲜事。"
他反而更希望 AI 工具能提供真正的帮助,譬如识别一些愚蠢且低级的错误。“我们实际上需要加强自动更正功能。我认为 AI 是一种可以帮助我们做得更好的工具。”
而 AI 所存在的幻觉问题在 Linus 的眼中就更不值一提了。他颇带讽刺意味的回答称,"我每天都能看到一些在没有 AI 的情况下所犯的错。所以我才不那么担心。我认为,我们自己犯错误的能力还不错。"
最后,Linus 还表达了自己对开源和开放性的概念被越来越多的人所接受的欣喜。
“我特别喜欢这一事实,因为我还记得三十年前我启动这个项目时的情景,人们会问我:' 为什么?' 人们会说,' 但你怎么赚钱?' 现在,这个问题再也不会出现了。开放已经成为行业的标准。人们理所当然地认为,当你必须开展大型项目时,无论是编程还是数据,最终都会因为项目太大而需要在公司之间共享。”
AI泡沫“病态扭曲、迟早暴跌”、马斯克式KPI、“愚蠢到不该待在科技圈”
2025年12,Linus Torvalds 罕见地出现在 Linus Tech Tips 的一期节目里,与主持人一起,从零组装一台 Linux 研发用机。乍看是装机,但对 Linus 这样的人来说,只要开始回答问题,内容就绝不会只停留在硬件本身。随着对话展开,他对 AI 的态度、对工程师职业的判断、对行业荒诞现象的厌恶,以及对 Linux 世界的许多“老脾气”,都一点点显露出来。把这次对话拆成两条贯穿全文的叙事线:一条是他的技术与世界观,另一条来自装机过程中的细节与吐槽。
在谈到 AI 和生成式 AI 时,Linus 的态度非常清晰:它明显是一场泡沫,但同时也非常有趣,而且围绕它的市场叙事病态到离谱,“又病态又扭曲,最后肯定会迎来一次暴跌,而且会很难看”。 他并不相信“软件工程师要被替代”,因为最终成果一定需要能真正维护系统的人,而不是只会生成代码片段的工具。
当聊到某些企业用“写了多少行代码”当作绩效指标时,他的语气甚至比谈 AI 更直接:这是“纯粹的愚蠢与无能”,而“认为行数等于生产力的人,不配在科技公司工作”。
主持人提醒他说,这套 KPI 来自一位前阵子还在美国政府里担任“提升效率计划”的负责人,也就是马斯克。Linus 的反应只有一句话:“那看来我骂得没错。”
在装机过程中,Linus 也展现了他作为内核之父的另一面:他根本不搞本地存储:“值得保存的东西,我上传到互联网,别人会帮我存。”
内存必须加 ECC?“那次我一度以为内核出了 bug,结果 debug 到最后发现——是因为我没用 ECC。”
发行版碎片化?“多年来一直是 Linux 的巨大劣势,但同时这种‘蛮荒状态’也有优势。”
Ubuntu?“它故意让升级内核变困难,那不是给我这种人准备的。”
“等我哪天成了世界皇帝,那统一发行版就决定是 Fedora。”
在这场访谈里,Linus 几乎把能吐槽的都吐了个遍。下面我们将问答分成了两部分整理成了中文(为方便阅读,我们改变了一些问题的顺序):
主线一:Linus 如何看 Linux、AI 和程序员的未来
Linux 和 Git,谁才是亲儿子
主持人:Linux 和 Git,谁更让你骄傲?
Linus Torvalds: 毫无疑问是 Linux。很多人并不清楚我在 Git 上付出了多少,其实我只做了早期设计。虽然也相当自豪,但我在 Git 身上只花了半年,而作为维护者的 Junio 投入了整整 20 年。
我开发 Git 的唯一原因就是为了 Linux。我真正的孩子是 Linux。Git 是为了让“第一个孩子”更好,而生出来的第二个孩子。比如刚接触 Git 时,我从来没想过要做什么“版本控制系统”,在我心里,那东西跟数据库一样无聊。
主持人:那你为什么爱做操作系统?
Linus Torvalds: 因为好玩,我喜欢硬件和软件的结合。80 年代刚拿到电脑时,编写的任何东西都是直接操作硬件,没有抽象层。
主持人:你曾在自传书里提到过:“如果当时有人把操作系统做好了,我根本不会去搞 Linux。”现在你仍坚持这个判断吗?
Linus Torvalds:是的。如果别人做得比我好,我不会重复造轮子。我只是需要一款操作系统而已。当然,如果不搞操作系统,我也会做其他和硬件贴近的东西。
主持人:如果能从头再做一次 Linux,你会有什么不同的做法?
Linus Torvalds: 这个问题我有两个答案。第一个答案是:如果我一开始就知道这事有多难,我根本不会开始做。要干这种规模的事,你一开始必须“足够天真”。
另一个答案是:我不会改任何东西。因为它一路走得很好,这段经历对我来说也是非常愉快。我这一生非常幸运。我在一家创业公司待了七年,我从来没觉得自己是团队里最聪明的那个人,而且也从来不想当那个人。
主持人:就是说,你希望身边的人都比自己更厉害。
Linus Torvalds: 当然,不然怎么成长呢?
主持人:那你今天为什么还愿意来参加节目?
Linus Torvalds: 有时候,当房间里最聪明的那个人也挺爽的。哈哈,也算顺带嘲讽你一句(笑)。关于许可证的选择,我到现在仍然是 100% 支持当年的决定。我非常喜欢 GPLv2,我认为这个选择在当时是对的,现在依然是对的。
主持人:这个问题是我临时想到的:你有没有想过,其他人依靠 Linux 赚了多少钱?
Linus Torvalds: 我没具体算过,但我对一件事挺自豪:我做过两个项目,它们都催生出了市值以“十亿美元”计的公司。我觉得“十亿”这个说法还是低估了。
主持人:是的,绝对是低估。
Linus Torvalds: 但可以确定的是,人们围绕我做的这两个大项目,构建出了数十亿美元规模的公司。有人会问我:“你看到别人赚这么多钱,会不会觉得不爽?”我会说:“你完全搞反了,这恰恰让我觉得非常高兴,说明我做的事情有价值、有意义。”
微软拿下了 GitHub,你有什么感受?
主持人:现在外界谈到 Git,最大的那个平台反而是被微软收购的 GitHub,这会不会让你觉得有点怪?
Linus Torvalds:从“历史”角度看,确实挺怪的。但从某种意义上说也很有趣。更有趣的是,现在微软靠云业务所赚的钱,可能比靠 Windows 赚得还多。可在我这代人年轻时,微软在我们心里一直是“Windows 巨兽”。而现在微软云的大多数工作负载跑的都是 Linux。从这个意义上讲,我们现在又成了“朋友”。曾经的那点“对立情绪”花了点时间才消退,但现在确实已经过去了,我对此非常高兴。
主持人:但还是要看观察的角度吧。现在 Linux 在游戏领域强势崛起,微软内部、尤其是 Xbox 部门,肯定有人会感觉压力山大、抵触心理爆表。绝对是的。
Linus Torvalds: 我自己不玩游戏,所以看不到那一面。
主持人:你当年也做过几款游戏呀。
Linus Torvalds: 非常糟糕的那种(笑)。但如果你是一个喜欢电脑的少年,你很可能会试着做游戏。
35 年后,Linus 还在乎什么?
主持人:Linux 走向“主流”,对你来说还重要吗?或者你觉得“反正大家在用就行,不用知道背后是 Linux”?
Linus Torvalds: 老实讲,我完全不在乎“主流不主流”这件事。那种“反正你们都在用”对我来说也不是重点。
我非常在乎“有没有用户”——如果一个项目没有用户,那就是毫无意义的。用户的存在会赋予项目意义,尤其是对我做的这些项目来说。但如果你个人不用 Linux,那是你的损失,不是我的问题。只要还有足够多的用户,让我做的事情不是“纯粹的自嗨”,我就很满意了。
主持人:再来个社区问题:有没有那么一刻,你真的想“干脆离开 Linux”?
Linus Torvalds: 没有。从来没有。倒是有很多很多次,我会暂时“走开一下”,跟大家说:我受够了。可能是因为某个技术问题,我连着几天撞墙,或者只是有人把我烦到不行。这种时候我会直接关电脑,去洗个长长的热水澡,拿本书躺着看,因为我知道自己需要离开一下、放松一下。但每一次“走开”,我心里都很清楚:第二天早上,我又会像“新造的人”那样回到桌前。
主持人:我们再深入一点。我的感觉是,当你做的事情非常有“份量”时,其他事情很容易显得无关紧要、甚至无聊。如果有一天你不再觉得自己“对于 Linux 是不可或缺的”,那你会不会感觉很难接受?
Linus Torvalds: 我希望不会。我绝对不想成为那种“死死扒着不肯放手”的人。我一直说,如果有更合适的人出现,我会让位。我也真心希望自己届时做得到这一点。
主持人:你刚才说过“暂时离开 Linux”,那如果你哪天就这么……“没了”,Linux 会怎样?
Linus Torvalds: 这问题的问法真奇怪。
主持人:这真是社区发来的问题。换种更具体的问法,也可以是“如果你被公交车撞了怎么办”。
Linus Torvalds: 潜台词就是我挂掉了?
主持人:对,社区的原话是:“如果你就这么死了呢?”
Linus Torvalds: 我们的开发社区非常健康,而且健康得有点夸张:大部分开源项目可能就两三个人参与,好一点的项目有十来个人。我们每个版本发布都有上千人参与,而且我们每九到十周就发一次新版本。如果我突然中风了,或者我回程路上飞机失事了,其实并不会有什么影响。
AI、Vibe Coding 与“泡沫一定会很难看”
主持人:咱们再来聊聊 AI 和生成式 AI:它到底是泡沫,还是一次计算革命?
Linus Torvalds: 显然“二者皆是”。
它明显是一场泡沫,但同时也非常有趣,我认为它会改变社会,也会改变大多数需要专业技能的工作方式。
主持人:但我不觉得它有些人吹得那么“颠覆性”。比如说 AI 在编程领域的角色,尤其是所谓的“氛围编程”。还有一个问题是:AI 用的是现实世界无数艺术家和程序员的成果,艺术圈很多人很愤怒,说“没有大规模的作品挪用,这些模型什么都做不出来”。你怎么看?
Linus Torvalds: 我会说:这就是现实,最好快点接受。潘多拉的魔盒已经被打开了。无论你是失业的摄影师,因为现在几乎什么图都能直接生成,还是程序员,都必须学会适应新的现实——没法回头了。
在编程这边,我觉得我们反而处在一个相对不错的位置。我真心相信 AI 会成为一种工具,会让人更高效。
主持人:我觉得氛围编程非常适合“入门编程”,但它会带来一堆极其难以维护的代码。
Linus Torvalds: 对,这点我非常赞同。
主持人:所以我觉得程序员不会消失。我们仍然需要那些懂得如何维护最终成果的人。
Linus Torvalds: 我对 AI 本身非常看好,但对围绕 AI 的“那一整套市场和营销叙事”完全不看好。我觉得现在这套东西又病态又扭曲,最后肯定会迎来一次暴跌,而且会很难看。
你现在还经常写代码吗?
主持人:根据维基百科 2006 年的估计,你写的代码曾占 Linux 内核的 2% 左右。
Linus Torvalds: 是的。
主持人:那你觉得现在大概是多少?
Linus Torvalds: 最早版本的 Linux 也就一万多行代码。之后我肯定还写了一些,但这几十年已经有成千上万的人参与开发了。我现在基本不写成规模的代码,只偶尔写些片段,通过邮件发给别人作为“差不多像这样”的示例,要求其他贡献者帮我写成正式版本,测试好以后再发回来。
主持人:这也算是咱们俩的共同点:都爱发写了一半的邮件,让别人干完剩下的活。
Linus Torvalds: 没错,我就是这样的汉子。
千万不要把“代码行数”当成任何重要指标。比如我们那边有几百万行的硬件描述代码,其实都是从 AMD 用来设计显卡的硬件描述文件生成出来的。
更重要的不是“行数”,而是真正能用的代码。
主持人:前不久有一家大厂,被爆出用“开发者写了多少行代码”作为绩效指标,写得不够多的人就被裁掉。很多人对这种衡量方式极度愤怒。
Linus Torvalds: 不用愤怒,那种程度已经不是“值得愤怒”,而是纯粹的愚蠢加无能。凡是觉得“行数”是有效生产力指标的家伙,他太笨了,他们的智商就不配在科技企业工作。
主持人:你知道咱们刚才在骂的是谁吗?
Linus Torvalds: 不知道。
主持人:他前阵子还在美国政府里担任“提升效率计划”的负责人呢。
Linus Torvalds: 看来我骂得一点没错了。
生活工作平衡
主持人:你之前刚出差回来,像你这种工作性质,一年要出差多少次?
Linus Torvalds: 提这个问题的人显然搞错了一个前提:这不是“主动出差”,而是“被迫出差”。
有一年我算了一下自己在外面待了多少天,结果发现那年我在家以外的地方待的天数超过了一半。于是我下定决心:再也不要这样了。这大概是三十年前的事,那时我还住在芬兰。我不喜欢为工作出差。现在好一点的是,我至少坐商务舱,洲际航班可以平躺睡觉,这样勉强可以忍。但差旅依旧谈不上“好玩”。
主持人:社区这边还有个问题:你平时会怎么放松?
Linus Torvalds: 我现在看书比以前少了,但还是以看书为主。还有像这样设计一些没什么用的小玩意儿,因为没有必须要做成的压力,所以对我来说也是放松。
我其实不觉得自己生活有多大压力。
主持人:那你觉得这是不是“心态”的问题?毕竟你也提到过,随着用户基数变大,你是感受过压力上升的。
Linus Torvalds: 一部分在于心态,但另一部分是我们把整个工作流打磨得“几乎完美”了。内核这套工作流我们已经用 20 年了,不只是 Git,而是连同发布节奏、周边流程整套下来。所以当明确了事情是怎么运转的,一切都相对可预期,那就不会有太大的意外、也不会太有压力。
技术上的问题同样不怎么让我焦虑,因为技术问题是可以修的,而我们非常擅长修复技术问题。对我来说,真正的压力来源通常是“人”。我本来就不算是那种“很会跟人打交道”的人,而人是复杂的,你没法像修 Bug 那样轻易“修好一个人”。
主持人:你用 iPhone 还是 Android?这跟 Linux 会有“哲学上的关联”吗?
Linus Torvalds: 多少有一点。但现实也很简单:有一阵子我会不断收到别人寄来的免费手机,各种厂商都寄给我试用。但苹果从来没给我寄过一台 iPhone,不知道为什么。所以我一直用 Android。
这一点上,我们倒是和很多人“出奇一致”:苹果似乎对我们都不太关心(笑)。
主线二:为 Linux 之父装一台 PC
除了技术与情怀,还有另一条同样精彩的线索:一台专为 Linux 之父量身定制的台式机,是怎样被组装出来的?
CPU:24核只是“刚好够用”,不是炫技

图 1:Threadripper 9960X
这次的 CPU 是 AMD Threadripper 9960X——24 核、48 线程。多数人会以为 Linus 需要这么多核心,是为了“写邮件更快”。但他自己笑着纠正:“我更多是用它来看邮件,不是写邮件……但我确实会有一些高负载需求,比如编译内核。我几乎不写代码了,但我每天要合并别人提交的内核代码。每一次合并,我都要把整个内核连同所有模块完整编译一遍。所以我需要性能足够强的 CPU。”
但他明确拒绝“堆到极限配置”:“我不想要最顶配,我要的是安静、稳定、可靠。”
这也是整台机器的灵魂:性能重要,但稳定性永远优先。
主板 + 内存:ECC是“不可谈判”的要求

图 2:TRX 50+ECC 内存条
在主板规格的所有优先级里,Linus 只有一个绝对红线:必须支持 ECC(Error Checking and Correction)。
“我完全不理解为什么有人不追求 ECC。你必须能够信任自己的机器。没有 ECC,内存迟早会出错,这不是'会不会',而是'什么时候'的问题。”
他讲过一段“职业级恐怖故事”:某次他因为买不到 ECC,只能临时上普通内存。两年后开始出现随机 segmentation fault,他甚至怀疑是 Linux 内核 bug,连续几天埋头 debug,最后才发现罪魁祸首竟是——内存。
“对我来说,这不是‘游戏崩了重启一下’。我写的是全球数百万人依赖的软件,我必须确认错误来源不是我的机器。我甚至相信很多 Windows 蓝屏,根本不是 OS bug,是硬件不靠谱造成的。特别是玩家还爱超频,那更是雪上加霜。”
存储:不用NAS、不归档、不囤片
上次他的机器有 4TB 存储,实际只用了几百 MB(Linux 镜像也就几百 MB)。因为他的数据存储策略很简单:“我几乎不保存任何东西。值得保存的东西,我上传到互联网,别人会帮我存。”
即便是爱电影的人,他也完全不自建本地存储:“大家现在都用流媒体嘛。”
散热:Noctua风冷比水冷更“可信赖”

图:Noctua NH-U12S
散热部分,LTT 给他选的是 Noctua NH-U12S TR5-SP6 风扇。Linus 没有异议,因为他有两个原则:不想听见电脑声音、不信任水冷的长期稳定性。
“我对水冷确实兴趣不大,主要是因为我觉得水冷一方面可靠性可能不如风冷,另一方面很多人会遇到那种“咕噜咕噜”的水声,我觉得那种声音比稳定呼呼转的风扇背景声更烦人。”
更狠的是,他见过水冷的“真·事故”:“有人整个水冷系统长绿藻,也见过整排服务器机架被漏液浇透。看过一次就很难再信任它了。”
机箱:Fractal Torrent 的“北欧风”

图:Fractal Torrent 正面双巨风扇
机箱选的是 Fractal Torrent,两颗 180mm 巨型进风扇 + 大面积网格前面板。Linus 看一眼就点头:“前面有一层网,说明灰不会直接进机箱。这很好。”
在这里,他突然开始聊宠物:猫、狗、老鼠、仓鼠、鱼都养过。他直言自己甚至不太把猫和狗当“宠物”,更像是家人。还说老鼠是“社交能力最强的家庭成员”,唯一缺点是只活三年,让女儿太伤心。
“老鼠特别好玩。最大的问题是它们只能活三年左右,这对我女儿来说太残酷了。她说:‘再也不要养了。’因为它们生命太短,但又非常依恋人、非常社交,很会跟人建立连接,是非常可爱的动物。”
电源:比显卡更重要
电源是 Prime TX 1600W——对这台机器而言几乎是“严重超配”。但理由很简单:高效、安静、不容易坏。1600W 满载下风扇几乎不转——理想中的“几乎无声”配置。电源真的很重要。它可能不是电脑里最性感的部件,但真的很关键。
显卡:不用Radeon,不用NVIDIA
这次显卡选择让所有人意外——不是传统“Linux 友好组合” Radeon,也不是 AI 时代霸主 NVIDIA,而是 Intel Arc。他避免去解释原因,但一说到“英伟达在推动 AI 这事上表现确实不错”,Linus 立刻比了个搓手指的“钱”手势:“其实厂商一直都很在意钱从哪儿来。”
安装Linux:选Fedora,是因为“它最懂内核开发者”
最后一步是安装系统。Linus 没有犹豫:“我用 Fedora,因为它和内核开发者关系最紧密。”
他毫不避讳吐槽 Ubuntu:“Ubuntu 很早以前就想做“面向消费者”的发行版,我很多年前试过一次,结果发现他们居然会把“升级内核”这件事刻意搞得很不方便,因为那不是他们想服务的人群。所以我当时就想:好吧,这显然不适合我,这是它的目标受众决定的。”
至于那些极客向发行版:“那类发行版会让你“自己编译一切”,从工具链到桌面环境,统统自己编译。而这同样不适合我,因为除了内核,我对其他东西兴趣不大。我只想自己编译内核,其它东西我希望“装上就能跑”。我只想要一个“装好就行”的发行版,然后自己把内核换掉就行。”
关于 Linux 有“一大堆发行版”,他也很现实:“我觉得碎片化这件事,多年来一直是 Linux 的巨大劣势。作为商业软件开发者,你面对的不是统一的目标平台,而是一大堆不同平台,这显然会拖慢事情的进展。
但同时,这种“蛮荒状态”也有优势。开源社区在这种环境下其实运转得挺好,只是它不适合所有人。我认为所有主流发行版都非常清楚这是个问题,他们也都“想要一个更统一的发行版生态”。但问题是:每一家都希望“那个统一标准由他们家来定”。
所以只要有人问:“我要装一台 Linux 电脑,应该选哪个发行版?”——你几乎找不到两个人会给出同一个答案,讨论立刻就会变成掐架。这也是开源世界的“传统”:我们以前还会为“哪个编辑器更好”吵架,现在倒是吵得不多了,但你总有些话题很容易成为导火索。”
最后,他补刀到:“等我哪天成了世界皇帝,那统一发行版就决定是 Fedora。”