Interfaz de energía y configuración avanzada


En una computadora, la Interfaz de energía y configuración avanzada ( ACPI ) proporciona un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar componentes de hardware de la computadora , para realizar la administración de energía, por ejemplo, poner en suspensión los componentes de hardware no utilizados, 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 Administración de energía avanzada (APM), la Especificación de multiprocesador y la Especificación de BIOS Plug and Play (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 se basaba en firmware específico de la plataforma para determinar la administración de energía y las políticas de configuración. [2] La especificación es fundamental para la configuración dirigida por el sistema operativo y el sistema de administración de energía ( OSPM ). ACPI define 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 usando listas de instrucciones (" métodos ") provistas a través del firmware del sistema ( UEFI o BIOS ), que el kernel analiza. A continuación, 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 incorporada .

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, ACPI Special Interest Group (ACPI SIG), los desarrolladores originales del estándar ACPI, acordaron transferir todos los activos al Foro UEFI , en el que se llevarán a cabo todos los desarrollos futuros. [5]

El Foro UEFI 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 . Muchas de las funciones del firmware ACPI se proporciona en el código de bytes de ACPI Machine Language (AML), un Turing completo , específico de dominio lenguaje de bajo nivel , almacenada 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 de ACPI (ACPICA) proporciona una implementación de intérprete de 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 general de diseño 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 Linux como Alan Cox expresaron su preocupación por los requisitos de que el código de bytes de una fuente externa debe ser ejecutado por el kernel con privilegios completos, así como 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 un portátil Lenovo .