Sam*_*nko 52

主线内核

首先:不要使用那个github链接(它只是一面镜子).实际的存储库位于kernel.org.你可能想要使用Linus Torvalds的树,它是torvalds/linux.git.

它被称为主线内核,这意味着这棵树正在发生下一个内核版本的实际开发.虽然它只有分支,但您可以使用标签签出任何内核版本.此命令将显示所有版本标记:

$ git tag
Run Code Online (Sandbox Code Playgroud)

您可以签出所需的标签:

$ git checkout v4.0
Run Code Online (Sandbox Code Playgroud)

主线内核中不需要一堆分支,因为此树中的开发过程永远不会停止,并且一旦发布新版本,就不会有任何后端移植到该版本(在主线树内).所以Linus在这种情况下坚持使用标签(而不是分支).

稳定的内核

还有linux稳定的树."稳定"意味着在发布后,一些错误修复将被反向移植到它.在这棵树中你应该寻找分支(而不是标签):

$ git branch -a
Run Code Online (Sandbox Code Playgroud)

你可以看到像这样的分支:

linux-4.9.y
Run Code Online (Sandbox Code Playgroud)

其中y后缀只是一个bugfix版本的占位符(因为命名方案是linux-4.x.y).每当你看到y后缀时 - 它都是一个稳定的内核分支.其中一些分支是LTS内核(有关详细信息,请阅读内容).

在这种情况下,需要分支,因为开发人员必须将一些错误修复反向移植到已发布的版本中.所以这里的标签还不够.

下一个内核

还应该提到有linux-next树.以下是内核流程文档的描述:

在将子系统树的更新合并到主线4.x树之前,需要对它们进行集成测试.为此,存在一个特殊的测试存储库,几乎每天都会将所有子系统树拉到其中:

https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git

通过这种方式,-next内核提供了在下一个合并期间将进入主线内核的概要.非常欢迎冒险测试人员对-next内核进行运行时测试.

维护树木

回到树上.实际上有很多,他们被称为维护者树.你可以在这里看到所有这些.

您需要了解合并策略:只有Linus才能将代码合并到主线树.你可以在git log中看到很多来自他的合并提交.因此,如果您希望将补丁应用于主线内核,则需要先将其发送到内核邮件列表进行审核.请参阅Documentation/SubmittingPatches.一旦您的补丁被相应的子系统维护者审核并确认,他就会将其应用到他自己的树中.从那里,此补丁将在下一个合并窗口期间合并到主线内核.这里描述 Linux内核开发模型.

如果您对上传补丁感兴趣 - 您可能还想查看kernelnewbies.org材料.