你知道什么是 Linux 内核版本控制方案吗?

系统 Linux
如果你想检查系统上当前安装的 Linux 内核版本,可以使用 uname 来完成,这是一个 Linux 命令,可让你列出与系统相关的信息。根据你运行的发行版,uname 显示的版本号可能与实际的 Linux 内核版本不同。

每个 Linux 内核版本都有一个与之关联的不同版本号。你有没有想过 Linux 内核版本号是如何形成的?

如果是 Linux 有段时间了,应该知道 Linux 发行版具有独特的版本,并且每个版本都有特定的代号。Linux 内核也有不同的版本号,作为内核所属系列的标识符。但是,内核版本的早期形成方式与 Linus Torvalds 现在的命名方式有所不同。

到最后,你将更加熟悉 Linux 内核版本控制方案,并且会更轻松地阅读内核版本号并识别与特定版本相关的各种功能。

传统的 Linux 内核版本控制

当 Linus 刚开始开发内核时,所使用的版本控制系统只是由一个从零(0.x)开始的递增变量方案组成。最初,Linus 是该项目的唯一工作人员,这个版本控制系统足以满足记录和分发新内核版本的需要。

以下是遵循此命名方案的一些内核版本:

后来,随着越来越多的开发人员开始为该项目做出贡献,并且修订和补丁数量的显著增加,决定这种版本控制方案不适用于内核等软件。从 1.0 版本开始,Linus 采用了一个带有一些附加变量的新方案。

引入更具描述性的版本控制系统

1994 年,随着 Linux 1.00 内核 发布,Linus 开始使用新的版本控制系统,该系统在语法中使用了三个变量:“ abc ”。这些变量(a、b 和 c)分别代表特定内核版本的主要版本、次要版本和修订号。

以 Linux 1.1.95 内核为例。你可以将其解码为第一个主要版本、第一个次要版本和第 95 个修订版。

当时,即使是次要版本号也表示稳定的内核版本,而奇数则表示开发版本。拥有单独的分支很重要,这样开发人员可以在内核中添加和测试新功能而不会影响稳定分支。

内核开发人员在开发分支中添加和改进新功能,直到它足够稳定以作为 LTS 内核发布。LTS 内核 3.2 是通过稳定版本 3.1 中的新特性而开发的,同样,新的开发内核 3.3 从 3.2 分支出来,为随后将在 Linux 3.4 中引入的新特性让路。

从 Linux 2.4 内核 开始,内核名称中的第四个变量表示补丁版本。你可以说版本 2.4.37.10 是内核 2.4.37 的第十个补丁版本。

补丁版本并不意味着内核版本中修补的问题数量。相反,它计算在修补发现的问题后发布更新内核的次数。

在 Linux 2.6 之前,一直使用这个版本控制系统,它可以有效地将特定版本与其他版本区分开来。在版本号中添加修订计数和补丁版本是描述性的,但这意味着具有更长和更复杂的内核版本。再一次,需要一个新的更好的方案。

Linux 内核版本现在是如何命名的?

在 Linux 3.0 版中,Linus 从版本号中删除了第四个变量。现在,内核版本是根据语法形成的:abc,其中 a、b 和 c 分别是主要版本、次要版本和修订计数。此版本控制方案类似于 1.0 和 2.4 内核版本之间使用的方案。

Linux 3.2.0-23

由于版本控制系统的进步,贡献者现在可以无缝地在稳定的分支上工作并添加新功能,而不会意外破坏已经工作的稳定版本。因此,在内核版本 4.0 推出后,内核的稳定分支和生产分支使用偶数和奇数次要版本号变得多余,并且4.x系列中的第一个 LTS 版本(4.1)有一个奇数次要版本号。

你可能还会注意到版本号末尾的一些字符,例如rcX。审查候选(或简称“rc”)是内核的预览版本和预补丁版本,开发人员需要修补它们以消除错误和其他问题。这些是以前由奇数次要版本号表示的开发版本的替代品。

尽管这些版本是专门为内核开发人员保留的,因此他们可以修复报告的问题并实现新功能,但你也可以根据需要下载和测试这些内核审查候选者,但通常不建议这样做,因为这是大多数开发发生的地方。在撰写本文时,最新的内核预览版是5.19-rc6。

为了创建新版本,当变量的值达到特定数字时,前面的变量会递增。例如,每当次要版本计数接近 20 时,主要版本就会更新到下一位。

Linus 在他的 5.0 内核开发邮件中提到,他只是将主要版本更新为 5,因为次要版本数量太大,无法指望手指和脚趾(20!)。同样,根据kernel.org,当第一个点之后的数字开始看起来“太大”时,主版本号会增加。3.x系列的最终内核版本是 3.19,最后一个主要的4.x内核系列是 4.20,然后升级到 5.0。

Linux 5.18.0-2

自 3.0 版以来,Linux 内核一直遵循此版本控制方案,并且已证明它在三个主要内核版本(版本3.x、4.x和5.x)中都是有效的。

使用版本号识别 Linux 内核版本

考虑到发布的 Linux 内核版本数量之多,因此需要一个适当的系统来识别和区分特定版本与其他版本。使用新的内核版本控制方案,现在可以有效地识别和比较内核版本,并且很容易知道哪个内核版本是最新的,哪个是较早发布的。

如果你想检查系统上当前安装的 Linux 内核版本,可以使用 uname 来完成,这是一个 Linux 命令,可让你列出与系统相关的信息。根据你运行的发行版,uname 显示的版本号可能与实际的 Linux 内核版本不同。

责任编辑:庞桂玉 来源: 马哥Linux运维
相关推荐

2022-08-03 11:00:20

2022-08-11 08:32:34

2015-09-11 15:56:52

2015-05-13 14:12:52

Linux内核内核获得成功

2018-02-25 10:17:31

2021-02-07 08:02:33

Linux内核开源

2010-11-05 09:31:03

2020-01-17 19:10:32

Linux发行版内核

2018-05-22 14:34:50

编译Linux内核

2013-04-08 16:19:46

Linux内核内核升级

2012-07-31 16:11:25

Linux内核系统运维

2017-01-05 14:28:43

Linux内核代码源码

2017-03-27 18:05:49

Linux内核编译与开发

2010-02-26 15:38:29

2009-12-18 15:28:19

Linux内核

2009-12-03 19:02:05

Linux

2009-11-30 09:50:26

Linux内核Linux内核体系

2021-08-27 17:00:51

2015-09-09 09:35:58

Linux内核展望

2009-05-27 19:02:08

Linux兼容内核发布
点赞
收藏

51CTO技术栈公众号