需要了解的Smbios知识

什么是Smbios

 Smbios(system management bios)是主板或者系统制造厂商以标准格式显示产品信息所遵循的统一规范,Smbios规范标准定义了收集的电脑信息都包含哪方面的信息?其实就是包含很多c语言中的结构体,每一个结构体代表一种信息。
 每个主板厂商或者OEM厂商所生产的带脑,在出厂的时候都会按照smbios标准信息写入到bios中。主要就是包含可电脑各个模块信息。厂商将这些信息写好存入到BIOS芯片中,这部分信息是如何存入的,当然毫无疑问肯定是以bios代码的形式实现的,最终将代码的二进制写入到开机启动的flash芯片中。这部分代码是属于BIOS的一部分。在uefi中属于专门的一个驱动模块。

什么是DMI

 DMI(Desktop Management Interface)也就是桌面管理接口,它包含有关于系统硬件的配置信息,DMI的主要组成部分是Management Interface Format(MIF)数据库,这个数据库包括可所有有关电脑系统和配置信息。通过DMI,用户可以获取序列号,电脑厂商,串口信息以及其他系统配件信息。计算机每次启动时都对DMI数据进行校验,如果该数据出错或硬件有所变动,就会对机器进行检测,并把测试的数据写入到BIOS芯片保存。DMI收集信息,也是按照Smbios标准所进行的。因此DMI的实现,就是按照Smbios标准所实现的。

Smbios的访问方式

 对于符合Smbios规范的计算机,可以通过访问Smbios的结构获得系统信息,共有两种办法可以访问Smbios数据结构。
 1.通过即插即用功能接口访问Smbios接口,这个在Smbios2.0标准里定义了,从Smbio2.1开始这个访问方法就不在推荐使用。
 2:基于表结构的方法,表内容是table entry point的数据,这个访问方法从smbios2.1以后开始被使用,从2.1开始,以后的版本都推荐使用这种访问方式。在2.1版本中允许支持这两种方法中的任意一种和两种支持,但是2.2以后的版本,必须支持方法2.
 目前主流的访问方式都是基于表结构的访问方式。==基于表结构的访问Smbios的过程是先找到Entry Point Structure(EPS)表,然后通过Entry Point Structure(EPS)表的数据找到Smbios结构表。
 对于非EFI系统,访问Smbios EPS表的操作过程如下:
 1.从物理内存0x000F0000-0x000FFFFF之间寻找关键字“SM
 2.找到后再向后16个字节,看后面2个byte是否是关键字“DMI",如果是,EPS表即找到。
 满足上面两个条件,即可认为找到了Smbios的enttry Point Structure,然后程序解析这个结构中的数据获取其他的信息。

猜你喜欢

转载自blog.csdn.net/weixin_43700340/article/details/85049803