HAL (freedesktop.org)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
HAL
Стабільний випуск 0.5.13 (15 липня 2009; 1956 днів тому)
Операційна система Linux, FreeBSD, NetBSD, OpenSolaris, Solaris
Платформа UNIX
Тип Системне програмне забезпечення
Ліцензія GNU General Public License та Academic Free License
Сайт freedesktop.org/wiki/Software/hal

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, і отже, є вільним програмним забезпеченням[1].

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

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

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

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

Але багато дистрибутивів (наприклад, Ubuntu[6], Debian[7] и Fedora[8]) вже приступили до використання замість нього Udev.

Виноски[ред.ред. код]

  1. «"COPYING" file from the source code». Архів оригіналу за 2012-03-15. «HAL is licensed to you under your choice of the Academic Free License version 2.1, or the GNU General Public License version 2.» 
  2. «Update on DeviceKit». Архів оригіналу за 2012-03-15. 
  3. Udisks, freedesktop.org, http://www.freedesktop.org/wiki/Software/udisks, процитовано 2010-11-01 
  4. Upower, freedesktop.org, http://upower.freedesktop.org/, процитовано 2010-11-01 
  5. Ликвидация DeviceKit, freedesktop.org, http://www.freedesktop.org/wiki/Software/DeviceKit, процитовано 2010-11-01 
  6. Halsectomy, ubuntu.com, https://wiki.ubuntu.com/Halsectomy, процитовано 2009-11-01 
  7. HAL Removal, Debian wiki
  8. Hal Removal, fedora

Дивись також[ред.ред. код]