Articulo de referencia

ACPI

La Interfaz Avanzada de Configuración y Energía ( ACPI ) es un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar componentes de hardware de la...

La Interfaz Avanzada de Configuración y Energía ( ACPI ) es un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar componentes de hardware de la computadora , para realizar administración de energía (por ejemplo, poner en suspensión los componentes de hardware no utilizados), autoconfiguración (por ejemplo, conectar y usar e intercambio en caliente ) y monitoreo de estado. Lanzada en diciembre de 1996 y disponible por primera vez en Windows 98 y Windows 2000 , ACPI tiene como objetivo reemplazar la Administració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 configuración y administración de energía. [ 2 ] La especificación es fundamental para el sistema de configuración y administración de energía dirigido por el sistema operativo ( OSPM ). ACPI define interfaces de abstracción de hardware entre el firmware del dispositivo (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 núcleo del sistema operativo mediante listas de instrucciones (" métodos ") proporcionadas a través del firmware del sistema ( UEFI o BIOS ), que el núcleo analiza. A continuación, ACPI ejecuta las operaciones deseadas escritas en lenguaje 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 posteriormente. 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 ] La última versióndel estándar 6.6 fue lanzado el 13 de mayo de 2025. [ 6 ]

Arquitectura

El ACPI a nivel de firmware tiene tres componentes principales: las tablas ACPI, la BIOS ACPI y los registros ACPI. La BIOS ACPI genera tablas ACPI y las carga en la memoria principal . Gran parte de la funcionalidad ACPI del firmware se proporciona en código de bytes del lenguaje de máquina ACPI ( AML ), un lenguaje de bajo nivel específico del dominio y Turing completo , almacenado en las tablas ACPI. [ 7 ] Para utilizar 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 referencia del intérprete AML . Durante el desarrollo de la BIOS, el código de bytes AML se compila a partir del código del lenguaje fuente ACPI ( ASL ). [ 8 ] [ 9 ]

Arquitectura de componentes ACPI (ACPICA)

La arquitectura de componentes ACPI ( ACPICA ), escrita principalmente por ingenieros de Intel, proporciona una implementación de referencia de código abierto e independiente de la plataforma del código ACPI relacionado con el sistema operativo. [ 10 ] El código ACPICA es utilizado por Linux, Haiku , ArcaOS [ 11 ] y FreeBSD , [ 8 ] que lo complementan con su código específico del sistema operativo.

Historia

La primera revisión de la especificación ACPI se publicó en diciembre de 1996, y admitía espacios de direcciones de 16, 24 y 32 bits . No fue hasta agosto de 2000 que ACPI recibió soporte para direcciones de 64 bits , así como soporte para estaciones de trabajo y servidores multiprocesador con la revisión 2.0.

En 1999, el entonces director ejecutivo de Microsoft, Bill Gates, afirmó en un correo electrónico que Linux se beneficiaría de ACPI sin que ellos tuvieran que hacer ningún trabajo y sugirió que se limitara a Windows. [ 12 ] [ 13 ] [ 14 ]

En septiembre de 2004 se lanzó la revisión 3.0, que incorporó a la especificación ACPI compatibilidad con interfaces SATA , bus PCI Express , compatibilidad con multiprocesadores para más de 256 procesadores, sensores de luz ambiental y dispositivos de presencia de usuario, además de extender el modelo térmico más allá de la compatibilidad anterior centrada en el procesador.

Publicada en junio de 2009, la revisión 4.0 de la especificación ACPI añadió varias características nuevas al diseño; las más destacadas son la compatibilidad con USB 3.0 , la compatibilidad con el modo de inactividad del procesador lógico y la compatibilidad con x2APIC .

Inicialmente, ACPI era exclusivo de la arquitectura x86 ; la revisión 5.0 de la especificación ACPI se publicó en diciembre de 2011, [ 15 ] que añadió compatibilidad con la arquitectura ARM . La revisión 5.1 se publicó en julio de 2014. [ 16 ] La última revisión, la 6.6, publicada en mayo de 2025, añadió compatibilidad con RISC-V .

Sistemas operativos

