Compiler
搜索文档
4000 万行的 Linux 内核怎么管?Linus 爆料:两周合并 1.2 万次提交、7 周专门抓 Bug
程序员的那些事· 2025-12-29 11:27
Linux内核开发流程与版本发布 - 项目采用固定的9周发布周期,每周期包含一个合并窗口期和后续的bug修复阶段 [14] - 在合并窗口期的两周内,项目掌舵者需要处理大约12,000次代码提交,范围在11,000至13,000次之间 [16] - 合并窗口期结束后,有7周时间专门用于查找并修复bug,以提升内核稳定性 [17] - 项目每年会指定一个版本作为长期支持版本,为各类公司提供可长期依赖的标准版本 [10] - 项目有意识地避免在LTS版本中引入巨大、颠覆性的变动,以保持稳定 [10] 项目维护者的角色与工作方式 - 项目掌舵者自称已不再编程,核心工作是合并由子维护者提交的代码,并保持对项目的宏观理解 [16][18] - 其工作重点是处理代码合并冲突,确保不同团队提交的代码能正确整合,并维护项目流程 [18][20] - 作为维护者,其会在自己的所有机器上运行最新的内核版本,以此作为发现bug的一种方式 [21] - 项目掌舵者认为,在代码审查和冲突处理方面,其经验比绝大多数子维护者更丰富 [18] 项目开发文化与原则 - 项目拥有一条核心铁律:不允许出现功能倒退或破坏向后兼容性的回归问题 [3][23] - 项目掌舵者最不能接受的行为是开发者不愿意承认自己引入了bug [4][22] - 坚持“无回归”原则在技术上非常困难,有时需要为不同的程序保留不同的行为以维持兼容性 [31][33] - 项目在引入新功能时,会创建新的接口,同时保持旧接口可工作,极少有项目能做到这一点 [34] 对人工智能技术的看法与应用 - 项目掌舵者直言讨厌“AI”一词,认为其被过度炒作,但非常相信AI作为工具的价值 [4][25] - 将AI的出现类比为几十年前编译器的出现,认为其是工具的又一次进化,而非彻底改变编程的革命 [4][28] - 认为AI在帮助审查代码、解释问题方面比用于编写代码更有价值,并希望其能成为工作流程的重要组成部分 [25][26] - 指出AI的优势在于提供了额外的抽象层,允许用更高层次的语言表达意图,而不必解释所有底层细节 [30] - 已有公司内部项目使用AI进行代码审查,并能发现专家未注意到的问题,展现了其价值 [26][27] 项目规模与社区管理 - Linux内核的代码行数已突破4000万行,拥有几百名维护者和数千名开发者 [19] - 项目通过固定的发布周期和灵活的合并窗口,减轻了开发者必须赶在某个绝对截止日期前完成代码的压力 [14] - 项目掌舵者会因开发者在合并窗口结束前一刻提交代码或未充分测试就提交导致其发现bug而感到恼火 [21] - 项目掌舵者承认自己也会有压力,并努力在社区互动中保持克制和礼貌 [23]