说明
本文主要介绍OS下如何来查看系统信息,这些系统信息大多是通过BIOS上传的。这里的OS主要分为Linux和Windows两个部分来说明,前者使用的发行版系统是Ubuntu18.04,后者使用的是Windows10。
Linux下查看
首先介绍Linux查看信息的方式。
dmesg
dmesg是Linux下最基本的命令,它用来查看Linux的启动信息,而这些启动信息中有非常多的信息与系统相关。下面是一些例子:
1. 查看CPU微码信息:
微码是CPU的补丁,用来解决CPU的缺陷,比如之前的熔断问题就可以通过更新微码来修复。通常微码包含在BIOS中,因此为了更新微码通常需要更新BIOS。
2. 查看GRUB传递过来的CommandLine:
3. 查看E820表:
E820表里面包含BIOS传递给OS的内存信息,比如那些内存是保留的,哪些是可使用的,等等。
4. 查看ACPI信息:
ACPI也是BIOS传递给OS的,它包含非常多的内容,这里不具体介绍。关于Linux下查看ACPI信息,可以参考【UEFI实战】Linux下如何解析ACPI表 。
5. 查看PCI信息:
Linux下可以选择是否要重新扫描PCI/PCIE设备,但是通常是不扫描的,只是使用BIOS的扫描结果。
/proc
/proc是Linux中一个虚拟的文件系统,包含很多的状态信息。下面举例说明:
1. 查看GRUB传递过来的CommandLine:
前面的dmesg中也看到过这个CommandLine,两者是一样的。
2. CPU信息:
3. 内存信息:
这里的信息跟E820表中的是不同的。
4. 中断信息:
有不少中断是在BIOS下配置的,有时候在BIOS下配置之后需要在这里确认。
5. 查看ACPI信息:
/proc下也有ACPI相关的信息。
dmidecode
demdecode用来查看SMBIOS信息,它们都来自BIOS:
lspci
前面介绍dmesg时说过PCI设备的查看,不过在dmesg中的信息非常少,如果要查看详细的信息,可以使用lspci命令:
如果lspci不加参数,就会打印所有的PCI设备。lspci之后可以加参数来指定具体的设备,还可以加额外的参数来显示更多的信息,下面是一个例子:
cpupower
cpupower需要额外安装:
apt install linux-tools-common
apt install linux-tools-4.15.0-38-generic
安装之后才可能使用cpupower,该工具可以设置和显示CPU相关的信息:
cpufrequtils
该工具也需要额外的安装:
apt install cpufrequtils
该工具包含很多的命令,如cpufreq-info,cpufreq-aperf和cpufreq-set等。cpufreq-info就可以显示CPU频率相关的信息:
Windows下查看
Windows下查看系统信息的方式跟Linux很不同,一个主要的不同是Windows下大都是图形的方式,另一个主要的不同是很多东西在Windows下可能没法看,或者比较隐晦。
设备管理器
设备管理器是Windows下常用的查看系统信息的地方,尤其是查看系统中的设备:
这里看到的设备实际上哟ubushao是BIOS上传,并在Windows内核中初始化的。以CPU为例:
这里就可以看到BIOS上报的信息,这样的信息还有很多,这里不一一举例。
msinfo32
msinfo32是Windows下的一个工具,可以用来查看系统信息:
这里可以查看很多BIOS上报的信息,比如这个I/O空间,中断等等。
RW
RW是一个第三方的工具,功能非常强大,而且是免费的:
它的官网是RWEverything – Read & Write Everything。这个工具可以查看到系统相关的非常多的信息,对于底层开发来说几乎是一个必须的工具,强烈推荐。