如果我想准确保存有关我用作参考的硬件的信息,最好的方法是什么?内容是否/proc/meminfo
足够?
答案1
您可以使用多种工具来捕获有关硬件的详细信息。我将使用以下一组工具来完成此任务。
笔记:我想说不,/proc/meminfo
这还不够,除非你只是想知道你的系统有多少内存。
系统信息
长沙
这是一个很好的工具,可以从硬件角度获取系统中当前包含的内容的通用列表。它还包括正在使用的驱动程序,因此它通常是我处理此类事情的第一个工具。它可以向您显示特定的硬件(网络、CPU、RAM 等),还可以以简短格式(如下所示)输出结果以及以 JSON、HTML 或 XML 格式输出。
例子$ sudo lshw -short | head | expand
H/W path Device Class Description
======================================================
system 900X3C/900X3D/900X4C/900X4D (System SKUNumber)
/0 bus NP900X4C-A07US
/0/0 memory 128KiB BIOS
/0/4 processor Core i7 (To Be Filled By O.E.M.)
/0/4/6 memory 32KiB L1 cache
/0/4/7 memory 256KiB L2 cache
/0/4/8 memory 4MiB L3 cache
/0/5 memory 32KiB L1 cache
dmide代码
该工具采用不同的方法并显示系统 DMI 表的转储。这本质上是系统 BIOS 的视图,采用人类可读的形式。
摘抄例子dmide代码 是一种以人类可读格式转储计算机的 DMI(有人称 SMBIOS)表内容的工具。该表包含系统硬件组件的描述,以及其他有用的信息,例如序列号和 BIOS 版本。借助此表,您可以检索此信息,而无需探测实际硬件。虽然这在报告速度和安全性方面是一个优点,但这也使得所提供的信息可能不可靠。
DMI 表不仅描述系统当前的构成,还可以报告可能的演变(例如支持的最快 CPU 或支持的最大内存量)。
SMBIOS 代表系统管理 BIOS,而 DMI 代表桌面管理接口。这两个标准密切相关,并由 DMTF(桌面管理任务组)开发。
$ sudo dmidecode | head -20
# dmidecode 2.12
# SMBIOS entry point at 0xdac46000
SMBIOS 2.7 present.
64 structures occupying 2909 bytes.
Table at 0xDAC45000.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Phoenix Technologies Ltd.
Version: P02ABK
Release Date: 09/19/2012
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 3072 kB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
硬件信息
另一个久负盛名的工具,用于捕获系统整体硬件的完整快照。类似于lshw
,但在我看来,可能是收集此类信息的最佳整体工具。这是我通常使用的工具。
$ hwinfo --cpu | head -14
01: None 00.0: 10103 CPU
[Created at cpu.446]
Unique ID: rdCR.j8NaKXDZtZ6
Hardware Class: cpu
Arch: X86-64
Vendor: "GenuineIntel"
Model: 6.58.9 "Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz"
Features: fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,nopl,xtopology,nonstop_tsc,aperfmperf,eagerfpu,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm,pcid,sse4_1,sse4_2,x2apic,popcnt,tsc_deadline_timer,xsave,avx,f16c,rdrand,lahf_lm,ida,arat,epb,xsaveopt,pln,pts,dtherm,tpr_shadow,vnmi,flexpriority,ept,vpid,fsgsbase,smep,erms
Clock: 905 MHz
BogoMips: 4789.57
Cache: 4096 kb
Units/Processor: 16
Config Status: cfg=new, avail=yes, need=no, active=unknown
这是很好的信息,因为它几乎包含了您想了解的有关给定 CPU 的品牌、型号和功能集的所有信息。
CPU信息
LSCPU
该工具只会向您显示有关 CPU 的详细信息。
例子$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
Stepping: 9
CPU MHz: 1701.562
CPU max MHz: 3000.0000
CPU min MHz: 800.0000
BogoMIPS: 4789.57
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 4096K
NUMA node0 CPU(s): 0-3
中央处理器ID
如果您想了解系统 CPU 的具体细节,可以参考cpuid
.
$ cpuid -1 | less
version information (1/eax):
processor type = primary processor (0)
family = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
model = 0xa (10)
stepping id = 0x9 (9)
extended family = 0x0 (0)
extended model = 0x3 (3)
(simple synth) = Intel Core i3-3000 (Ivy Bridge L1) / i5-3000 (Ivy Bridge E1/N0/L1) / i7-3000 (Ivy Bridge E1) / Mobile Core i3-3000 (Ivy Bridge L1) / i5-3000 (Ivy Bridge L1) / Mobile Core i7-3000 (Ivy Bridge E1/L1) / Xeon E3-1200 v2 (Ivy Bridge E1/N0/L1) / Pentium G1600/G2000/G2100 (Ivy Bridge P0) / Pentium 900/1000/2000/2100 (P0), 22nm
miscellaneous (1/ebx):
process local APIC physical ID = 0x3 (3)
cpu count = 0x10 (16)
CLFLUSH line size = 0x8 (8)
brand index = 0x0 (0)
brand id = 0x00 (0): unknown
feature information (1/edx):
x87 FPU on chip = true
virtual-8086 mode enhancement = true
debugging extensions = true
page size extensions = true
time stamp counter = true
RDMSR and WRMSR support = true
physical address extensions = true
machine check exception = true
CMPXCHG8B inst. = true
APIC on chip = true
SYSENTER and SYSEXIT = true
memory type range registers = true
PTE global bit = true
machine check architecture = true
conditional move/compare instruction = true
page attribute table = true
page size extension = true
processor serial number = false
...
/proc/cpu信息
如果您只想查询 Linux 内核提供的有关您的 CPU 的信息,而无需使用诸如 之类的工具lscpu
,那么您始终可以 grok/proc
文件系统。与您最初询问 的方式相同/proc/meminfo
,此处也表示其他硬件,例如 CPU。
$ head /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
stepping : 9
microcode : 0x1b
cpu MHz : 892.406
cache size : 4096 KB
physical id : 0