Linux 开发围绕 Linus Torvalds 维护的主线 Git 树,遵循基于时间的周期。主线开发、稳定版回移植和发行版内核相关但彼此不同。
主线开发 #
大多数补丁会经过层级结构,而不是直接发送给 Linus。开发者将补丁发布到相关邮件列表;审阅者和子系统维护者对其进行评估;维护者将接受的工作暂存到子系统树中。低层级树可以向高层级树提供内容,例如驱动程序树向网络树提供内容。linux-next 中的集成会在子系统树进入主线之前暴露它们之间的冲突。在合并窗口期间,顶层维护者向 Linus 的树发送带签名的拉取请求。
主线发布会为下一个版本开启一个大约两周的合并窗口。该窗口期间合并的更改通常已经过开发、审查和测试。窗口关闭后生成 <major>.<minor>-rc1;维护者修复回归和集成缺陷时,后续候选版本大约每周发布一次。除非属于异常的低风险情况,否则新功能会被推迟。最终版本通常在 -rc7 后发布,但严重且未解决的缺陷可能需要增加候选版本。因此,一个完整周期大约需要 9–10 周。
候选版本是测试快照,不是稳定更新分支。例如,6.12-rc3 是主线 6.12 的第三个候选版本,而 6.12.3 是最终 6.12 发布后的第三个稳定更新。
稳定版和长期支持版 #
主线最终版本发布后,指定的稳定版维护者负责其 .y 分支。当前稳定版规则要求某个修复或等效修复首先存在于主线中。候选修复必须经过测试、明显正确、连同上下文不超过 100 行,并且解决真实的用户可见缺陷或添加设备 ID。没有用户收益的功能开发和清理不符合条件。接受的回移植会经过公开审查周期,然后发布下一个 <major>.<minor>.<patch> 版本。
部分稳定分支会被选为长期支持版本。选择结果不会编码在版本号中,也不会提前承诺给未来版本。维护者能力、用户和供应商需求以及该版本的适用性都会影响选择。预计的生命周期结束日期可能延长或缩短,因为它们代表维护承诺,而不是 ABI 保证。
发行版供应商可以从主线或长期支持版本开始,添加补丁并发布不同的支持计划。因此,6.12.18-200.fc41.x86_64 这样的字符串标识的是供应商构建,而不是上游稳定标签。
版本号和生命周期结束 #
当前上游最终版本使用 <major>.<minor>,稳定更新增加第三个组件。主版本递增不表示 ABI 断裂;kernel.org 解释说,当次版本号变得不便于使用时才会更改主版本号。2.6 之前的奇偶开发约定已经过时,因为现在使用 -rc 标识预发布版本。
使用以下命令检查运行中的构建:
uname -r输出中的本地和供应商后缀属于构建发布字符串。应将底层上游版本与 Git 标签比较,而不要将任意后缀当作上游补丁编号进行排序。
kernel.org 发布页面是有关活动主线、稳定版和长期支持系列、其维护者及预计生命周期结束日期的权威来源。某个系列达到生命周期结束后,上游不再为其发布修复;继续使用需要供应商维护承诺,或迁移到受支持的系列。
评论
在 GitHub 上阅读或评论(发表评论需要登录)