获取有关系统硬件的信息

获取有关系统硬件的信息

如果我想准确保存有关我用作参考的硬件的信息,最好的方法是什么?内容是否/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

参考

相关内容