La pantalla "Ahora puede apagar el equipo de forma segura" en Windows 9x. La mayoría de los periféricos están desconectados y la única forma de salir de esta pantalla es apagar o reiniciar el equipo.
La pantalla "Ahora puede apagar su equipo de forma segura" en Windows NT 4.0. A diferencia de Windows 9x y versiones posteriores de NT, la mayoría de los periféricos esenciales del equipo funcionan con normalidad, por lo que el usuario puede optar por reiniciar el equipo en lugar de apagarlo.
La pantalla "Ahora es seguro apagar el sistema" en Windows 10 y 11.

Windows 98 de Microsoft fue el primer sistema operativo en implementar ACPI, [ 17 ] [ 18 ] pero su implementación fue algo defectuosa o incompleta, [ 19 ] [ 20 ] aunque algunos de los problemas asociados con ella fueron causados ​​por el hardware ACPI de primera generación. [ 21 ] Otros sistemas operativos, incluidas versiones posteriores de Windows , macOS (macOS x86 solamente), eComStation , ArcaOS , [ 22 ] FreeBSD (desde FreeBSD 5.0 ​​[ 23 ] ), NetBSD (desde NetBSD 1.6 [ 24 ] ), OpenBSD (desde OpenBSD 3.8 [ 25 ] ), HP-UX , OpenVMS , Linux , GNU/Hurd y versiones para PC de Solaris , tienen al menos algún soporte para ACPI. [ 26 ] Algunos sistemas operativos más recientes, como Windows Vista , requieren que el equipo tenga una BIOS compatible con ACPI, y desde Windows 8 , se implementó el estado S0ix/Modern Standby . [ 27 ]

Los sistemas operativos Windows utilizan acpi.sys [ 28 ] para acceder a los eventos ACPI.

La serie 2.4 del kernel de Linux solo tenía un soporte mínimo para ACPI, con un mejor soporte implementado (y habilitado por defecto) a partir de la versión 2.6.0 del kernel. [ 29 ] Las implementaciones antiguas de BIOS ACPI tienden a ser bastante inestables y, en consecuencia, no son compatibles con los sistemas operativos más recientes. Por ejemplo, Windows 2000 , Windows XP y Windows Server 2003 solo usan ACPI si la fecha de la BIOS es posterior al 1 de enero de 1999. [ 30 ] De manera similar, el kernel de Linux 2.6 puede no usar ACPI si la fecha de la BIOS es anterior al 1 de enero de 2001. [ 29 ]

Los sistemas operativos basados ​​en Linux pueden gestionar los eventos ACPI mediante acpid. [ 31 ]

Responsabilidades de OSPM

Una vez que un sistema operativo compatible con OSPM activa ACPI, toma el control exclusivo de todos los aspectos de la administración de energía y la configuración de dispositivos. La implementación de OSPM debe exponer un entorno compatible con ACPI a los controladores de dispositivos, lo que expone ciertos estados del sistema, los dispositivos y el procesador.

Estados de potencia

Estados globales

La especificación ACPI define los siguientes cuatro estados globales "Gx" y seis estados de suspensión "Sx" para un sistema informático compatible con ACPI: [ 32 ] [ 33 ]

La especificación también define un estado heredado : el estado de un sistema operativo que no admite ACPI. En este estado, el hardware y la energía no se gestionan mediante ACPI, lo que desactiva efectivamente ACPI.

Estados del dispositivo

Los estados del dispositivo D0D3 dependen del dispositivo:

  • D0 o completamente encendido es el estado de funcionamiento.
    • Al igual que con S0ix, Intel tiene estados D0ix para niveles intermedios en el SoC. [ 37 ]
  • D1 y D2 son estados de potencia intermedios cuya definición varía según el dispositivo.
  • D3 : El estado D3 se divide a su vez en D3 Caliente (tiene alimentación auxiliar) y D3 Frío (no se suministra alimentación):
    • Novedad : Un dispositivo puede solicitar la administración de energía para pasar a estados de mayor potencia.
    • El estado "Frío" o " Apagado" significa que el dispositivo está apagado y no responde a su bus.

Estados del procesador

