内核版本号组件(wxyy-zzz)叫什么?

内核版本号组件(wxyy-zzz)叫什么?

/boot当使用正在进行的命令 ( )查看已安装的内核版本号时,find /boot/vm* -printf "%A@ %p\n"我看到:

1469098968.0000000000 /boot/vmlinuz-3.13.0-92-generic
1477523408.0000000000 /boot/vmlinuz-3.2.0-113-generic
1476549941.0000000000 /boot/vmlinuz-4.4.0-43-generic
1477008540.0000000000 /boot/vmlinuz-4.4.0-45-generic
1470540722.0000000000 /boot/vmlinuz-4.6.3-040603-generic
1471805944.0000000000 /boot/vmlinuz-4.7.1-040701-generic
1472208664.0000000000 /boot/vmlinuz-4.7.2-040702-generic
1473382012.0000000000 /boot/vmlinuz-4.7.3-040703-generic
1474853146.0000000000 /boot/vmlinuz-4.7.5-040705-generic
1475960925.0000000000 /boot/vmlinuz-4.8.1-040801-generic
1477145804.0000000000 /boot/vmlinuz-4.8.4-040804-generic

前缀后面的“w.xx.y-zzz”的正确名称是什么vmlinuz

建议的重复链接(发布版本中的第四个数字代表什么意思?) 指出第二段称为ABI Number。muru 在下面给出的答案中指出第四段是ABI Number但是,根据下面我自己的答案中提供的链接,我认为两者都是错误的。

请记住,这个问题涉及所有四个段 wxyy-zzz,而不仅仅是第四个段 zzz。

答案1

呼唤版本,X重大修订和小修改是语义版本控制使用变化意义. Linux 还没有使用语义版本控制已经存在很长时间了。直到 2003 年,Linux 使用奇偶版本(奇数不稳定,偶数稳定)。然后是 2.6,从软件角度来说,它持续了一个地质时代(直到 2.6.39,8年)。

然后,Linus 几乎是任意地将版本升级到 3.0。这结束了语义版本对 Linux 版本的所有适用性。并且当 3.20 即将到来时,Linus 改为简单地增加每当X变得足够大他用尽手指和脚趾来数数

所以现在内核版本只是韦克斯, 这上游表示补丁已发布 - Ubuntu 将其保留为 0,并且正如前面提到的,是 ABI 数值。

答案2

内核版本 . 重大修订 . 次要修订 - 补丁

使用xx.y-zzz查看列出的第四个文件,/boot/vmlinuz-4.4.0-45我们可以说:

  • = 内核版本 = 4
  • 二十= 重大修订 = 4
  • = 小修改 = 0
  • =补丁编号 = 45

如果有人正在使用4.8.0Ubuntu 16.10 附带的版本,并遇到屏幕闪烁的情况,他们可能会说“我使用了以前的版本 4.4.0-45”(Ubuntu 16.04 使用)来解决问题。

通俗地说,这是正确的,但从技术上讲,这是将四个主要修订级别 (4.8.yz) 降级到 (4.4.yz)。从技术上讲,要从内核版本 4.8 迁移到以前的内核版本,根据 OP 中显示的文件列表,必须是 3.2 或 3.13。

内核 3.0 之后的段名称变化

上述定义来自:(内核版本编号) 于 2006 年 5 月 9 日发布,但现已过时。

由于重复的评论链接(发布版本中的第四个数字代表什么意思?) 州,新名称为:

<base kernel version>.<ABI number>.<upload number>-<flavour>

建议的重复似乎是错误的,因为内核版本号中的第二段似乎与 无关ABI。在此线程中发布的另一个答案中,第四段与 相关联,ABI但这似乎也不正确。以下是 ABI 更改列表的顶部(Linux 内核 ABI 时间线):

                ----- Symbols -----
Version Date    Added Removed Total
4.8.1   2016-10-07  141 50  1470
4.7.2   2016-08-20  170 42  881
4.6.1   2016-06-01  159 52  924
4.5.6   2016-06-01  146 41  994
4.4.5   2016-03-10  87  40  994
4.3.6   2016-02-20  166 51  1231
4.2.8   2015-12-15  213 75  1768
4.1.19  2016-03-05  204 88  1760
4.0.9   2015-07-21  159 53  822
3.19.8  2015-05-11  207 44  1146
3.18.28 2016-03-05  147 56  867
3.17.8  2015-01-08  165 46  688
3.16.7  2014-10-30  155 55  943
3.15.10 2014-08-14  129 98  1051
3.14.64 2016-03-10  279 91  1019
3.13.11 2014-04-23  140 99  822
3.12.56 2016-03-04  171 77  994

ABI 编号

wiki.ubuntu我们了解到:

ABI 代表应用程序二进制接口。对于内核,这归结为模块(又称驱动程序)可用于在内核空间执行操作的导出函数。大多数导出函数可直接从内核(vmlinux)获得,但很大一部分也从其他模块导出。这些函数允许模块利用内核中的子系统进行内存管理、设备接口、文件系统(VFS)、网络堆栈等。

Linux 内核版本号总结

或许是最权威的来源(wikipedia.org - Linux 内核版本编号) 我们学习:

Linux 内核有三种不同的编号方案。总结一下:

  • 第一种方案用于“1.0”的开发。内核的第一个版本是 0.01。随后是 0.02、0.03、0.10、0.11、0.12(第一个 GPL 版本)、0.95、0.96、0.97、0.98、0.99,然后是 1.0。[303] 从 0.95 开始,版本之间发布了许多补丁。
  • 在 1.0 版本之后和 2.6 版本之前,数字组成为“abc”,其中数字“a”表示内核版本,数字“b”表示内核的主要修订版本,数字“c”表示内核的次要修订版本。
  • 2004 年,2.6.0 版本发布后,内核开发人员就发布和版本方案进行了多次讨论[304][305],最终 Linus Torvalds 和其他人决定,更短的“基于时间”的发布周期将会更有利。

相关内容