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, і отже, є вільним програмним забезпеченням[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.
Виноски [ред.]
- ↑ «"COPYING" file from the source code». «HAL is licensed to you under your choice of the Academic Free License version 2.1, or the GNU General Public License version 2.»
- ↑ «Update on DeviceKit».
- ↑ Udisks, freedesktop.org, http://www.freedesktop.org/wiki/Software/udisks, процитовано 2010-11-01
- ↑ Upower, freedesktop.org, http://upower.freedesktop.org/, процитовано 2010-11-01
- ↑ Ликвидация DeviceKit, freedesktop.org, http://www.freedesktop.org/wiki/Software/DeviceKit, процитовано 2010-11-01
- ↑ Halsectomy, ubuntu.com, https://wiki.ubuntu.com/Halsectomy, процитовано 2009-11-01
- ↑ HAL Removal, Debian wiki
- ↑ Hal Removal, fedora
Дивись також [ред.]
|
||||||||||||||||
