ACPI - это ни то, и ни другое

Это достаточно сложный и объемный протокол, который я, к своему стыду должен признать знаю весьма слабо. Достаточно упомянуть, что в него входит свой собственный язык - AML (компилятор, интерпретатор байт-кода, отладчик и т.д.) который я не знаю вовсе.

Помимо всех прочих функций он также отвечает за управление энергоснабжением (что, ясное дело прямо следует из его названия - Advanced Configuration and Power Interface). Остальные его фунции, такие как отображение прерываний приходящих по шине PCI на конкретные вектора прерываний в данном случае не представляют для нас интереса. Для простоты можно считать, что он заменяет собой некоторые устаревшие протоколы - такие как протокол управления питанием APM и протокол определения аппаратной конфигурации компьютера PnP (для последней цели используется хранящаяся в энергонезависимой памяти таблица описывающая базовую конфигурацию системы - DSDT (Differentiated System Description Table). Она включается в пространство имен ACPI).
Самое интересное, что он может работать независимо от операционной системы - обработчик прерывания там изначально указывает на подпрограммы BIOS.
Протокол предусматривает наличие некоторых элементов управления (блок питания, батарея у notebook'ов, управляемые вентиляторы процессора и подключенные через разъемы на материнской плате, некоторые аппаратные кнопки, процессор, "термальная зона", видеоадаптер и т.д.) с которыми могут происходить определенные
события.
Эти события могут передаваться через соответствующий интерфейс в операционную систему, которая в свою очередь может производить мониторинг состояния указанных ресурсов (в Линуксе это делается с использованием каталога /proc/acpi псевдофайловой системы procfs) и вызывать обработчики этих событий.
В частности, именно ACPI с программной точки зрения отвечает за "просыпание" компьютера (чтобы компьютер проснулся необходима как аппаратная, так и программная поддержка этого процесса).
Так в журнале системы (доступном по dmesg) при загрузке компьютера отмечаются устройства,которые могут вызвать события приводящие к просыпанию:
Код: Выделить всё
ACPI wakeup devices:
SLPB PCI0 HUB0 USB0 USB1 USB2 USBE
ACPI: (supports S0 S3 S4 S5)
где S0...S5 - доступные состояния режимов энергосбережения.
S3 (suspend-to-ram) - состояние в котором отключены все устройства (включая процессор) кроме оперативной памяти.
S4 (suspend-to-disk) - состояние в котором ОЗУ также обесточена.