Was ist ACPI? ACPI ist die Abkürzung für Advanced Configuration and Power Interface (Erweiterte Konfigurations- und Energieschnittstelle), die eine Standardmethode zur Integration von Energieverwaltungsfunktionen in ein PC-System bietet. In diesem Artikel erhalten Sie eine detaillierte Einführung in APCI, einschließlich seiner Architektur und Geschichte.
Was ist ACPI?
Wenn Sie das BIOS im Windows-System aufrufen, finden Sie ACPI möglicherweise auf der Registerkarte Erweitert. Was also ist ACPI?
Es ist die Abkürzung für Advanced Configuration and Power Interface. In einem Computer kann das Betriebssystem einen offenen Standard nutzen, der von ACPI angeboten wird, um Computer-Hardwarekomponenten zu finden und zu konfigurieren, um die Energieverwaltung und Statusüberwachung durchzuführen.
Im Gegensatz zu früheren BIOS-zentrierten Systemen, bei denen die plattformspezifische Firmware die Energieverwaltung und die Konfigurationsrichtlinien bestimmt, unterstellt ACPI die Energieverwaltung der Kontrolle des Betriebssystems.
Diese Spezifikation ist entscheidend für das OSPM-System (Operating System-directed configuration and Power Management), eine ACPI-Implementierung, mit der die Zuständigkeiten für die Geräteverwaltung über die Benutzeroberfläche von der alten Firmware-Schnittstelle entfernt werden können.
Intern verwendet ACPI die von der System-Firmware (UEFI oder BIOS) bereitgestellte Befehlsliste („Methoden“), die der Kernel analysiert, um den Betriebssystemkern über die verfügbaren Komponenten und ihre Funktionen zu informieren.
Dann verwendet ACPI die eingebettete minimale virtuelle Maschine, um die erforderlichen, in ACPI-Maschinensprache geschriebenen Operationen durchzuführen (z.B. die Initialisierung von Hardwarekomponenten).
Architektur
Das ACPI auf Firmware-Ebene besteht aus drei Hauptkomponenten: ACPI-Tabelle, ACPI-BIOS und ACPI-Register. Im Gegensatz zu früheren Versionen wie APM oder PnP BIOS implementiert ACPI seine Funktionalität kaum in den ACPI BIOS-Code, und die Hauptaufgabe des ACPI BIOS-Codes besteht darin, die ACPI-Tabellen in den Systemspeicher zu laden.
Im Gegensatz dazu werden die meisten ACPI-Firmwarefunktionen im Bytecode der ACPI-Maschinensprache (AML) bereitgestellt, einer Turing-kompletten, domänenspezifischen Low-Level-Sprache, die in der ACPI-Tabelle gespeichert ist.
Um diese Tabellen zu verwenden, muss das Betriebssystem über einen Interpreter für den AML-Bytecode verfügen. Die ACPI Component Architecture (ACPICA) bietet eine Referenz für die Implementierung von AML-Interpretern. Während der BIOS-Entwicklung wird der AML-Bytecode aus ASL-Code (ACPI-Quellsprache) kompiliert.
Da ACPI auch das PnP-BIOS ersetzt, bietet es auch einen Hardware-Enumerator, der hauptsächlich in der ACPI-Tabelle der Differentiated System Description Table (DSDT) implementiert ist. Der Vorteil der Bytecode-Methode besteht darin, dass der ACPI-Bytecode im Gegensatz zum PnP-BIOS-Code (16 Bit) in jedem Betriebssystem verwendet werden kann, sogar im 64-Bit-Long-Mode.
Geschichte
- Im Dezember 1996 wurde die erste Revision der ACPI-Spezifikation veröffentlicht, die 16-Bit- und 32-Bit-Adressräume unterstützte.
- Im August 2000 wurde die ACPI-Revision 2.0 veröffentlicht, die 64-Bit-Adressräume und Multiprozessor-Workstations und -Server unterstützte.
- Im September 2004 wurde die Revision 3.0 veröffentlicht. Sie unterstützte den SATA-Controller, den PCI Express Bus, Multiprozessor-Unterstützung für mehr als 256 Prozessoren, Umgebungslichtsensoren und Geräte mit Benutzerpräsenz. Außerdem wurde das thermische Modell über die bisherige prozessorzentrierte Unterstützung hinaus erweitert.
- Im Juni 2009 wurde die Revision 4.0 der ACPI-Spezifikation veröffentlicht, die verschiedene neue Funktionen in das Design einbrachte. Die bemerkenswertesten sind die Unterstützung von USB 3.0 , die Unterstützung des logischen Prozessor-Leerlaufs und die Unterstützung von x2APIC.
- Im Dezember 2011 wurde die Revision 5.0 der ACPI-Spezifikation veröffentlicht, gefolgt von der Revision 5.1, die im Juli 2014 veröffentlicht wurde.
- Im Januar 2019 wurde die neueste Revision 6.3 der ACPI-Spezifikation veröffentlicht.
Anwendungen in Betriebssystemen
Microsofts Windows 98 war das erste Betriebssystem, das ACPI implementierte, aber seine Implementierung war ein wenig falsch oder unvollständig. Einige der damit verbundenen Probleme wurden durch die ACPI-Hardware der ersten Generation verursacht.
In der ersten Version von Windows 98 war ACPI standardmäßig deaktiviert, mit Ausnahme der Whitelist von Systemen. Andere Betriebssysteme, darunter spätere Versionen von Windows, eComStation, FreeBSD, NetBSD, OpenBSD, HP-UX, OpenVMS, Linux und PC-Versionen von Solaris, unterstützen zumindest ACPI.
Einige neuere Betriebssysteme, wie z.B. Windows Vista (und später Microsoft Windows), setzen voraus, dass der Computer ein ACPI-kompatibles BIOS hat.
Windows-basierte Betriebssysteme verwenden acpi.sys, um auf ACPI-Ereignisse zuzugreifen.
Die Linux-Kernel 2.4-Serie hatte die geringste Unterstützung für ACPI und wurde seit der Kernel-Version 2.6.0 (standardmäßig aktiviert) für eine bessere Unterstützung implementiert. Alte ACPI-BIOS-Implementierungen weisen oft viele Fehler auf, so dass zukünftige Betriebssysteme sie nicht unterstützen.
Wenn das BIOS-Datum beispielsweise nach dem 1. Januar 1999 liegt, verwenden Windows 2000, Windows XP und Windows Server 2003 nur ACPI; für Windows 98 Second Edition ist dieses Datum der 1. Dezember 1999. In ähnlicher Weise hat der Linux-Kernel 2.6 jedes ACPI-BIOS ab dem 1. Januar 2001 auf die schwarze Liste gesetzt.
Linux-basierte Betriebssysteme können über acpid Zugriff auf ACPI-Ereignisse bieten.
Unterm Strich
In diesem Artikel haben Sie erfahren, was ACPI (Advanced Configuration and Power Interface) ist, und Sie können seine Architektur, seine Geschichte und seine Anwendung in Betriebssystemen kennenlernen.