Los estados de energía de la CPU C0C3 se definen de la siguiente manera:

  • C0 es el estado operativo.
  • C1 (a menudo conocido como Halt ) es un estado en el que el procesador no está ejecutando instrucciones, pero puede volver a un estado de ejecución prácticamente instantáneo. Todos los procesadores compatibles con ACPI deben admitir este estado de energía. Algunos procesadores, como el Pentium 4 y el AMD Athlon , también admiten un estado C1 mejorado ( C1E o Enhanced Halt State) para un menor consumo de energía; sin embargo, esto resultó ser inestable en algunos sistemas. [ 38 ] [ 39 ]
  • C2 (a menudo conocido como Stop-Clock ) es un estado en el que el procesador mantiene todo el estado visible para el software, pero puede tardar más en activarse. Este estado del procesador es opcional.
  • C3 (a menudo conocido como Sleep ) es un estado en el que el procesador no necesita mantener la coherencia de su caché , pero sí conserva otros estados. Algunos procesadores presentan variaciones del estado C3 (Deep Sleep, Deeper Sleep, etc.) que difieren en el tiempo que tarda en reactivarse. Este estado del procesador es opcional.

Los fabricantes definen estados adicionales para algunos procesadores. Estos se notifican al sistema mediante el método _CST . [ 40 ] Por ejemplo, la plataforma Haswell de Intel tiene estados hasta C10 , donde distingue estados del núcleo y estados del paquete : la diferencia radica en que el paquete no solo incluye los núcleos del procesador, sino también componentes como la caché L3, el controlador de memoria y otras funciones de E/S. [ 41 ] De manera similar, las CPU AMD Zen 2 diferencian entre estados C y estados P para el complejo del núcleo y la estructura Infinity Fabric. [ 42 ]

Para describir los estados de inactividad de grupos de componentes (por ejemplo, un paquete que contiene varios núcleos), se utiliza el método _LPI (inactividad de baja potencia). [ 43 ] Esto no debe confundirse con la tabla LPIT privada de Intel , que se utiliza para describir el estado de suspensión S0ix en el paquete C10 o el estado SLP_S0 del PCH. [ 44 ]

Estado de rendimiento

Mientras un dispositivo o procesador está en funcionamiento (D0 y C0, respectivamente), puede encontrarse en uno de varios estados de rendimiento energético . Estos estados dependen de la implementación. P0 es siempre el estado de mayor rendimiento, y de P1 a Pn son estados de rendimiento sucesivamente menor. El número total de estados depende del dispositivo o procesador, pero no puede ser superior a 16. [ 45 ]

Los estados P se conocen como SpeedStep en los procesadores Intel , como PowerNow! o Cool'n'Quiet en los procesadores AMD , y como PowerSaver en los procesadores VIA .

  • P0 potencia y frecuencia máximas
  • P1 menor que P0 , voltaje y frecuencia escalados
  • P2 menor que P1 , voltaje y frecuencia escalados [ 46 ]
  • Pn menor que P(n–1) , voltaje y frecuencia escalados

Consulte Escalado dinámico de frecuencia §  Escalado autónomo de frecuencia para obtener una breve descripción de un método de control más reciente basado en el Control de rendimiento del procesador colaborativo (CPPC) de ACPI. Este nuevo método permite cientos de estados posibles y que el procesador elija de forma autónoma entre un rango determinado de estados.

Interfaces

Hardware

Los sistemas compatibles con ACPI interactúan con el hardware a través de una "Interfaz de hardware de función fija (FFH)" o mediante un modelo de programación de hardware independiente de la plataforma que se basa en el lenguaje de máquina ACPI (AML) específico de la plataforma proporcionado por el fabricante del equipo original (OEM).

Las interfaces de hardware de función fija son características específicas de la plataforma, proporcionadas por los fabricantes de la plataforma con el fin de mejorar el rendimiento y facilitar la recuperación ante fallos. Los PC estándar basados ​​en Intel tienen una interfaz de función fija definida por Intel, [ 47 ] que proporciona un conjunto de funcionalidades básicas que reduce la necesidad de que un sistema compatible con ACPI disponga de pilas de controladores completas para proporcionar funcionalidades básicas durante el arranque o en caso de un fallo importante del sistema.

