HAL (скорочення від ) — демон, що надає шар апаратних абстракцій для Linux і деяких інших Unix-подібних систем. Проект спочатку створювався Red Hat, зараз розробляється на freedesktop.org. Демон HAL отримує інформацію про апаратне забезпечення від ядра ОС (у Linux, наприклад, HAL черпає велику частину інформації з sysfs), і надає програмам-клієнтам через D-Bus в зручному для користування форматі. Отримання інформації безпосередньо від ядра — процес складний і може бути пов'язаний з проблемами з безпекою, отже, наявність HAL сильно спрощує розробку програм, які мають знати про апаратну частину комп'ютера (наприклад, що користувач щойно від'єднав принтер або вставив флешку). Оскільки HAL на всіх платформах надає інформацію в одному форматі, незалежно від операційної системи і версії ядра, він також полегшує розробку крос-платформного ПЗ.

HAL розповсюджується за ліцензіями GNU General Public License і Academic Free License, і отже, є вільним програмним забезпеченням.

У теперішній час HAL вважається застарілим і не рекомендується до використання. Основними причинами є монолітність і труднощі налаштування.

Спочатку велика частина логіки HAL була перенесена в Udev, а правила в новий модуль — DeviceKit (не має нічого спільного з PolicyKit або ConsoleKit). Перевага udev перед HAL в тому, що перший є подієво-керованим модулем, а HAL періодично опитує ядро. Таким чином, використання подієво-керованого udev значно знижує навантаження на систему, а значить і електроспоживання.

Однак незабаром схема udev+DeviceKit дещо змінилася — розробники виявили, що велика частина апаратури вже управляється різними програмними компонентами і необхідні тільки правила для дисків (udisks) і живлення (upower). Проект DeviceKit був розбитий на кілька дрібніших частин і більше не використовується і не згадується.

Таким чином, сучасні дистрибутиви використовують тільки Udev і правила до нього (udisks, upower). Проте зважаючи на інерційності коду, багато програм все ще вимагають застарілий HAL (в основному для виявлення дисків) і тому дистрибутиви змушені поставляти HAL, фактично дублюючи логіку.

Але багато дистрибутивів (наприклад, Ubuntu, DebianHAL Removal , Debian wiki и FedoraHal Removal , fedora) вже приступили до використання замість нього Udev.

Виноски

Див. також Шар апаратних абстракцій