コンピューティングにおいて、システム管理BIOS(SMBIOS)仕様は、コンピュータのBIOSによって生成された管理情報を読み取るために使用できるデータ構造(およびアクセス方法)を定義します。[ 1 ]これにより、オペレーティングシステムがハードウェアを直接プローブしてコンピュータに存在するデバイスを検出する必要がなくなります。SMBIOS仕様は、非営利の標準開発組織である分散管理タスクフォース(DMTF)によって作成されています。DMTFは、20億のクライアントおよびサーバーシステムがSMBIOSを実装していると推定しています。[ 2 ]
SMBIOSは、デスクトップ管理インターフェース(DMI)と連携していたため、元々はデスクトップ管理BIOS ( DMIBIOS )として知られていました。 [ 3 ]
デスクトップ管理BIOS(DMIBIOS)仕様のバージョン1は、1996年以前にPhoenix Technologiesによって作成されました。 [ 4 ] [ 5 ]
デスクトップ管理BIOS仕様のバージョン2.0は、 American Megatrends (AMI)、Award Software、Dell、Intel、Phoenix Technologies、およびSystemSoft Corporationによって1996年3月6日にリリースされました。これは、Windows 95から構造にアクセスするために使用される16ビットのプラグアンドプレイ機能を導入しました。[ 6 ]
ベンダーから直接公開された最後のバージョンは、1998年8月12日のバージョン2.3でした。開発者は、American Megatrends、Award Software、Compaq、Dell、Hewlett-Packard、Intel、International Business Machines (IBM)、Phoenix Technologies、およびSystemSoft Corporationでした。
1999年頃、分散管理タスクフォース(DMTF)が仕様の所有権を引き継ぎました。DMTFが最初に公開したバージョンは、1999年3月16日発行の2.3.1でした。ほぼ同時期に、マイクロソフトは、 OEMおよびBIOSベンダーがマイクロソフト認証を取得するために、このインターフェース/データセットをサポートすることを要求し始めました。
2015年2月に導入されたバージョン3.0.0では、64ビットのエントリポイントが追加され、これは以前に定義されていた32ビットのエントリポイントと共存できるようになった。
最新バージョン3.9.0は2025年8月にリリースされました。[ 7 ]
SMBIOSテーブルは、エントリポイント(32ビットと64ビットの2種類が定義されています)と、プラットフォームのコンポーネントや機能を記述する可変数の構造体で構成されています。これらの構造体は、サードパーティのドキュメントでは「テーブル」または「レコード」と呼ばれることがあります。
EFI構成テーブル(EFI_CONFIGURATION_TABLE)には、SMBIOS 2テーブルおよび/またはSMBIOS 3テーブルを指すエントリが含まれています。[ 10 ]プラットフォームとオペレーティングシステムに応じて、データにアクセスする方法はいくつかあります。
UEFI シェルでは、SmbiosViewコマンドで SMBIOS データを取得して表示できます。[ 11 ] [ 12 ]システムファームウェア設定に入り、起動オプションとしてシェルを選択することで、UEFI シェルに入ることができます (DVD ドライブやハードドライブではなく)。
Microsoft は、Microsoft Windowsから SMBIOS 情報にアクセスするための推奨メカニズムとしてWMIを指定しています。[ 13 ] [ 14 ]
Windowsシステム(XP以降)でSMBIOS情報の一部は、WMICユーティリティで「BIOS」/「MEMORYCHIP」/「BASEBOARD」などのパラメータを指定するか、WindowsレジストリのHKLM\HARDWARE\DESCRIPTION\Systemを参照することで確認できます。
AIDA64、FirmwareTablesView [ 15 ]、SMBIOS Decoder [ 16 ]など、さまざまなソフトウェアユーティリティで生のSMBIOSデータを取得できます。
テーブルと構造の作成は通常、システムファームウェア/BIOSに委ねられています。UEFIプラットフォーム初期化(PI)仕様には、コンポーネントがSMBIOS構造をインクルードのために送信し、製造元がプラットフォーム用のSMBIOSテーブルを作成できるようにするSMBIOSプロトコル(EFI_SMBIOS_PROTOCOL)が含まれています。[ 17 ]
プラットフォーム仮想化ソフトウェアは、例えばQEMUのように、VM内で使用するSMBIOSテーブルを生成することもできます。[ 18 ]
SMBIOS データが正しく生成および入力されていない場合、マシンが予期しない動作をする可能性があります。たとえば、シャーシ情報 | タイプ = タブレットと表示されているミニ PC は、 Linux を使用すると予期しない動作をする可能性があります。GNOMEのようなデスクトップ マネージャーは、存在しないバッテリーを監視しようとし、欠落しているバッテリーがしきい値を下回ると、画面とネットワーク インターフェイスをシャットダウンします。さらに、シャーシ情報 | 製造元が正しく入力されていない場合、タイプ = タブレットの問題に対する回避策を適用できません。[ 19 ]