当我运行
时uname -r
我在我的debian7上得到3.2.0-4-686-PAE,而我的Gentoo上有4.4.26-gentoo。
但是我在任何地方找不到的是Linux内核源版本所使用的。如果我理解正确的话,所有分布都从此处使用内核源代码https://www.kernel.org。那么,我该如何找到网站中的Linux内核版本,例如?
尝试使用man uname
并为使用的内核版本找到-v。;)
因此,如果您只是不关心细节并希望看到所有内容,则为uname -v
或uname -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 -r
零件与uname -a
中的uname -v
零件之间的差异(-a中的第一个版本号)
$ uname -r
3.16.0-4-amd64
您有一些方法知道Linux内核版本:
-
好方法
uname -r
-
糟糕的方法查看内核版本(如果它们具有kernel的版本号,则应查看vmlinu* initrd文件的版本)
ls /boot | grep "vmlinu*"; ls /boot | grep "initrd*"
-
您可以尝试以这种方式了解机器上的所有内核版本:
ls /lib/modules/
uname -r
是最简单的方法。
尽管有一些公用事业,例如screenfetch或neofetch,它们以清晰,漂亮的方式为您提供更多信息。
只需运行screenfetch
即可显示详细信息。(如今,通常在大多数发行版上都预装ScreenFetch)。
如果未安装,只需运行 sudo apt install screenfetch
(在诸如ubuntu之类的debian发行版本上)或 sudo pacman -S screenfetch
(在基于拱门的发行版上。
如果您正在寻找匹配浏览的原始Linux内核版本
https://elixir.bootlin.com/linux/vx.y.z/
或linux_kernel_code开发内核代码时检查的" uname"不是正确的答案!
有两种方法(我以Ubuntu 16.04为例):
dmesg
dmesg |grep; linux 版本"
[0.000000] Linux版本4.4.0-210代(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总生成 4.4.262 )
原始内核版本是 4.4.262 !和4.4.0-210代是Ubuntu的内核编号。
安装内核源使用命令,例如
sudo apt-get安装linux-source
查看新安装的文件('uname -r'=> 4.4.0-210代)
/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。[&gt; = 255](在patch超过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/PROC/版本从哪里获取其号码。
在我的ubuntu上20.04 5.4.0-80代代
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 。