1. 程式人生 > >需要了解的Smbios知識

需要了解的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,然後程式解析這個結構中的資料獲取其他的資訊。