如何使用x86info和cpuid命令在Linux上读取每个CPU的CPUID指令
时间:2020-01-09 10:41:24 来源:igfitidea点击:
是否有像免费软件/开源软件一样的CPU-Z,可以检测Linux操作系统中现代个人计算机的中央处理器(CPU)?
如何获得有关从CPUID指令收集的CPU的详细信息,包括Linux操作系统上CPU的确切型号?
Linux操作系统上有三个程序可以提供CPUID信息,这些工具对于确定特定的高级功能(例如虚拟化,扩展页表,加密等)是否有用:
lscpu
命令`显示有关CPU体系结构的信息。x86info
命令显示x86 CPU诊断信息。cpuid
命令转储每个CPU的CPUID信息。这是Linux上CPU-Z应用程序的壁橱工具。
x86信息
x86info是一个程序,它显示有关x86系统中存在的CPU的一系列信息。
在Debian/Ubuntu Linux上安装x86info
$ sudo apt-get install x86info
在Fedora Linux上安装x86info
$ sudo dnf install x86info
在RHEL/SL/CentOS Linux上安装x86info
$ sudo yum install x86info
例子
只需执行以下命令:
# x86info
请参阅TLB,缓存大小和缓存关联性
# x86info -c
输出示例:
x86info v1.30. Dave Jones 2001-2011 Feedback to <[email protected]>. Found 4 identical CPUs Extended Family: 0 Extended Model: 1 Family: 6 Model: 28 Stepping: 10 Type: 0 (Original OEM) CPU Model (x86info's best guess): Atom D510 Processor name string (BIOS programmed): Intel(R) Atom(TM) CPU D510 @ 1.66GHz Cache info L1 Instruction cache: 32KB, 8-way associative. 64 byte line size. L1 Data cache: 24KB, 6-way associative. 64 byte line size. ECC. L2 cache: 512KB, 8-way associative. 64 byte line size. TLB info Found unknown cache descriptors: 4f 59 ba c0 Total processor threads: 4 This system has 1 dual-core processor with hyper-threading (2 threads per core) running at an estimated 1.65GHz
查看CPU功能标记,例如AES/FPU/SSE等
# x86info -f
输出示例:
x86info v1.30. Dave Jones 2001-2011 Feedback to <[email protected]>. Found 4 identical CPUs Extended Family: 0 Extended Model: 1 Family: 6 Model: 28 Stepping: 10 Type: 0 (Original OEM) CPU Model (x86info's best guess): Atom D510 Processor name string (BIOS programmed): Intel(R) Atom(TM) CPU D510 @ 1.66GHz Feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe sse3 dtes64 monitor ds-cpl tm2 ssse3 cx16 xTPR pdcm movbe Extended feature flags: SYSCALL xd em64t lahf_lm dts Long NOPs supported: yes Total processor threads: 4 This system has 1 dual-core processor with hyper-threading (2 threads per core) running at an estimated 1.65GHz
请参阅MP表,其中显示了BIOS知道的CPU
# x86info -mp
输出示例:
x86info v1.30. Dave Jones 2001-2011 Feedback to <[email protected]>. MP Table: # APIC ID Version State Family Model Step Flags # 0 0x14 BSP, usable 6 12 10 0xbfebfbff # 2 0x14 AP, usable 6 12 10 0xbfebfbff ..... ..
显示所有可能的cpuid调用中的寄存器值
# x86info -r
要查看所有信息,请执行:
# x86info -a
cpuid
cpuid转储从CPUID指令收集的有关CPU的详细信息,并从该信息中确定CPU的确切型号。
它转储CPUID指令中所有可用的信息。
可用的确切信息收集因制造商和处理器而异。
在所有现代CPU上始终可以使用以下信息:
- vendor_id
- 版本信息(1/eax)
- 杂项(1/ebx)
- 功能信息(1/ecx)
在Debian/Ubuntu Linux上安装cpuid
$ sudo apt-get install cpuid
在Fedora Linux上安装cpuid
$ sudo dnf install cpuid
在RHEL/SL/CentOS Linux上安装cpuid
$ sudo yum install cpuid
例子
只需执行以下命令(此命令将提供许多有用的信息,包括以人类可读格式显示的所有功能的列表):
# cpuid # cpuid | less # cpuid | grep 'something'
仅显示第一个CPU的信息
# cpuinfo -1
使用CPUID指令(默认且非常可靠)
# cpuinfo -i
使用CPUID内核模块(在CPU类型和内核版本的所有组合上似乎都不可靠)
# cpuinfo -k
搜索特定的CPU功能
## Is virtualization supported (see below for flags)? ## # cpuid -1 | egrep --color -iw 'vmx|svm|ept|vpid|npt|tpr_shadow|vnmi|flexpriority' `VMX: virtual machine extensions = true` ## Is advanced encryption supported? ## # cpuid -1 | egrep --color -i 'aes|aes-ni' `AES instruction = true`
在基于Linux的系统上,系统管理员的一些重要标志:
- vmx Intel VT-x,基本虚拟化。
- svm AMD SVM,基本虚拟化。
- " ept"扩展页表,这是一项Intel功能,可以更快地模拟来宾页表。
- " vpid" VPID是Intel的一项功能,在来宾之间进行上下文切换时,无需进行昂贵的TLB刷新。
- npt AMD嵌套页表,类似于EPT。
- " tpr_shadow"和" flexpriority"英特尔功能可减少访问任务优先级寄存器时对虚拟机管理程序的调用,这在运行某些类型的SMP来宾时会有所帮助。
- vnmi英特尔虚拟NMI功能,可帮助解决来宾中的某些中断事件。
仅显示第一个CPU的信息
# cpuinfo -1
lscpu命令示例
您将获得有关Linux上的CPU体系结构的信息:
$ lscpu
输出示例:
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 45 Stepping: 7 CPU MHz: 2000.063 BogoMIPS: 4001.39 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 20480K NUMA node0 CPU(s): 0-7,16-23 NUMA node1 CPU(s): 8-15,24-31
当然,您也可以从/proc/cpuinfo
和/dev/cpu/*
文件中提取信息:
$ less /proc/cpuinfo