La interfaz de errores de plataforma ACPI (APEI) es una especificación para informar al sistema operativo sobre errores de hardware, por ejemplo, del chipset o de la memoria RAM.

Firmware

ACPI define muchas tablas que proporcionan la interfaz entre un sistema operativo compatible con ACPI y el firmware del sistema ( BIOS o UEFI ). Esto incluye RSDP, RSDT, XSDT, FADT, FACS, DSDT, SSDT, MADT y MCFG, por ejemplo. [ 48 ] [ 49 ]

Las tablas permiten describir el hardware del sistema de forma independiente de la plataforma y se presentan como estructuras de datos de formato fijo o en AML. La tabla AML principal es la DSDT (tabla de descripción de sistema diferenciada). El AML puede descompilarse con herramientas como iASL de Intel (de código abierto, parte de ACPICA) para fines como la modificación de las tablas y la ampliación de la compatibilidad con el sistema operativo. [ 50 ] [ 51 ]

El puntero de descripción del sistema raíz (RSDP) se ubica de forma dependiente de la plataforma y describe el resto de las tablas.

Microsoft utiliza una tabla ACPI personalizada llamada Tabla Binaria de Plataforma de Windows (WPBT) para permitir que los proveedores agreguen software al sistema operativo Windows automáticamente. Se ha descubierto que Lenovo utiliza esta función para instalar software malicioso como Superfish . [ 52 ] Asimismo, se ha descubierto que Gigabyte Technology utiliza esta función para instalar su software OEM. Samsung envió PC con Windows Update deshabilitado. [ 52 ] Las versiones de Windows anteriores a Windows 7 no admiten esta función, pero se pueden utilizar técnicas alternativas. Este comportamiento se ha comparado con el de los rootkits . [ 53 ] [ 54 ]

Crítica

Mark Shuttleworth, fundador de Ubuntu, afirma que ACPI representa un riesgo para la seguridad. [ 55 ] Declara que «defender ACPI en su dispositivo de próxima generación equivale a defender la instalación de un troyano de proporciones monumentales en su sala de estar y en su centro de datos» y que «el firmware de su dispositivo es el mejor amigo de la NSA ». Continúa diciendo: «Su mayor error es suponer que la NSA es la única institución que abusa de esta posición de confianza; de hecho, es razonable suponer que todo el firmware es un foco de inseguridad, debido a la incompetencia extrema de los fabricantes y a la competencia extrema de una amplia gama de agencias similares». Sugiere el firmware declarativo de código abierto (con o sin ACPI) como solución. [ 56 ]

En noviembre de 2003, Linus Torvalds —autor del núcleo Linux— describió ACPI como "un desastre de diseño total en todos los sentidos". [ 56 ] [ 57 ]

Véase también

Lecturas adicionales

