近日,Linux 创始人 Linus Torvalds 在日本开源峰会现场,与老友 Dirk Hohndel 展开了第 29 次公开对话。面对已突破 4000 万行 的庞大项目,这位核心维护者坦诚分享了他的日常工作、面临的挑战以及对 AI 工具的看法。

图:Linus Torvalds(右)与 Dirk Hohndel 在开源峰会进行对话
一成不变的“枯燥”,才是内核的亮点
当被问及新发布的 Linux Kernel 6.18 有何亮点时,Linus 的回答出人意料:“它一如既往,还是老样子。” 对他而言,稳定与可预测性,正是这个被手机、超级计算机等无数设备依赖的核心系统最宝贵的特质。新版本包含了大量对新硬件的支持与代码清理,而非颠覆性的改动。正如 Linus 所说,内核开发的核心词是“稳步推进”。
高密度的 9 周发布节奏:合并与修 Bug
Linux 内核遵循着高度规律化的发布周期:每 9 周发布一个新版本。在这 9 周中,Linus 将其划分为两个截然不同的阶段:
- 为期两周的“合并窗口期”:这是 Linus 最繁忙的时期。他会接收来自数百位子维护者发来的 Pull Request,合并总计约 12,000 次提交。他戏称自己早已不亲自写代码,核心工作是整合代码、处理合并冲突,并维持对整个项目的宏观理解。
- 为期七周的“修复稳定期”:合并窗口关闭后,团队将全力查找并修复 Bug,发布一系列候选版本,直至最终版本发布。
维护者的“雷区”:时机、测试与态度
尽管流程成熟,但某些行为仍会“惹毛”这位总维护者:
- 不合时宜的提交:在合并窗口即将关闭时才提交代码,企图“压哨”合入。
- 未经充分测试的代码:Linus 会在自己的机器上运行每一个开发版本,如果他都能轻易遇到 Bug,说明提交者测试不足。
- 最不可接受的是拒绝承认错误。Linus 强调,在内核开发中,有一条铁律:“no regressions”(不允许功能倒退)。犯错可以接受,但必须勇于承认并修复。
AI 是工具,不是“魔法”
谈及当下火热的 AI,Linus 直言自己很讨厌“AI”这个词,因为炒作过度,但他非常认可其作为工具的价值。他认为,用 AI 来辅助代码审查,远比用 AI 生成代码更有意义。目前已有项目利用 AI 检查补丁,并在他介入前就成功拦截了问题代码。
他将 AI 的出现类比为当年编译器的革命。“别觉得 AI 会突然彻底改变编程,这件事我们早就经历过了——几十年前写编译器的那些人已经完成过一次革命。” 他期待 AI 能成为开发流程中的重要组成部分,特别是在提升新人参与 开源实战 的效率方面。
为什么坚持“不破坏兼容性”如此之难?
在聊到为何只有少数项目能像 Linux 内核一样长期坚持“不破坏向后兼容性”时,Linus 道出了其中的艰辛。有时,一个行为改变在两年后才会被发现破坏了某个旧应用,而此时已有新应用依赖于新行为了。修复旧回归就会制造新回归。
因此,内核有时不得不采用一些“丑陋”的方案,比如对不同的程序表现出不同的行为,只为守住兼容性底线。“如果我们要做新东西,我们会使用新的接口,而让旧接口保持在可工作的状态。” Linus 说,“我希望能有更多项目这样做,但我还不是‘世界之王’,所以我管不了别人,我只能给内核定规矩。”
这种对稳定性和协作流程的极致追求,正是大型开源项目赖以成功的 基础与综合 工程原则。这场对话不仅展示了 Linux 内核这台精密机器的运作内幕,也为广大开发者提供了关于项目管理与工程哲学的深刻洞见,非常值得在 开发者广场 进行探讨。
|