Введение

Спецификация вычислительной техники

В вычислительной технике спецификация системного управления BIOS (SMBIOS) определяет структуры данных (и методы доступа), которые могут использоваться для чтения управляющей информации, генерируемой BIOS компьютера. Это устраняет необходимость для операционной системы напрямую опрашивать аппаратное обеспечение для определения установленных в компьютере устройств. Спецификация SMBIOS разрабатывается организацией Distributed Management Task Force (DMTF) – некоммерческой организацией по разработке стандартов. По оценкам DMTF, два миллиарда клиентских и серверных систем используют SMBIOS. DMTF опубликовала версию 3.6.0 спецификации 20 июня 2022 года. Изначально SMBIOS называлась Desktop Management BIOS (DMIBIOS), поскольку она взаимодействовала с интерфейсом управления рабочим столом (DMI).

История

Версия 1 спецификации Desktop Management BIOS (DMIBIOS) была разработана компанией Phoenix Technologies в 1996 году или ранее. Версия 2.0 спецификации Desktop Management BIOS была выпущена 6 марта 1996 года компаниями American Megatrends (AMI), Award Software, Dell, Intel, Phoenix Technologies и SystemSoft Corporation. Она представила 16-битные функции Plug and Play, используемые для доступа к структурам из Windows 95. Последней версией, опубликованной непосредственно поставщиками, была версия 2.3, выпущенная 12 августа 1998 года. Авторами были American Megatrends, Award Software, Compaq, Dell, Hewlett Packard, Intel, International Business Machines (IBM), Phoenix Technologies и SystemSoft Corporation. Около 1999 года Distributed Management Task Force (DMTF) взяла на себя ответственность за спецификацию. Первая версия, опубликованная DMTF, была 2.3.1, выпущенная 16 марта 1999 года. Примерно в то же время Microsoft начала требовать от OEM-производителей и поставщиков BIOS поддержки данного интерфейса/набора данных для получения сертификации Microsoft. Версия 3.0.0, представленная в феврале 2015 года, добавила 64-битную точку входа, которая может сосуществовать с ранее определенной 32-битной точкой входа. Версия 3.4.0 была выпущена в августе 2020 года. Версия 3.5.0 была выпущена в сентябре 2021 года. Версия 3.6.0 была выпущена в июне 2022 года.

Содержание

Таблица SMBIOS состоит из точки входа (определены два типа: 32-битная и 64-битная) и переменного числа структур, описывающих компоненты и характеристики платформы. Эти структуры иногда называют "таблицами" или "записями" в сторонней документации.

Доступ к данным SMBIOS

Таблица конфигурации EFI (EFI CONFIGURATION TABLE) содержит записи, указывающие на таблицы SMBIOS 2 и/или SMBIOS 3. Доступ к данным возможен несколькими способами, в зависимости от платформы и операционной системы.

Из UEFI

В оболочке UEFI команда позволяет получить и отобразить данные SMBIOS. Войти в оболочку UEFI обычно можно, войдя в настройки системной прошивки, а затем выбрав оболочку как вариант загрузки (вместо DVD-привода или жесткого диска).

Из Unix

Для Linux, FreeBSD и т.д. можно использовать утилиту dmidecode.

Из окна

Microsoft определяет WMI как предпочтительный механизм для доступа к информации SMBIOS в Microsoft Windows. На системах Windows, поддерживающих эту функцию (XP и более поздние версии), часть информации SMBIOS можно просмотреть с помощью утилиты WMIC с параметрами "BIOS", "MEMORYCHIP", "BASEBOARD" и аналогичными, либо просмотрев реестр Windows по адресу HKLM\HARDWARE\DESCRIPTION\System. Различные программные утилиты, такие как FirmwareTablesView и AIDA64, могут извлекать необработанные данные SMBIOS.

Создание данных SMBIOS

Создание таблиц и структур обычно выполняется системной прошивкой/BIOS. Спецификация UEFI Platform Initialization (PI) включает протокол SMBIOS (EFI SMBIOS PROTOCOL), который позволяет компонентам предоставлять структуры SMBIOS для включения, а производителю – создавать таблицу SMBIOS для платформы. Программное обеспечение для виртуализации платформы, такое как QEMU, также может генерировать таблицы SMBIOS для использования внутри виртуальных машин. Если данные SMBIOS не генерируются и не заполняются корректно, машина может работать непредсказуемо. Например, Mini PC, указывающий в информации о шасси тип "Планшет", может вести себя некорректно при использовании Linux. Менеджер рабочего стола, например GNOME, будет пытаться отслеживать несуществующую батарею и отключать экран и сетевые интерфейсы при достижении порогового значения заряда этой отсутствующей батареи. Кроме того, если информация о производителе в данных о шасси заполнена неверно, обходные решения для проблемы неправильного типа "Планшет" не могут быть применены.