Referencias

  1. "Descripción general de ACPI" (PDF) . www.acpi.info . Archivado del original ( presentación de diapositivas en PDF) el 25 de mayo de 2019.
  2. "Especificación del BIOS APM" . Intel Corporation , Microsoft Corporation . Febrero de 1996. Archivado del original (RTF) el 6 de febrero de 2012. Recuperado el 2 de julio de 2010 .
  3. "¿Qué es ACPI (Advanced Configuration and Power Interface)? - Definición de WhatIs.com" . SearchWindowsServer . Consultado el 18 de septiembre de 2020 .
  4. "Árbol de dispositivos ACPI: representación del espacio de nombres ACPI — Documentación del kernel de Linux" . www.kernel.org . Consultado el 18 de septiembre de 2020 .
  5. "La página web de la Interfaz de Energía y Configuración Avanzada tiene una nota destacada que enlaza con la página de Especificaciones ACPI Preexistentes en el sitio web UEFI" . acpi.org . 23 de julio de 2014. Archivado del original el 22 de junio de 2011. Consultado el 25 de enero de 2016 .
  6. "Especificación de la interfaz de configuración y alimentación avanzada (ACPI) versión 6.6" (PDF) . 13 de mayo de 2025. Consultado el 19 de julio de 2025 .
  7. Bernhard Kauer (agosto de 2009). "ATARE: Tablas ACPI y expresiones regulares" (PDF) . Consultado el 18 de febrero de 2019 .
  8. 1 2 Implementación de ACPI en FreeBSD - Usenix
  9. ACPI en Linux , 2005
  10. ACPICA: Arquitectura de componentes ACPI
  11. "Léame para el paquete de controladores ACPI" . arcanoae.com . Consultado el 6 de septiembre de 2020 .
  12. "Microsoft no utiliza ACPI para Windows" . Der Standard (en alemán austriaco) . Consultado el 6 de noviembre de 2022 .
  13. ^ "Microsoft: ACPI solo funciona con funciones de Windows" . Golem.de . Consultado el 6 de noviembre de 2022 .
  14. Gates, Bill (24 de enero de 1999). "Extensiones de ACPI" (PDF) . Archivado del original (PDF) el 2 de febrero de 2007.
  15. Hewlett-Packard ; Intel Corporation ; Microsoft ; Phoenix Technologies ; Toshiba (6 de diciembre de 2011). "Especificación de interfaz de configuración y energía avanzada (revisión 5.0)" (PDF) . acpi.info . Archivado del original (PDF) el 14 de septiembre de 2012. Recuperado el 17 de noviembre de 2013 .
  16. "Especificación de interfaz de configuración y alimentación avanzada (Revisión 5.1)" (PDF) . uefi.org . 23 de julio de 2014. Consultado el 24 de mayo de 2015 .
  17. "Limitaciones al usar Microsoft Windows 98 en portátiles Compaq Armada" (PDF) . physik.hu-berlin.de ( FTP ). Octubre de 1998. pág. 3. Consultado el 27 de enero de 2014 . (Para ver los documentos, consulte Ayuda:FTP )
  18. "Windows 98 en sistemas ThinkPad - Información general de ThinkPad" . Support.lenovo.com. Archivado del original el 3 de febrero de 2014. Consultado el 27 de enero de 2014 .
  19. Robert Cowart; Brian Knittel (2000). Uso de Microsoft Windows 2000 Professional . Que Publishing. pág . 30. ISBN  978-0-7897-2125-9.
  20. Windows 98 no es compatible con el modo de refrigeración pasiva ACPI.
  21. "Artículo de portada: Errores y correcciones de Win98 - Diciembre de 1998" . winmag.com . Archivado del original el 13 de octubre de 1999.
  22. "Registro de cambios de ArcaOS" . Consultado el 24 de agosto de 2020 .
  23. "Anuncio de lanzamiento de FreeBSD 5.0" . www.freebsd.org . Consultado el 3 de diciembre de 2020 .
  24. "acpi(4) - Páginas del manual de NetBSD" . man.netbsd.org . Consultado el 3 de diciembre de 2020 .
  25. "acpi(4) - Páginas del manual de OpenBSD" . man.openbsd.org . Consultado el 3 de diciembre de 2020 .
  26. Therien, Guy (6 de enero de 2000). "Revisión técnica de la especificación ACPI 2.0, Intel Developer Forum" (PPT) . Intel Corporation. Archivado del original el 21 de julio de 2011. Recuperado el 21 de agosto de 2011 .
  27. Marshall, Allen. "ACPI en Windows Vista" (PPT) . Microsoft Corporation . Consultado el 2 de julio de 2010 .
  28. "Acpi.sys: El controlador ACPI de Windows" . Microsoft Corporation . 15 de junio de 2017. Consultado el 20 de septiembre de 2019 .
  29. 1 2 El estado de ACPI en el núcleo de Linux
  30. BIOS ACPI . msdn.microsoft.com .
  31. Siever, Ellen; Weber, Aaron; Figgins, Stephen; Love, Robert; Robbins, Arnold (2005). Linux en pocas palabras (5.ª ed.). Sebastopol, California: O'Reilly. pág. 36. ISBN   978-0-596-52949-9OCLC 773210086 
  32. Especificación ACPI Rev 5.0 - con fecha del 6 de diciembre de 2011
  33. Anand Lal Shimpi (5 de octubre de 2012). "Análisis de la arquitectura Haswell de Intel" . AnandTech . Archivado del original el 7 de octubre de 2012. Consultado el 20 de octubre de 2013 .
  34. windows-driver-content. "Modern Standby" . docs.microsoft.com . Consultado el 20 de marzo de 2020 .
  35. "Seis Estados" . software.intel.com . 9 de marzo de 2020.
  36. Wang, Wendy (17 de octubre de 2018). "Cómo lograr estados S0ix en Linux*" . 01.org .
  37. "D0ix States" . software.intel.com . 9 de marzo de 2020.
  38. "Athlon II X2: Hardware C1E y el regreso del error CnQ" . AnandTech . Archivado del original el 19 de abril de 2010. Consultado el 26 de octubre de 2020 .
  39. Wasson, Scott (21 de febrero de 2005). "Procesadores Pentium 4 serie 600 de Intel" . The Tech Report . pág. 2. 
  40. "8.1. Estados de energía del procesador — Documentación de la especificación ACPI 6.4" .
  41. "Paquete del procesador y estados C del núcleo" . AnandTech . 9 de junio de 2013. Archivado del original el 27 de septiembre de 2013. Consultado el 20 de octubre de 2013 .
  42. " [ Público ] GUÍA DE AJUSTE DEL BIOS Y LA CARGA DE TRABAJO DE AMD EPYC 9004" (PDF) .
  43. "8.4. Declaración de procesadores — Documentación de la especificación ACPI 6.4" . uefi.org .
  44. "Tabla de inactividad de bajo consumo (LPIT) — Documentación del kernel de Linux" . docs.kernel.org .
  45. "Especificación de interfaz de configuración y alimentación avanzada, revisión 3.0, sección 2.6 Definiciones de estado de rendimiento del dispositivo y del procesador" (PDF) . ACPI.info . 2 de septiembre de 2004. pág. 23. Archivado del original (PDF) el 28 de noviembre de 2015. Consultado el 19 de agosto de 2015 .   
  46. Agregación de enlaces
  47. Intel Corporation (septiembre de 2006). "ACPI específico del proveedor de procesadores Intel" (PDF) . Archivado del original (PDF) el 18 de enero de 2007. Consultado el 5 de octubre de 2014 .
  48. Brown, Len (20 de julio de 2005). "ACPI en Linux". Simposio de Linux de Ottawa : 3. CiteSeerX 10.1.1.173.2206 . 
  49. "Tablas ACPI: la documentación del kernel de Linux" . www.kernel.org . Archivado del original el 20 de octubre de 2020. Consultado el 8 de noviembre de 2020 .
  50. "DSDT" . ArchWiki .
  51. "Primeros pasos con ACPI" . GitBook .
  52. 1 2 Hoffman, Chris (19 de agosto de 2015). "Zombie Crapware: Cómo funciona la tabla binaria de la plataforma Windows" . How-To Geek .
  53. "Proveedores de 'rootkit': 'Tabla binaria de la plataforma Windows' (WPBT)" . Born's Tech and Windows World . 6 de diciembre de 2017.
  54. Mayank Sharma (27 de septiembre de 2021). "Millones de PC con Windows 10 expuestas por una grave vulnerabilidad de seguridad" . TechRadar . Consultado el 10 de noviembre de 2022 .
  55. Blog de Mark Shuttleworth (17 de marzo de 2014), "ACPI, firmware y su seguridad"
  56. 1 2 Revista Linux número 162, mayo de 2014, página 9
  57. Searls, Doc (25 de noviembre de 2003). "Linus y los lunáticos, parte II" . Linux Journal . Consultado el 13 de enero de 2010 .
  • Sitio web oficial (especificaciones UEFI y ACPI)
  • Todo lo que necesitas saber sobre los modos de ahorro de energía de los estados C de la CPU
  • Código EFI ASL de ejemplo archivado el 12 de abril de 2023 en la Wayback Machine utilizada por VirtualBox ; el código EFI/ASL en sí proviene del kit de desarrollo Intel EFI II de código abierto ( TianoCore ).
  • ACPICA