Modo de Gerencia del Sistema

El Modo de Gerencia de Sistema, o System Management Mode (SMM) en inglés, es un modo de operación lanzado por primera vez con el Intel 386SL y disponible en microprocesadores posteriores de la arquitectura x86, en el que es suspendida toda la ejecución normal (incluyendo el sistema operativo), y es ejecutado un software especial separado en un modo de alto privilegio (usualmente un depurador en firmware o asistido por hardware).

Uso editar

Algunos usos comunes del SMM son:

  • Para emular hardware de la tarjeta madre que no está implementado o tiene errores (bugs).
  • Operaciones de gerencia de energía, como encendido de ventiladores.
  • Para emular un ratón o un teclado PS/2 desde un USB.
  • Funciones de seguridad del sistema, como apagar el computador cuando hay alta temperatura en el CPU.
  • Configuración del sistema, como por ejemplo en los computadores notebook de Toshiba e IBM.

Entrando al SMM editar

Al SMM se entra por medio del SMI, interrupción de gerencia del sistema (system management interrupt), que es causada por:

  • El hardware de la tarjeta madre enviando una señal por medio de un pin designado del chip procesador. Esta señal puede ser un evento independiente, o disparada por el software del sistema vía una lectura de I/O de una localización considerada especial por la lógica de la tarjeta madre (el puerto $B2 es común).
  • Una escritura de I/O hacia una localización que el firmware ha solicitado para que el chip del procesador actúe.

Problemas editar

  • Puesto que el código de SMM (manejador del SMI) es instalado por el firmware del sistema (BIOS), el sistema operativo y el código del SMM pueden tener expectativas sobre los ajustes del hardware que son incompatibles, por ejemplo diferentes ideas de cómo el APIC debe ser iniciado.
  • Las operaciones en el SIMM toman tiempo del CPU fuera del sistema operativo, ya que el estado del CPU debe ser almacenado a la memoria (SMRAM) y cualquier caché writeback debe ser limpiado. Esto puede destruir el comportamiento de tiempo real y causar que se pierdan ticks del reloj.
  • Un analizador lógico digital puede ser requerido para determinar si el SMM está ocurriendo.
  • Recuperando al código del manejador del SMI para analizarlo por errores, vulnerabilidades, y secretos requiere un analizador lógico o desensamblar el firmware del sistema.

Véase también editar

Enlaces externos editar