我怎么知道发行版使用的Linux内核版本是什么?

时间:2016-12-01 16:46:49

标签: linux kernel version linux-distro

当我跑步时

uname -r

我的Debian7上有3.2.0-4-686-pae,我的Gentoo上有4.4.26-gentoo。

但我无法在任何地方找到的是这些发行版使用的Linux内核源版本。如果我理解正确,所有发行版都从这里获取内核源代码https://www.kernel.org。那么我如何才能知道该网站的Linux内核版本是使用4.4.26-gentoo还是3.2.0-4-686-pae,例如?

4 个答案:

答案 0 :(得分:1)

尝试man uname并找到-v用于所使用的内核版本。 ;)

如果您不关心具体细节并想要全部看到它,那么它是uname -vuname -a。 :P

$ uname -v
#1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19)

$ uname -a
Linux Phobos 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

查看uname -runame -v部分与uname -a部分之间的差异(-a中的第一个版本号)

$ uname -r
3.16.0-4-amd64

答案 1 :(得分:0)

你有办法知道linux内核版本:

  1. 好方法

      

    uname -r

  2. 糟糕的方式看内核版本(你应该看到vmlinu * initrd文件的版本,如果他们有内核的版本号)

      

    ls /boot | grep "vmlinu*"; ls /boot | grep "initrd*"

  3. 您可以尝试这种方式来了解您计算机上的所有内核版本:

      

    ls /lib/modules/

答案 2 :(得分:0)

.include(u => u.Employments)是最简单的方法。

尽管有诸如screenfetch或neofetch之类的实用程序,可以以清晰漂亮的方式为您提供更多信息。

只需运行uname -r ,它就会显示详细信息。 (如今,大多数发行版通常都预安装了screenfetch)。

如果未安装,只需运行screenfetch(在基于debian的发行版(如ubuntu)上)或sudo apt install screenfetch (在基于Arch的发行版上。

答案 3 :(得分:0)

如果您正在寻找匹配可浏览的原始 Linux 内核版本

https://elixir.bootlin.com/linux/vx.y.z/

或者LINUX_KERNEL_CODE你在开发内核代码的时候查的,“uname”不是正确答案!

有两种方法(我以我的 Ubuntu 16.04 为例):

  1. dmesg

    dmesg | grep "Linux\ 版本"

    [ 0.000000] Linux 版本 4.4.0-210-generic (buildd@lgw01- amd64-009) (gcc 版本 5.4.0 20160609 (Ubuntu 5.4.0- 6ubuntu1~16.04.12) ) #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 (Ubuntu 4.4.0-210.242-generic 4.4.262)

原来的内核版本是4.4.262!而 4.4.0-210-generic 是 Ubuntu 的内核号。

  1. 安装内核源码使用命令如

    sudo apt-get install linux-source

查看新安装的文件('uname -r' => 4.4.0-210-generic)

/lib/modules/4.4.0-210-generic/build/include/generated/uapi/linux/version.h    

#define LINUX_VERSION_CODE 263423
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

那个版本代码是 0x0404FF 表示 4.4.[>=255](其中 FF 表示补丁超过 255 时)。

--------下面有趣的阅读--------

看文件很有趣

/lib/modules/4.4.0-210-generic/build/include/generated/utsrelease.h
#define UTS_RELEASE "4.4.0-210-generic"
#define UTS_UBUNTU_RELEASE_ABI 210

现在我们知道 uname 和 /proc/version 从哪里获得它们的编号。

在我的 Ubuntu 20.04 5.4.0-80-generic 上

dmesg | grep "Linux\ versin"

[    0.000000] Linux version 5.4.0-80-generic (buildd@lcy01-
amd64-030) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04))
#90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 
(Ubuntu 5.4.0-80.90-generic **5.4.124**)

和 LINUX_KERNEL_CODE 是

$ cat /lib/modules/5.4.0-80-generic/build/include/generated/uapi/linux/version.h 

#define LINUX_VERSION_CODE 328828

其中 328828 = 0x05047C,表示 5.4.124