了解Linux内核发布流程
根据Linux内核发布模型,总共有三种类型的活跃内核发布:主线版本、稳定版本和长期支持(LTS)版本。首先,由子系统维护者收集和准备bug修复和新特性,然后提交给Linus Torvalds,以便他将它们包含在自己的Linux树中,称为主线Linux树,也称为主Git存储库。这就是每个稳定版本的来源。
在每个新的内核版本发布之前,都会通过发布候选标签提交给社区,这样开发人员就可以测试和完善所有的新特性,最重要的是,可以分享反馈。在这个周期中,Linus将根据反馈来决定最终版本是否可以发布。当他确信新内核已经准备就绪时,他会发布(实际上是打上tag)最终版本,我们称这个版本为稳定版本,以表明它不再是候选版本,这些发布版本是vX.Y。
发布版本没有严格的时间表。但是,新的主线内核通常每2-3个月发布一次。稳定内核版本基于Linus的版本,即主线树版本。
一旦Linus发布了主线内核,它也会出现在linux-stable树中(可从https://git.kernel.org/pub/scm/linux/kernel/git/ stable/linux.git/获得),在那里它成为一个分支,并从那里它可以接收稳定版本的错误修复。Greg Kroah-Hartman负责维护这棵树,它也被称为稳定树,因为它用于跟踪先前发布的稳定内核。也就是说,为了将修复应用到这个树,这个修复必须首先合并到Linus树中。因为修复程序必须在返回之前发布,所以这个修复程序是后移植的。一旦在主线存储库中修复了错误,就可以将其应用于以前发布的内核,这些内核开发社区仍然在维护这些内核。所有后移植到稳定版本的修复都必须满足一组强制接受标准——其中一个标准是它们必须已经存在于Linus的树中。
重要提示:bug修复的内核发行版本被认为是稳定的。
例如,4.9内核是由Linus发布的,然后基于该内核的稳定内核版本被编号为4.9.1、4.9.2、4.9.3等等。这样的发行版被称为bug修复内核发行版,当提到它们在稳定内核发行树中的分支时,这个序列通常缩写为数字4.9.y。每个稳定的内核发布树都由一个内核开发人员维护,该开发人员负责为发布选择必要的补丁,并执行审查/发布过程。在下一个主线内核可用之前,通常只有几个bug修复内核发布,除非它被指定为长期维护内核。
每个子系统和内核维护存储库都托管在这里:https://git.kernel.org/pub/scm/linux/kernel/git/。在那里,我们也可以找到linus或稳定的树。在Linus树(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/)中,Linus的树中只有一个分支,即主分支。Tags要么是稳定版本,要么是候选版本。在稳定树(https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/)中,每个稳定内核版本都有一个分支(命名为<A.B>.y,其中<A.B>是Linus树中的发行版本),每个分支包含其bug修复内核版本。
重要提示: 为了了解Linux内核发行版,你可以随手保存一些链接。第一个是https://www.kernel.org/,可以从那里下载内核存档,然后是https://www.kernel.org/category/releases.html,可以从那里访问最新的LTS内核版本及其支持时间轴。你还可以参考这个链接https://patchwork.kernel.org/,在那里你可以在子系统的基础上跟踪内核补丁提交。
现在我们已经熟悉了Linux内核发布模型,我们可以深入研究一些开发技巧和最佳实践,这有助于巩固和利用其他内核开发人员的经验。
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/17097825.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)