Shell | 查看CPU型号、kernel版本号及其源代码等方法的不完全总结

12 篇文章 0 订阅

本文总结如何查看电脑的 CPU型号、Linux kernel 版本号的几种方法的不完全总结。

Updated: 2022 / 7 / 15


Shell | 查看CPU型号、kernel版本号及其源代码等方法的不完全总结


CPU

型号

参考这里 1

  • /proc/cpuinfo
    查看“model name”行输出,就可查看cpu的名称,型号,主频等信息。

● processor:系统中逻辑处理核的编号。对于单核处理器,则可认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核;它的计数是从0开始的。
● vendor_id:CPU制造商
● cpu family:CPU产品系列代号
● model:CPU属于其系列中的哪一代的代号
● model name:CPU属于的名字及其编号、标称主频
● stepping:CPU属于制作更新版本
● cpu MHz:CPU的实际使用主频
● cache size:CPU二级缓存大小
● physical id:单个CPU的标号
● siblings:单个CPU逻辑物理核数
● core id:当前物理核在其所处CPU中的编号,这个编号不一定连续
● cpu cores:该逻辑核所处CPU的物理核数
● apicid:用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
● fpu:是否具有浮点运算单元(Floating Point Unit)
● fpu_exception:是否支持浮点计算异常
● cpuid level:执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
● wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
● flags:当前CPU支持的功能
● bogomips :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
● clflush size :每次刷新缓存的大小单位
● cache_alignment :缓存地址对齐单位
● address sizes:可访问地址空间位数

  • cat /proc/cpuinfo | grep 'model name' |uniq
    比如 model name : Intel(R) Xeon(R) CPU E5520 @ 2.27GHz

Kernel

版本号

当你想调试驱动程序时,你可能想知道您的系统使用的是哪个Linux内核版本?以下是在Linux终端中检查内核版本的三种方法 23

下面提到的命令已在 RedHat 上测试验证过,确保可用。
给出的示例是在 Ubuntu上实验所得。

这些命令应当是通用的,可以在 FedoraDebianCentOSSUSE 或任何其他Linux发行版上使用。

  • uname -r
    在终端中输入如上命令,输出将类似于
4.4.0-97-generic

  • cat /proc/version
    可以在文件 /proc/version 中找到内核信息。
    使用cat命令看看这个文件的内容 cat /proc/version, 输出将类似于
Linux version 4.4.0-97-generic (buildd@lcy01-33) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017

  • dmesg | grep Linux
    输出将有几行,但您应该能够轻松识别Linux内核版本。
[ 0.000000] Linux version 4.4.0-97-generic (buildd@lcy01-33) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 (Ubuntu 4.4.0-97.120-generic 4.4.87)
[ 0.182880] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 1.003861] Linux agpgart interface v0.103
[ 1.007875] usb usb1: Manufacturer: Linux 4.4.0-97-generic xhci-hcd
[ 1.009983] usb usb2: Manufacturer: Linux 4.4.0-97-generic xhci-hcd
[ 5.371748] media: Linux media interface: v0.10
[ 5.399948] Linux video capture interface: v2.00
[ 5.651287] VBoxPciLinuxInit

源代码

参考 45

  • 路径
    一般在Linux系统中的/usr/src/linux*.*.**.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。
    如果不止一个kernel,则参考路径 /usr/src/kernels/{YourKernelVersion}
  • 要求
    对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。
    对于linux内核源代码来讲,基本要求是:
  1. 操作系统的基本知识

现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。

  1. 对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解
  2. Linux内核源代码的整体分布情况 6:
% cd /usr/src/kernels/{YourKernelVersion}
% ls -lh
arch 			       # 包含了此核心源代码所支持的硬件体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
drivers 			   # 系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。
fs					   # Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。
include				   # 包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
init				   # 包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
ipc					   # 包含了核心的进程间通讯代码。
kernel				   # 包含了内核管理的核心代码。同时与处理器结构相关代码都放在arch/*/kernel目录下。
lib 				   # 包含了核心的库代码。与处理器结构相关库代码被放在arch/*/lib/目录下。
Module.symvers 		   # 某模块编译好后所生成的符号表文件
net 				   # 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。
scripts 			   # 包含用于配置核心的脚本文件。
mm 					   # 包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对应于X86的就是arch/i386/mm/fault.c 。

每个目录下的文件

一般在每个目录下都有一个 .depend 文件和一个 Makefile 文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。

另外有的目录下还有 Readme 文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

阅读所有目录及其下面的文件

在阅读方法或顺序上,有 纵向横向 :

  • 纵向: 顺着程序的执行顺序逐步进行

对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;

  • 横向: 按模块进行

对于像内存管理部分,可以单独拿出来进行阅读分析。

它们经常结合在一起进行。


参考链接

%todo:
Linux内核模块通信


  1. linux查看cpu型号的方法 ↩︎

  2. 如何在命令行中检查Linux内核版本的3种方法 ↩︎

  3. Shell | 实用命令不完全总结 ↩︎

  4. 如何查看 linux 内核源代码 ↩︎

  5. linux怎么查看内核,如何查看linux内核源代码? ↩︎

  6. Linux内核中的Module.symvers文件揭秘 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值