HAL (freedesktop.org)
HAL (скорочення від англ. Hardware Abstraction Layer) — демон, що надає шар апаратних абстракцій для Linux і деяких інших Unix-подібних систем. Проект спочатку створювався Red Hat, зараз розробляється на freedesktop.org. Демон HAL отримує інформацію про апаратне забезпечення від ядра ОС (у Linux, наприклад, HAL черпає велику частину інформації з sysfs), і надає програмам-клієнтам через D-Bus в зручному для користування форматі. Отримання інформації безпосередньо від ядра — процес складний і може бути пов'язаний з проблемами з безпекою, отже, наявність HAL сильно спрощує розробку програм, які мають знати про апаратну частину комп'ютера (наприклад, що користувач щойно від'єднав принтер або вставив флешку). Оскільки HAL на всіх платформах надає інформацію в одному форматі, незалежно від операційної системи і версії ядра, він також полегшує розробку крос-платформного ПЗ.
HAL розповсюджується за ліцензіями GNU General Public License і Academic Free License, і отже, є вільним програмним забезпеченням[2].
У теперішній час HAL вважається застарілим і не рекомендується до використання. Основними причинами є монолітність і труднощі налаштування[3].
Спочатку велика частина логіки HAL була перенесена в Udev, а правила в новий модуль — DeviceKit (не має нічого спільного з PolicyKit або ConsoleKit). Перевага udev перед HAL в тому, що перший є подієво-керованим модулем, а HAL періодично опитує ядро. Таким чином, використання подієво-керованого udev значно знижує навантаження на систему, а значить і електроспоживання.
Однак незабаром схема udev+DeviceKit дещо змінилася — розробники виявили, що велика частина апаратури вже управляється різними програмними компонентами і необхідні тільки правила для дисків (udisks)[4] і живлення (upower)[5]. Проект DeviceKit був розбитий на кілька дрібніших частин і більше не використовується і не згадується.[6]
Таким чином, сучасні дистрибутиви використовують тільки Udev і правила до нього (udisks, upower). Проте зважаючи на інерційності коду, багато програм все ще вимагають застарілий HAL (в основному для виявлення дисків) і тому дистрибутиви змушені поставляти HAL, фактично дублюючи логіку.
Але багато дистрибутивів (наприклад, Ubuntu[7], Debian[8] и Fedora[9]) вже приступили до використання замість нього Udev.
HAL is licensed to you under your choice of the Academic Free License version 2.1, or the GNU General Public License version 2.
|