‘uname -a’ 显示的两个内核版本有啥区别?
Posted
技术标签:
【中文标题】‘uname -a’ 显示的两个内核版本有啥区别?【英文标题】:What's the difference between two kernel version shown by ‘uname -a’?‘uname -a’ 显示的两个内核版本有什么区别? 【发布时间】:2018-09-04 03:12:22 【问题描述】:我使用的是debian 9.4,uname -a
显示的内核版本不同,实际的内核版本是多少? '4.9.82-1+deb9u3' 是什么意思?
Linux debian 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
apt-get source linux
可以得到当前内核的源代码,然后我可以得到原始内核的tar文件和debian补丁。
$ls
linux-4.9.82 linux_4.9.82-1+deb9u3.dsc
linux_4.9.82-1+deb9u3.debian.tar.xz linux_4.9.82.orig.tar.xz
linux_4.9.82-1+deb9u3.debian.tar.xz
包含很多文件,它们是做什么用的?如何将它修补到linux_4.9.82.orig.tar.xz
?
linux-4.9.82
是apt-get source
命令输出的内核源码文件夹,可以编译成vmlinux。但是,我通常无法使用 vmlinux 调试故障转储文件,因为“崩溃”命令会给出错误消息:版本不匹配。我应该从 kernel.org 下载 kernel 4.9.0
而不是 linux-4.9.82
来调试我当前正在运行的内核吗?
【问题讨论】:
【参考方案1】:你有包版本。名称由:
4.9.82
:上游版本
-1
:4.9.82
上游包的分隔符和 Debian 版本。注意:如果 Debian 也是软件包的上游,则跳过此字段。
+deb9u3
:这是一种微版本。 +deb
用于安全建议,因此与4.9.82-1
相比变化很小。 9
是 Debian 版本,u3
是第三个安全版本。
但是内核是不同的(与大多数其他软件包相比):一个可以并行安装许多(但它只会使用一个)。所以在包名中你可能有linux-image-4.9.0-3-amd64
。在我的系统中,这个包的版本是4.9.30-2+deb9u1
。所以4.9
是内核版本。 -amd64
是架构,这是4.9
(.0
) 系列的第三个主要Debian 版本(-3
),它基于4.9.30
。
命令uname
将在kernel-release
字段中为您提供内核(作为软件包名称,如此接近功能)和在字段kernel-version
中提供软件包版本(如此精确地引用源代码)。
对于主要问题:我会使用原始内核,并使用上游方法编译(如果我认为该错误与内核相关,因此更容易与内核维护者讨论),或者我会使用 Debian 源代码(ev 和补丁),并使用 Debian 工具构建内核(并安装软件包以安装内核),如果我认为问题出在 Debian 中,或者只是在旧内核版本上。
【讨论】:
非常感谢。所以你的意思是 4.9.82 是我系统中从 kernel.org 获得的原始真实内核版本? @Giacomo Catenazzi以上是关于‘uname -a’ 显示的两个内核版本有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章