在/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
Run Code Online (Sandbox Code Playgroud)
vmlinuz
前缀后面的“w.xx.y-zzz”的正确名称是什么?
建议的重复链接(发布版本中的第四个数字是什么意思?)指出第二个部分称为ABI Number
. 下面 muru 的答案指出,第四部分是ABI Number
但是,根据我在下面自己的答案中提供的链接,我认为两者都是错误的。
请记住,这个问题是关于所有四段 wxyy-zzz 而不仅仅是第四段 zzz。
mur*_*uru 10
调用w版本,x主要修订和y次要修订是使用更改重要性的语义版本控制。Linux 已经很长时间没有使用这种语义版本控制了。直到 2003 年,Linux 都使用奇偶版本(奇数不稳定,偶数稳定)。然后到了 2.6,在软件方面持续了一个地质时代(直到 2.6.39,8年)。
然后,几乎任意地,Linus 将版本提升到 3.0。这结束了所有语义版本控制对 Linux 版本的适用性。而当3.20是因为,莱纳斯切换到简单的递增W¯¯每当X有足够大,使得他跑了手指和脚趾的出指望它。
所以,现在,内核版本只是wx,来自上游的y表示已发布补丁 - Ubuntu 只是将其保留为 0,而z如前所述,是 ABI 编号。
使用w.xx.y-zzz并查看列出的第四个文件,/boot/vmlinuz-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。
上述定义来自:( Kernel Version Numbering ) 2006 年 5 月 9 日发布,但现已过时。
正如重复的评论链接(发布版本中的第四个数字是什么意思?)指出新名称是:
<base kernel version>.<ABI number>.<upload number>-<flavour>
Run Code Online (Sandbox Code Playgroud)
建议的重复似乎是错误的,因为内核版本号中的第二段似乎与ABI
. 在此线程中发布的另一个答案中,第四部分与此相关,ABI
但这似乎也不正确。以下是来自 ( Linux Kernel ABI Timeline )的 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
Run Code Online (Sandbox Code Playgroud)
从wiki.ubuntu
我们学到:
ABI 代表应用程序二进制接口。对于内核,这归结为模块(AKA 驱动程序)可以用来在内核空间中执行操作的导出函数。大多数这些导出的函数都可以直接从内核 (vmlinux) 中获得,但也有很大一部分是从其他模块中导出的。这些函数允许模块利用内核中的子系统进行内存管理、设备接口、文件系统 (VFS)、网络堆栈等。
从最权威的来源(wikipedia.org - Linux 内核版本编号)我们了解到:
Linux 内核具有三种不同的编号方案。总结一下:
归档时间: |
|
查看次数: |
27312 次 |
最近记录: |