System Management Mode

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая A5b (обсуждение | вклад) в 00:00, 2 мая 2011 (переводом из http://en.wikipedia.org/?oldid=426976570). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Режим системного управления (англ. System Management Mode, SMM) — режим исполнения на процессорах x86/x86_64, при котором приостанавливается исполнение другого кода (включая операционные системы и гипервизор), и запускается специальная программа, хранящаяся в SMRAM в наиболее привилегированном режиме. Технология SMM была впервые реализована в микропроцессоре Intel 386SL. Изначально SMM работал только на специальных процессорах (SL), но в 1992 году была внедрена в 80486 и Intel Pentium. AMD реализовала технологию в Enhanced Am486 (1994 год). Все более современные x86/x86_64 процессоры поддерживают ее.

Режим SMM работает в защитном «Кольце -2», тогда как ОС работает в «Кольце 0», а аппаратный гипервизор (VT/AMD-v) в «Кольце -1». Код, работающий в режиме SMM, получает доступ ко всей системной памяти, включая ядро и память гипервизора.

Применение

Среди возможных применений SMM:

  • Обработка системных ошибок, таких как ошибки памяти и чипсета
  • Функции защиты, например выключение процессоров при сильном перегреве
  • Глубокие уровни энергосбережения
  • Управление питанием, например, схемами изменения напряжения (VRM)
  • Эмуляция переферии, которая была не реализована на материнской плате или реализация которой содержит ошибки
  • Эмуляция мыши и клавиатуры PS/2, при использовании USB-версий устройств
  • Централизованная конфигурация системы, например на ноутбуках Toshiba и IBM.
  • Запуск высокопривилегированных руткитов, как было предложено на Black Hat 2008.[1]
  • Эмуляция или передача вызовов на модуль Trusted Platform Module (TPM).[2]

Активация SMM

SMM активируется при помощи прерываний SMI (system management interrupt - прерывание системного управления), которое возникает:

  • По сигналу от чипсета или периферии на материнской плате. Используется выделенный контакт процессора.
  • Программный SMI, посланный системным ПО через порт ввода/вывода (часто используется порт номер 0B2h).
  • Запись по адресу ввода/вывода, для которого микропрограммно установлена необходимость активации SMM.

Проблемы

  • Согласно архитектуре SMM, он не может быть заблокирован операционной системой
  • Т.к. программы обработки SMM (SMI handler) устанавливаются из базовой микропрограммы BIOS, предполагаемые настройки важной периферии (например, APIC) в ОС и программах SMM могут не совпадать
  • Работа в режиме SMM приостанавливает работу ОС. Состояние процессора сохраняется в SMRAM, а кеши write-back должны быть сброшены. Из-за этого могут нарушиться требования жесткого реального времени. ОС Windows и ядро Linux устанавливают "SMI Timeout" - период времени, в который любая программа SMM должна вернуть управление операционной системе.
  • Для определения входа процессора в SMM может потребоваться цифровой логический анализатор (дополнительное отладочное оборудование).
  • Получение кодов программ SMM для их анализа и отладки также требует логического анализатора или обратной разработки микропрограмм BIOS.

Примечания

См. также

Ссылки