Configuración avanzada e interfaz de energía


En una computadora, la interfaz avanzada de configuración y energía ( ACPI ) proporciona un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar los componentes de hardware de la computadora , para realizar la administración de energía, por ejemplo, poner los componentes de hardware no utilizados en suspensión, para realizar la configuración automática, por ejemplo, Plug and Play . e intercambio en caliente , y para realizar un seguimiento del estado. Lanzado por primera vez en diciembre de 1996, ACPI tiene como objetivo reemplazar la gestión avanzada de energía (APM), la especificación multiprocesador y la especificación Plug and Play BIOS (PnP). [1]ACPI pone la administración de energía bajo el control del sistema operativo, a diferencia del sistema anterior centrado en BIOS que dependía del firmware específico de la plataforma para determinar las políticas de administración y configuración de energía. [2] La especificación es fundamental para el sistema de administración de energía y configuración dirigida por el sistema operativo ( OSPM ). ACPI define las interfaces de abstracción de hardware entre el firmware de los dispositivos (por ejemplo, BIOS , UEFI ), los componentes de hardware de la computadora y los sistemas operativos . [3] [4]

Internamente, ACPI anuncia los componentes disponibles y sus funciones al kernel del sistema operativo mediante listas de instrucciones (" métodos ") proporcionadas a través del firmware del sistema ( UEFI o BIOS ), que el kernel analiza. Luego, ACPI ejecuta las operaciones deseadas escritas en lenguaje de máquina ACPI (como la inicialización de componentes de hardware) utilizando una máquina virtual mínima integrada .

Intel , Microsoft y Toshiba desarrollaron originalmente el estándar, mientras que HP , Huawei y Phoenix también participaron más tarde. En octubre de 2013, el Grupo de interés especial de ACPI (ACPI SIG), los desarrolladores originales del estándar ACPI, acordaron transferir todos los activos al Foro UEFI , en el que se llevará a cabo todo el desarrollo futuro. [5]

El UEFI Forum publicó la última versión del estándar, "Revisión 6.4", a fines de enero de 2021. [6]

El ACPI a nivel de firmware tiene tres componentes principales: las tablas ACPI, el BIOS ACPI y los registros ACPI. El BIOS ACPI genera tablas ACPI y carga tablas ACPI en la memoria principal . Gran parte de la funcionalidad ACPI del firmware se proporciona en bytecode de ACPI Machine Language (AML), un lenguaje de bajo nivel específico de dominio completo de Turing , almacenado en las tablas ACPI. [7] Para hacer uso de las tablas ACPI, el sistema operativo debe tener un intérprete para el código de bytes AML. La arquitectura de componentes ACPI (ACPICA) proporciona una implementación de intérprete AML de referencia. En el momento del desarrollo del BIOS, el código de bytes AML se compila a partir del código ASL (lenguaje fuente ACPI). [8] [9]

La decisión de diseño general no estuvo exenta de críticas. En noviembre de 2003, Linus Torvalds —autor del kernel de Linux— describió ACPI como "un completo desastre de diseño en todos los sentidos". [10] [11] En 2001, otros desarrolladores senior de software de Linux como Alan Cox expresaron su preocupación por los requisitos de que el kernel debe ejecutar el código de bytes de una fuente externa con todos los privilegios, así como por la complejidad general de la especificación ACPI. [12] En 2014, Mark Shuttleworth , fundador de la distribución Ubuntu Linux , comparó ACPI con caballos de Troya . [13]


Ejemplo de tablas ACPI de una laptop Lenovo .