
整理 | 屠敏出品 | CSDNIDCSDNnews“对于 AI我有一种爱恨交织的复杂情感。”近日在北美开源峰会上Linux、Git 的创建者 Linus Torvalds 与 Verizon 开源项目办公室负责人 Dirk Hohndel 进行了他们的第 30 次公开对谈https://www.youtube.com/watch?vfi29pfLcW4It2s。谈及 AI 时Linus 给出了这样一个颇为耐人寻味的评价。在 Linus 看来过去二十多年里Linux 内核社区形成了一套成熟且稳定的开发和维护流程。然而大约从半年前开始情况发生了变化——“最近两个版本的 commit 数比过去几年增加了约 20%。起初我以为大家是对 7.0 版本感到兴奋但事实证明我错了。”他发现变化的源头是 AI。AI 涌入 Linux 项目后一方面帮助大家发现过去难以察觉的问题另一方面大量由 AI 生成的重复性漏洞报告开始“压垮”维护者。而对于当下火热的 AI 编程浪潮Linus 依旧保持着一贯的犀利风格“如果你炫耀 99% 的代码是 AI 写的那我敢打赌你 100% 的代码其实都是编译器写的。”那么在这位开源世界最著名的“代码守门人”眼中AI 究竟改变了什么又没有改变什么在这场对谈中Linus 不仅分享了 AI 给 Linux 社区带来的真实影响还谈到了漏洞披露规则、AI 编程、开源项目维护、给年轻开发者的建议以及自己的业余爱好等话题。他坦言AI 发现 Bug 是一件好事但整个开源社区仍需要时间去适应这种全新的工作方式。Linus 的业余爱好“我将改变音乐世界”Dirk Hohndel大家早上好我参与 Linux、开源以及其他很多领域已经很长时间了。我总是很珍惜能有机会和这位老友聊天。Linus Torvalds是的我是 Linus。我已经很久不参加正式的公开演讲了这就是为什么我们一直保持这种问答QA或“炉边谈话”形式的原因。Dirk Hohndel这实际上是我们的第 30 次对话了所以今天我们要庆祝一下我们的小小周年纪念。让我们先聊点不一样的。我知道你是 3D 打印的忠实粉丝巧合的是我们拥有同款 3D 打印机。在这个技术领域基本上所有东西都是开源的包括整个软件栈。我们使用的工具通常也是开源的。我从你那里了解到我们都不喜欢可视化工具而是更喜欢实际编写程序代码的工具。所以关于 OpenSCAD用于建立实体 3D 物件的开源软件你实际参与过它的代码贡献吗还是仅仅作为一名使用者Linus Torvalds我只是个使用者。不少偏理智的人可能会使用那些带图形界面的可视化工具能直观看到自己在做什么。但当你像我一样有编程背景时我更喜欢用文本描述事物将 3D 打印视为一种编程。确实所有的相关软件都是开源的。但与此同时这对我来说也是一种消遣方式我可以接触到物理实体。不过这显然不是我的日常工作。在写代码时我喜欢这种能极其贴近硬件并在不同层面上工作的感觉。我会使用这些开源工具但从未想过要加入那些项目的开发因为那和我熟悉的代码领域太不一样。Dirk Hohndel对我来说最有意思的地方在于每当我觉得某个东西不好用想亲手把它改好时我都会去看看它的代码。结果往往是发现自己根本不知道该从哪里下手。但这恰恰是一个很好的学习过程。它会不断提醒我这个世界上还有无数我不了解的领域而这些领域里依然有很多人在做着有趣的事情。另外一个很有意思的变化是过去很长一段时间里人们总觉得开源软件功能强大但体验粗糙而闭源软件则更加精致。但现在情况已经不同了。如今很多开源软件的界面和用户体验都非常出色我也非常认可它们的质量。以 3D 建模软件为例一些开源产品已经达到了行业领先水平。Linus Torvalds我认为我们已经走过了那个“开源只属于工程师”的时代。看看现在有多少人在游戏领域讨论 Linux 就知道了。当然我不会说今年就是“Linux 桌面元年”——这个玩笑我从 1998 年就开始跟媒体讲了。但我确实认为在商业软件和各种严肃应用场景中开源早已获得广泛认可。我的观点一直没变软件本身极其复杂而管理复杂基础设施最有效的方式就是开源。因为开源能够让任何人都有参与的机会。当然大多数人其实并不想参与开发就像我使用 3D 打印软件时也不会主动去贡献代码一样。但开源的价值就在于无论你来自哪家公司、哪个国家只要你愿意参与机会始终在那里。Dirk Hohndel我们经常谈论你的非主流项目。我长期以来一直在开玩笑说Linus 不止做了两个项目大家常说的是 Linux 和 Git其实他做了三个。Linux、Git 和 Subsurface一个潜水日志程序目前由我维护。但事实证明就在几周前Linus 做了第四个项目。Linus 的 GitHub 上有一个“吉他踏板Guitar Pedal”项目你甚至可以自己动手做一个吉他音效踏板。Linus Torvalds先别急着玩在你开始玩之前你得先把它制造出来。所有的制造文件也都是开源的。所以你可以选择把设计文件发送给你喜欢的 PCB 制造商。你可以尝试手动放置组件但我建议你不要这样做因为那非常细碎。我最开始是手动做的但后来我决定对于更高级的项目你确实需要让专业人士为你放置组件。如果你喜欢吉他踏板或音乐并想要一个真的很酷的吉他踏板你可以自己做一个。它附带硬件和软件设计文件。Dirk Hohndel我是预览版的测试者之一效果真的很不错。它的地址是 github.com/torvalds/guitar-pedal去看看吧。Linus Torvalds我也将改变音乐世界。我很确定。Dirk Hohndel我也对此深信不疑。CSDN 6 月宠粉福利开发者“神装”补给站200 小时 GPU 算力免费领瑞幸咖啡/肯德基早餐/下午茶等能量套餐任选其一入群还可每月定期抽取旗舰显卡、AI PC 等极客神装领取地址https://s.csdn.cn/4nPsOp提交量暴涨 20%原以为 7.0 吸引了大家才发现是 AI 闯入 LinuxDirk Hohndel不久前你发布了 Linux 内核 7.1-rc4。按照惯例问一下现在进展如何Linus Torvalds我常说我们在过去 20 年里一直做着同样的事情。我个人做了 35 年但自从切换到 Git 并建立现代发布流程后这个过程已经稳定运行了 20 年。过去我总说一切顺利、进展平稳。但大约半年前情况发生了变化。在过去的六个月里我们看到了大量的 commits全是微小的细节。从数据上看最近两个版本的提交量比过去几年增加了约 20%。起初我以为大家是对 7.0 版本感到兴奋我会定期更改主版本号但事实证明我错了。真正的改变在于 AI 工具。AI 工具已经足够好用了以至于我们看到各方面的开发活跃度都有了明显提升。Dirk Hohndel六个月前我们在东京谈过这个这些工具实际上降低了初始门槛降低了编写 Linux 内核补丁的入门难度。这些工具承担了很大一部分工作这确实产生了影响。而且这种影响不全是正面的。在 rc4 的发布公告中你宣布了新的安全披露指南其中特别提到了对 AI 的看法。Linus Torvalds现场有多少人使用 AI 来辅助编程看来几乎所有人都在用。对于 AI我有一种爱恨交织的复杂情感。从技术角度看我非常喜欢这些工具觉得它们非常有用且有趣。但它确实也带来了一些痛点。在 Linux 乃至大多数项目中最大的痛点不在于代码本身而在于当它强迫你改变工作方式时。人们习惯了原有的节奏知道自己喜欢怎么工作。我大约在 2000 年左右不得不改变我的工作方式因为随着 Linux 的成长我个人已经无法再维持原来的管理规模了。那是我在内核开发中最痛苦的经历之一那是 25 年前的事了。我认为我们现在在 AI 身上也看到了类似的影响它迫使人们走出舒适区。AI 生成的错误报告和代码带来了一些社会性问题。这不单纯是“Linus 的管理规模”问题而是人们整体无法应对这种规模的增长。学会如何以负责任的方式、以能与社区和其他开发者协作的方式使用工具这都需要时间。我们最近遇到的一个痛点是安全邮件列表。当人们用 AI 发现 Bug 时很多时候这些 Bug 确实可能是安全问题。几十年来我一直说安全 Bug 就是 Bug但硬币的另一面是Bug 往往也意味着安全隐患你甚至可能还没意识到这一点。人们觉得用 AI 发现了一个 Bug第一反应就是发给安全列表。结果内核的安全列表被成百上千的人用同样的 AI 工具生成的重复报告给淹没了。结果往往指向同一个潜在原因但我们却被这些报告轰炸了。而那个列表的参与者很少因为它本应是高度保密的我们把所有时间都花在了把这些报告转发给更了解相关领域的开发者上。所以我们做出了政策调整基本上如果你是用 AI 发现的 Bug请直接将其视为公开信息。因为如果你能用 AI 发现它另外 100 个人也能用 AI 发现它。当然对于真正的安全问题你可能不想把漏洞利用方法公之于众。不要成为那种在周五下午公开炫耀“看我可以搞垮这家大公司”的人。告诉大家问题是什么但没必要教大家如何让别人过得很惨。所以我们在 AI 方面确实遇到了一些痛点。这并不是技术本身不好我很喜欢这项技术但它引发的社会问题还有待解决。Dirk Hohndel我认为“社会问题”是关键。这种趋势已经存在很久了我不确定 Heartbleed 漏洞是不是第一个但有些公司就喜欢给 Bug 贴标签、做 Logo、创建域名想以此出名。然后他们在与维护者沟通之前就将其公开。最近 Linux 内核有四个本地提权漏洞其中两个就是以这种方式披露的。我的回应总是我永远不想和这样的公司合作因为你对 Linux 这么干你就会对所有人这么干。但这四个 Bug 确实带出了你刚才谈到的挑战在内核开发者了解这些漏洞与全世界了解它们之间时间差是零分钟。所以你根本没有机会去修复它没有机会准备补丁没有机会帮助那些运行代码的人。所以你说你希望所有 AI 发现的 Bug 都公开。我理解其中的逻辑但你能进一步解释一下这如何避免维护者总是处于被动地位吗Linus Torvalds遗憾的是我认为我们无法回避这一点。内核有大约 3500 万行代码代码量巨大。这意味着每天都可能会有 Bug 发生这并不奇怪。过去我们修复 Bug 时可能不会详细说明它的安全影响只告诉大家“已修复请升级”大多数人并不会意识到发生了什么。但在 AI 时代自动化分析变得极其简单。上周我们修了一个 Bug三小时内就有博客文章分析了它的安全影响。安全人员喜欢关注度这是他们的成名之道。所以人们会竞相运行 AI 工具并发布惊人的公告。这就是现实。但这并不意味着我们不该做开源。如果你认为 AI 不能对闭源软件进行逆向工程那你就错了。我认为闭源软件的情况甚至更糟因为 AI 无法帮你修复问题但 AI 绝对能帮你找到那些漏洞。Dirk Hohndel你刚才提到了一点非常重要。我注意到最近几周出现了一些大张旗鼓的漏洞披露。一些公司愿意花费大量资源去指出某个 Bug但奇怪的是尽管涉及的都是开源代码这些披露往往没有附带修复补丁。这又回到了社会责任感的问题。为了在媒体和记者面前获得关注而发现一个 Bug却不愿意进一步推动修复工作我觉得这多少有些令人遗憾。Linus Torvalds公平地说有时候发现 Bug 确实比修复 Bug 更容易。不要误会。虽然这听起来可能有些消极但实际上我认为从整体来看这是一件好事。AI 能够发现源代码中的 Bug短期内确实会带来一些阵痛但从长远来看这些 Bug 被发现、被修复之后软件最终会变得更好。所以我对这件事总体上是乐观的。我想再次强调问题不在于 AI 本身不好而在于任何新工具出现时都会带来一些社会层面的阵痛。我们已经积累了 35 年的代码如今 AI 发现了一些过去没有发现的问题我们需要时间去消化和处理这些新发现。总之找出的 Bug 越多软件就越安全真正的麻烦是那些你还没发现的漏洞。AI 给维护者带来的压力Dirk Hohndel我们刚才在后台聊到了 AI 给维护者带来的影响。维护者本来就面临着“职业倦怠”的问题如今 AI 生成的错误报告洪流更是雪上加霜。在代码审查、理解补丁等工作上有没有什么 AI 工具能够帮助维护者减轻负担Linus Torvalds我们确实使用了大量自动化工具其中也包括 AI。不过我想先指出一点Linux 内核目前运行得很好。每次版本发布都有超过 1000 人参与贡献我们拥有一批非常可靠的维护者而且他们中的大多数都能通过这份工作获得不错的报酬。但想想看GitHub 上有数以亿计的仓库还有成千上万个形形色色的项目。有些项目可能只是某个人维护了十几年的“心头好”整个团队可能只有一到三个人。当这些维护者遭遇 AI 生成的报告洪流时确实很容易被压垮。尤其是当你试图向报告提交者追问更多信息时对方却像“打一枪换一个地方”一样消失了甚至根本不回复你的问题。真正的倦怠风险恰恰存在于这些地方。至于我个人我主要是在和人打交道。作为最上层的维护者我其实已经不写太多代码了。只有在一些自己感兴趣的项目上比如吉他踏板或者 Subsurface我才会亲自写代码。我的工作更多是管理人而不是管理代码。我也不建议大家用 AI 去管理人与人之间的关系。当然我们确实拥有不少优秀的自动化工具。比如 Google 开发的 Syzkaller 补丁测试系统它会自动检查邮件列表中的补丁。虽然它的反馈有时并不完美但确实能够发现很多问题。现在许多核心开发者也会在本地运行 AI。我建议大家也去尝试不要完全受制于大公司。对于初入职场的开发者有什么样的建议Dirk Hohndel你刚才提到了“成千上万的小项目”这暴露了你的年龄。本周 GitHub 宣布他们现在有 4.8 亿个存储库。最近的一项研究显示其中有 60 万个项目被认为对企业用户至关重要。这个规模已经大到难以想象。接下来我们聊聊社会问题和人的协作对于那些正处于职业生涯初期的人现在很多人在唱衰说代码都会被 AI 来完成。而另一方面也有像 Jim Zemlin 那样乐观的人认为我们在科技行业创造了更多就业机会。你对初入职场的人有什么建议他们应该关注什么Linus Torvalds我的观点一直是AI 是一个伟大的工具但它仅仅也只是一个工具而已。当我听到有人炫耀说“我们 99% 的代码都是 AI 写的”时我会很生气。因为这些人中我敢保证他们从来不会说自己“100% 的代码其实都是编译器写的”。但这其实是一回事。我成长于编写机器代码的年代。我说的机器代码不是汇编语言而是实际的数字。那会在你脑海中留下印记我到现在还记得 6502 处理器上的 LDA 的操作码是十六进制的 A9。后来我意识到亲手写数字并计算分支偏移量挺傻的于是有人发明了汇编器。再后来我发现编译器也很好。现在我发现 AI 工具也不错。我依然在写代码只是不再像以前那样通过 Data 语句输入数字了。我百分之百确信AI 正在改变编程但它并没有改变编程的本质。就像你们都用编译器生成代码一样你们中的许多人也会用 AI 来辅助生成。这和我们以前经历过的技术革命本质上是一样的。AI 会将你的生产力提高 10 倍而我认为编译器将生产力提高了 1000 倍。所以 AI 很棒但它并没有颠覆编程。它可能会改变其他领域但我是个程序员我不在乎。Dirk Hohndel我觉得有一点始终没变优秀的开发者还是能写出优秀的代码而普通开发者依然更容易写出有 Bug 的代码。这个在 AI 时代依然成立。那些真正理解系统和复杂性的开发者知道如何通过 Prompt 引导 AI 产出高质量代码而对系统缺乏理解的人往往只会让 AI 生成更多错误。Linus Torvalds我认为开发者必须理解系统最终是如何运行的。虽然现在已经没人直接写机器代码了但我依然会去看工具生成的代码也会检查汇编层面的结果。即便使现在的我用编译器甚至让 AI 帮我生成一些小项目我还是会去看最终生成的汇编代码因为那才是我的舒适区。而且我现在仍然会折腾微控制器在这种场景下你确实需要检查生成的代码确保它真的按照你的意图运行。对于那种一次性、写完就扔的小项目AI 的表现非常出色我们把这种方式称为“氛围编程”。但如果你要构建的是一个需要维护 35 年的严肃项目那就不能只靠写提示词让别人或 AI 替你生成代码。Dirk Hohndel遗憾的是我们时间到了。我还有很多问题我想我得留到明年在温哥华再问了。谢谢大家Linus Torvalds谢谢大家。