/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.0
Ubuntu 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 和其他人决定,更短的“基于时间”的发布周期将会更有利。