版本信息

uname工具

uname工具是对sys/utsname函数的一个封装

1
2
3
4
5
6
7
8
9
-a或--all:显示全部的信息;
-m或--machine:显示电脑类型;
-n或-nodename:显示在网络上的主机名称;
-r或--release:显示操作系统的发行编号;
-s或--sysname:显示操作系统名称;
-v:显示操作系统的版本;
-p或--processor:输出处理器类型或"unknown";
-i或--hardware-platform:输出硬件平台或"unknown";
-o或--operating-system:输出操作系统名称;

简单实例如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdio.h"
#include "sys/utsname.h"
int main(){
struct utsname uts;
/* Put information about the system in NAME. */
uname(&uts);
printf("name=%s\n",uts.sysname);
printf("version=%s\n",uts.version);
printf("release=%s\n",uts.release);
printf("nodename=%s\n",uts.nodename);
printf("machine=%s\n",uts.machine);
return 0;
}

/**out:
name=Linux
version=#29~20.04.1-Ubuntu SMP Mon Aug 01 20:58:17 UTC 2021
release=5.11.0-27-generic
nodename=longtaoXiaoXinPro13-2020
machine=x86_64
**/

utsname结构体如下,如果定义了_GNU_SOURCE还可以再打印个domainname

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct utsname
{
/* Name of the implementation of the operating system. */
char sysname[_UTSNAME_SYSNAME_LENGTH];

/* Name of this node on the network. */
char nodename[_UTSNAME_NODENAME_LENGTH];

/* Current release level of this implementation. */
char release[_UTSNAME_RELEASE_LENGTH];
/* Current version level of this release. */
char version[_UTSNAME_VERSION_LENGTH];

/* Name of the hardware type the system is running on. */
char machine[_UTSNAME_MACHINE_LENGTH];

#if _UTSNAME_DOMAIN_LENGTH - 0
/* Name of the domain of this node on the network. */
# ifdef __USE_GNU
char domainname[_UTSNAME_DOMAIN_LENGTH];
# else
char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
};

通过文件查看

内核信息
1
cat /proc/version
发行信息

简要

1
cat /etc/issue

完整

1
cat /etc/*-release
CPU信息

lscpu命令或

1
cat /proc/cpuinfo

除此之外还可以获取一些其他信息

1
2
3
4
5
6
7
8
longtao@longtaoXiaoXinPro13-2020:~$ ls /proc|grep info
buddyinfo
cpuinfo
meminfo
pagetypeinfo
slabinfo
vmallocinfo
zoneinfo
内存信息

lsmem命令或者

1
cat /proc/memeinfo
其他信息

buddyindo物理内存debug信息,lunux使用buddy算法解决物理内存的碎片问题

1
2
3
4
longtao@longtaoXiaoXinPro13-2020:~$ cat /proc/buddyinfo 
Node 0, zone DMA 1 0 0 1 2 1 1 0 1 2 2
Node 0, zone DMA32 2261 1007 541 301 455 234 60 24 12 4 321
Node 0, zone Normal 1120 593 346 660 116 36 32 6 5 4 1

zoneinfo显示内存空间的统计信息,对分析虚拟内存行为很有用