ACPI

ACPI (Advanced Configuration and Power Interface) – это стандарт, который разработан для управления энергопотреблением и конфигурацией системы на компьютерах. ACPI используется для управления питанием устройств, управления ресурсами и управления управлением потоком данных между устройствами.
ACPI работает на уровне аппаратного обеспечения и операционной системы. Когда компьютер включается, ACPI инициализирует устройства и определяет их конфигурацию. Затем ACPI управляет питанием устройств, переводя их в режим сна или гибернации, если они не используются.
ACPI также обеспечивает возможность управления питанием на уровне операционной системы, позволяя пользователю настраивать параметры энергопотребления и спящего режима для устройств. Это помогает снизить энергопотребление компьютера.

Наиболее известной частью стандарта ACPI является управление питанием, имеющее два значительных усовершенствования по сравнению с предшествующими стандартами. Во-первых, концепция ACPI передаёт управление питанием операционной системе (ОЅ). Такая модель выгодно отличается от существовавшей до этого модели APM, в которой за управление питанием ответственен BIOS / UEFI материнской платы, а возможности ОС в этом отношении сильно ограничены. В модели ACPI BIOS предоставляет операционной системе методы для прямого детализированного управления аппаратным обеспечением. Таким образом, ОС получает практически полный контроль над энергопотреблением.

Другая важная часть спецификации ACPI — это предоставление на серверах и настольных компьютерах таких возможностей по управлению питанием, которые до того были доступны только на портативных компьютерах. Например, система может быть переведена в состояние чрезвычайно низкого энергопотребления, в котором питание подается лишь на оперативную память (а возможно, и она находится без питания), но при этом прерывания некоторых устройств (часы реального времени, клавиатура, модем и т. д.) могут достаточно быстро перевести систему из такого состояния в нормальный рабочий режим (то есть «пробудить» систему).

Помимо требований к программному интерфейсу, ACPI также требует специальной поддержки от аппаратного обеспечения. Таким образом, поддержку ACPI должны иметь ОС, чипсет материнской платы и даже центральный процессор.

В наши дни различные версии ACPI поддерживаются многими ОС — в том числе всеми версиями Microsoft Windows, системами Linux, FreeBSD, OpenBSD, NetBSD и eComStation.

Интерфейс ACPI организуется путём размещения в определённой области оперативной памяти нескольких таблиц, содержащих описание аппаратных ресурсов и программных методов управления ими. Каждый тип таблицы имеет определённый формат, описанный в спецификации. Кроме того, таблицы, содержащие методы управления устройствами и обработчики событий ACPI, содержат код на языке AML (ACPI Machine Language) — машинно-независимый набор инструкций, представленный в компактной форме. Операционная система, поддерживающая ACPI, содержит интерпретатор AML, который транслирует инструкции AML в инструкции центрального процессора, выполняя таким образом методы или обработчики событий.

Некоторые из этих таблиц полностью или частично хранят статические данные в том смысле, что от запуска к запуску системы они не изменяются. Статические данные, как правило, создаются производителем материнской платы или BIOS и описываются на специальном языке ASL (ACPI Source Language), а затем компилируются в представление на AML.

Другие таблицы хранят динамические данные, которые зависят, например, от установок BIOS и комплектации материнской платы. Такие таблицы формируются BIOS на этапе загрузки системы до передачи управления ОС.

Роль ОС в этой модели заключается в том, что она переводит различные компоненты аппаратного обеспечения из одного состояния (например, нормальный режим работы) в другое (например, режим пониженного энергопотребления). Переход из одного состояния в другое происходит, как правило, по событию. Например, падение температуры на ядре процессора является событием, по которому ОС может вызвать метод уменьшения скорости вращения вентилятора. Другой пример: пользователь дал явное указание перехода системы в спящее состояние с сохранением оперативной памяти на диск, а через некоторое время администратор сети произвёл включение системы c помощью функции Wake-on-LAN.
Следует отметить, что такие интерфейсы, как USB, PCI ExpressPCI/PXI/CompactPCI, SAS, SATA и HyperTransport исходно разработаны для поддержки ACPI.

В linux ACPI (Advanced Configuration and Power Interface) и Udev (Userspace Device Manager) являются двумя различными компонентами, которые взаимодействуют между собой. ACPI отвечает за управление энергопотреблением, горячим подключением устройств и другими функциями аппаратного обеспечения компьютера, в то время как Udev отвечает за управление устройствами и их обнаружение в пользовательском пространстве.
ACPI используется для определения и управления аппаратными ресурсами и функциями компьютера, такими как питание, переход в спящий режим, управление температурой и т. д. Udev, с другой стороны, служит для определения и управления устройствами, подключенными к компьютеру, и автоматического присвоения им имен устройств (например, `/dev/sda` для жесткого диска).
Udev использует информацию о устройствах, предоставленную ACPI, чтобы определить их тип, подключить к ним соответствующие устройства ввода-вывода и выполнить необходимые действия при обнаружении нового устройства. Таким образом, ACPI и Udev работают вместе для обеспечения правильного функционирования и управления устройствами в Linux-системе.

Обсуждение закрыто.