1. 前言
内核是 *** 作系统的核心组件。 它管理系统的资源,是计算机硬件和软件之间的桥梁。
您可能因多种原因需要确切知道GNU / Linux *** 作系统上运行的内核版本。 也许您正在调试与硬件相关的问题,或者了解影响旧内核版本的新安全漏洞,并且您想知道您的内核是否易受攻击。 无论是什么原因,从命令行确定Linux内核版本都非常容易。
在本教程中,我们将向您展示几种不同的方法,以找出系统上运行的Linux内核版本。
怎么查看Linux内核版本
2. 使用`uname`命令查看Linux内核版本
uname命令显示多个系统信息,包括Linux内核体系结构,名称版本和发行版。
要找出系统上正在运行的Linux内核版本,请输入以下命令:
输出结果:
Linux 3.10.0-957.12.2.el7.x86_64 x86_64
3 - 内核版本.
10 - 主修订版本.
0-957 - 次要修订版本.
12 - 补丁版本.
使用uname命令查看Linux内核版本
3. 使用`hostnamectl`命令查看内核版本
hostnamectl实用程序是systemd的一部分,用于查询和更改系统主机名。 它还显示Linux发行版和内核版本:
Static hostname: CentOS7.linuxrumen.com
Icon name: computer-vm
Chassis: vm
Machine ID: 20c27040135a4d46b2d3d07180f37303
Boot ID: 2f495af0684e4adfb34f0366f2567460
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.12.2.el7.x86_64
Architecture: x86-64
使用以下命令只显示当前内核版本:
使用hostnamectl命令查看内核版本
4. 通过查看/proc/version文件确认内核版本
/proc目录包含虚拟文件,其中包含有关系统内存,CPU内核,已安装文件系统等的信息。有关正在运行的内核的信息存储在/proc/version虚拟文件中。
结合cat查看文件内容:
输出结果如下:
Linux version 3.10.0-957.12.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue May 14 21:24:32 UTC 2019
使用hostnamectl命令查看内核版本
5.结论
我们已经向您展示了如何从命令行查找在您的系统上运行的Linux内核的版本。 这些命令适用于所有流行的Linux发行版,包括Debian,Red Hat,Ubuntu,Arch Linux,Fedora,CentOS,Kali Linux,OpenSUSE,Linux Mint等。
https://www.linuxrumen.com/rmxx/1217.html
如何查询Linux内核版本
终端下输入
[xxxx@ ~]uname -r
3.5.0-34-generic
查看内核版本命令:
1) [root@q1test01 ~]# cat /proc/version
Linux version 2.6.9-22.EL *** p (bhpile@crowe.devel.redhat.) (g version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005
2) [root@q1test01 ~]# uname -a
Linux
q1test01 2.6.9-22.EL *** p #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64
x86_64 x86_64 GNU/Linux3) [root@q1test01 ~]# uname -r2.6.9-22.EL *** p
如何查询Linux内核函数
如果要看这两个函数在标准库中的定义用ctags或cscope生成索引.h,cscope,可以跳转到函数定义,man malloc,声明见stdlib。
如果仍然找不到,可以用ctags,si或grep。
windows下用source insight也可,然后查找函数定义,用grep -r 搜索关键字,atoi和malloc在C的标准库中有定义。
1.安装ctags
在源代码目录下运行
ctags -R
这样,会递归生成当前目录下及其子目录的tags文件。
2.使用VIM根据tags文件查找函数或结构定义。
1.在源码目录下查找
vi -t tagname
2.如果要在任意位置使用,则需要把该tags文件添加到~/.vimrc文件中
set tags=/home/money/sda8/2.6232/tags
3.如果要在代码中实时跟踪,则光标移动到函数名上,使用CTRL+]键,按CTRL+t可以返回。
如果要跟踪系统函数,使用shift+K可以自动跳转道光标所在函数的手册。
如何分析LINUX内核2.6.29版本uname -a 显示版本号,是这意思吗?
这个问题太大了,近似于说:请教下我怎么编写一个Linux内核。
分析内核唯一可以做的就是一行行看代码,Linux早期版本有完整的代码分析,如果是指定2.6.29的话,那估计有人做出来就可以出书收钱了……
如何根据linux内核判断linux版本在Linux内核的顶层Makefile中,顶端就有,格式为
VERSION = 3
PATCHLEVEL = 0
SUBLEVEL = 8
EXTRAVERSION =
NAME = Sneaky Weasel
以上的版本号就是3.08
如何修改linux内核版本号得重新编译内核,之前修改源代码的顶层目录下的Makefile文件,比如2.6.29.1内核的Makefile中:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION = .1
在Qt C/C++中怎样查询Linux内核版本号查询Linux内核版本号可以调用uname函数,uname函数的函数原型是这样的:
int uname(struct utsname *name)
uname函数在调用时需要向它传递一个utsname结构体指针(或地址),uname函数会写入name参数指向的utsname结构体,Linux的内核版本号就保存在utsname结构体的release成员里面,代码就像下面这样:
struct utsname uts
if(uname(&uts) >= 0) {
printf("The version is %s\n", uts.release)
}
注意,使用uname函数需要包含sys/utsname.h头文件:
#include <sys/utsname.h>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)