Что такое hal в компьютере
HAL (сокр. от англ. Hardware Abstraction Layer ) — более не разрабатываемый демон, представлявший слой аппаратных абстракций для Linux и некоторых других Unix-образных систем.
Задачи и история разработки
Проект был изначально создан Red Hat. Демон HAL получает информацию об аппаратном обеспечении от ядра ОС (в Linux, например, HAL черпает большую часть информации из sysfs), и предоставляет программам-клиентам через D-Bus в удобном для использования виде. Получение информации напрямую от ядра — процесс сложный и может быть сопряжен с проблемами с безопасностью; следовательно, наличие HAL сильно упрощает разработку программ, которые должны знать об аппаратной части компьютера (например, что пользователь только что отсоединил принтер или вставил флешку). Поскольку HAL на всех платформах предоставляет информацию в одном формате, независимо от операционной системы и версии ядра, он также облегчает разработку кроссплатформенного ПО. Кроме того, HAL делал возможным создавать автоматические действия (автоматическое монтирование дисков, автоматическую настройку принтеров итд) через правила.
HAL распространяется по лицензиям GNU General Public License и Academic Free License, и является свободным ПО [1] .
Причины устранения
Основное преимущество в новой подсистеме udev (перед HAL) в том, что первый является событийно-управляемой и имеет тесную интеграцию с ядром, а HAL же, будучи реализованным в userspace в виде демона, вынужден периодически опрашивать ядро. Таким образом, использование событийно-управляемого udev значительно снижает нагрузку на систему, а значит и электропотребление. Также, описания правил для устройств выполнены в виде простых файлов конфигурации и гораздо проще и понятней для пользователей и разработчиков, чем XML примененный ранее в HAL. И наконец, udev разработан «с чистого листа», с учётом предыдущего опыта и в нём отсутствует устаревший или беспорядочный код.
Текущее состояние
HAL является устаревшим и не рекомендуется к использованию. Решения, поставленные за основу при проектировании HAL, на практике оказались неэффективными и единственным выходом оказалось создание новой подсистемы и перенос функциональности. Такой системой стал udev [2] .
В настоящий момент поддержка HAL убрана из ядра,а самые крупные дистрибутивы (Ubuntu [3] , Debian [4] и Fedora [5] ) завершили переход и используют Udev.
Содержание
Причины устранения
Основное преимущество в новой подсистеме udev (перед HAL) в том, что первый является событийно-управляемой и имеет тесную интеграцию с ядром, а HAL же, будучи реализованным в userspace в виде демона, вынужден периодически опрашивать ядро. Таким образом, использование событийно-управляемого udev значительно снижает нагрузку на систему, а значит и электропотребление. Также, описания правил для устройств выполнены в виде простых файлов конфигурации и гораздо проще и понятней для пользователей и разработчиков, чем XML примененный ранее в HAL. И наконец, udev разработан "с чистого листа", с учетом предыдущего опыта и в нем отсутсвует устаревший или беспорядочный код.
Примечания
Проекты на freedesktop.org | |
---|---|
Компоненты |