git.kernel.org 托管了很多 Git 仓库,其中大部分是内核开发仓库。有两个仓库需要特别关注:主线仓库和稳定仓库。
版本号
Kernel 的版本号在 Makefile 中定义:
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 15
SUBLEVEL = 0
EXTRAVERSION =
......
主线仓库
内核的主线仓库 kernel/git/torvalds/linux.git 由 linux 创始人 Linus Torvalds 维护,它的主要职责是从其它开发仓库拉取新功能和新修复提交进行合并。查看仓库的 Tags,可以发现其版本发布规律:
- 在上一个主线版本(Mainline)如
v6.14
发布后,会有 2 周的合并窗口期,用于引入新的重大功能,并发布新的 RC(Prepatch)版本,比如v6.15-rc1
。 - 在接下来的 7 周,会对新功能进行错误修复,每周发布一个 RC 版本,比如
v6.15-rc2
…v6.15-rc7
。 - 在第 9 周正式发布新主线版本,比如
v6.15
。 - 当主线版本的小版本号
PATCHLEVEL
递增到 19 左右时,将归零并增加大版本号VERSION
;可以推算出每 9*20/54=3.3 年左右将发布一个大版本。
稳定仓库
内核的稳定仓库 kernel/git/stable/linux.git 由 Stable Group 团队维护,它的主要职责是在内核主线仓库的基础上向后移植(Backporting)错误修复和安全补丁,使其可用于生产环境。
通常 Stable Group 团队只会维护最新主线版本,每周发布一次稳定版本(Stable),版本号为在主线版本后面增加子版本号 SUBLEVEL
,比如 v6.15.1
;由于通常每 9 周发布新的主线版本,所以每个主线版本对应的稳定版本基本不会超过 10 个。
但是 Stable Group 团队每年也会挑选一个主线版本作为 Longterm 进行长期维护,默认维护期为 2 年,如果行业有足够的兴趣会进一步延长。