Jump to content

ХАЛ (программное обеспечение)

ИМЕТЬ ЗНАЧЕНИЕ
Стабильная версия
0.5.14 / 30 ноября 2009 г .; 14 лет назад ( 30 ноября 2009 )
Операционная система Linux , FreeBSD , NetBSD , OpenSolaris , Solaris
Платформа UNIX
Тип Системное программное обеспечение
Лицензия Стандартная общественная лицензия GNU и академическая свободная лицензия
Веб-сайт бесплатный рабочий стол .org /неделя /Программное обеспечение /иметь значение /

HAL ( Hardware Abstraction Layer или, скорее, Hardware Annotation Library ) — программная подсистема для UNIX-подобных операционных систем, обеспечивающая аппаратную абстракцию .

HAL теперь устарел в большинстве дистрибутивов Linux и FreeBSD. Функциональность объединяется с udev в Linux (2008–2010 гг.) и devd во FreeBSD. [ нужна ссылка ] Раньше HAL был построен на основе udev. [ нужна ссылка ]

Некоторые другие операционные системы, у которых нет альтернативы, например udev или devd, все еще используют HAL.

Цель уровня абстракции оборудования заключалась в том, чтобы позволить настольным приложениям обнаруживать и использовать оборудование хост-системы через простой, переносимый и абстрактный API , независимо от типа базового оборудования. [ 1 ]

HAL для ОС Linux изначально был предложен Хэвоком Пеннингтоном . Он стал проектом freedesktop.org и был ключевой частью программного стека сред GNOME и KDE рабочего стола . Это бесплатное программное обеспечение , имеющее двойную лицензию: GNU General Public License и Academic Free License . [ 2 ]

HAL не связан с концепцией HAL ядра Windows NT , которая обрабатывает некоторые базовые функции ядра, специфичные для платформы, такие как маршрутизация прерываний.

Обоснование

[ редактировать ]

Традиционно ​​операционной системы ядро отвечало за предоставление абстрактного интерфейса для оборудования, на котором работала система. Приложения использовали интерфейс системных вызовов или выполняли файловый ввод-вывод на узлах устройств для связи с оборудованием через эти абстракции. Этого было достаточно для простого оборудования первых настольных компьютеров.

Однако компьютерное оборудование усложнилось, и абстракции, обеспечиваемые ядрами Unix, не поспевают за растущим числом типов устройств и периферийных устройств, которые сейчас распространены как на серверных, так и на настольных компьютерах. Большинство современных шин также поддерживают горячее подключение и могут иметь нетривиальную топологию . В результате устройства обнаруживаются или меняют свое состояние способами, которые сложно отследить через интерфейс системных вызовов или Unix IPC. Сложность этого вынуждает авторов приложений заново реализовывать логику аппаратной поддержки. [ 1 ]

Некоторым устройствам также требуются привилегированные вспомогательные программы для их подготовки к использованию. Их часто приходится вызывать способами, которые сложно выразить с помощью модели разрешений Unix (например, позволяя пользователям подключаться к беспроводным сетям только в том случае, если они вошли в видеоконсоль). [ 1 ] Авторы приложений прибегают к использованию двоичных файлов setuid или запускают сервисные демоны , чтобы обеспечить собственный контроль доступа и разделение привилегий, каждый раз потенциально создавая дыры в безопасности.

HAL — это единый демон, отвечающий за обнаружение, подсчет и обеспечение доступа к большей части оборудования на главном компьютере. Приложения взаимодействуют с HAL через механизм D-Bus IPC , который абстрагирует аппаратное обеспечение от объектно-ориентированного механизма RPC .

Каждое логическое аппаратное устройство представлено как объект D-Bus, а его адрес шины используется как уникальный идентификатор. Устройства включают в себя такие абстракции, как разделы диска и видимые беспроводные сети. Функциональность устройства предоставляется через интерфейсы D-Bus , а доступ к его состоянию осуществляется через свойства — набор пар ключ-значение.

HAL передает аппаратные события в виде сигналов на эти объекты; приложения могут прослушивать сигналы и реагировать на аппаратные события, которые они обозначают — такие события, как цифровой камеры подключение оптического диска или закрытие крышки портативного компьютера. , вращение [ 3 ] [ 4 ]

Внедрения и устаревание

[ редактировать ]

В Linux HAL использует /sys ( виртуальная файловая система для систем Linux ) для обнаружения оборудования и прослушивания событий горячего подключения ядра . Некоторые дистрибутивы Linux также предоставляют правило udev , позволяющее демону udev уведомлять HAL о появлении новых узлов устройств.

Устарело

[ редактировать ]

По состоянию на 2011 год , дистрибутивы Linux, такие как Ubuntu , [ 5 ] Дебиан , [ 6 ] и Fedora и FreeBSD, [ 7 ] и такие проекты, как KDE, [ 8 ] GNOME и X.org находятся в процессе прекращения поддержки HAL, поскольку он «превратился в большой монолитный беспорядок, который невозможно поддерживать». [ 5 ] Процесс в основном завершен, но некоторое использование HAL остается — сжатие Debian (февраль 2011 г.) и Ubuntu версии 10.04 удаляет HAL из базовой системы и процесса загрузки. [ 9 ] В Linux он находится в процессе объединения с udev (основной udev, libudev и udev-extras) и существующими функциями udev и ядра. Заменой для систем, отличных от Linux, таких как FreeBSD, является devd.

Первоначально планировалось, что новый демон DeviceKit заменит некоторые аспекты HAL, но в марте 2009 года DeviceKit был объявлен устаревшим в пользу добавления того же кода в udev в качестве пакета. udev-extras , а некоторые функции теперь перенесены в собственно удев .

См. также

[ редактировать ]
  1. ^ Jump up to: а б с Пеннингтон, Havoc (10 июля 2003 г.), Заставить оборудование просто работать
  2. ^ Текст лицензии на исходный код HAL . HAL предоставляется вам по лицензии Academic Free License версии 2.1 или GNU General Public License версии 2 по вашему выбору.
  3. ^ Цойтен, Дэвид (01 ноября 2009 г.), Спецификация HAL 0.5.14 , freedesktop.org , получено 15 января 2017 г.
  4. ^ «Хал: документ/спецификация» . 16 марта 2010 г. Проверено 15 января 2017 г.
  5. ^ Jump up to: а б Халсэктомия , ubuntu.com , 10 мая 2013 г. , получено 15 января 2017 г.
  6. ^ «Удаление HAL» . debian.org . 28 июня 2011 г. Проверено 15 января 2017 г.
  7. ^ «Функции/HalRemoval» . Проект Федора . 09.01.2012 . Проверено 15 января 2017 г.
  8. ^ «Версия 1206281: Функции базы KDE» . КДЕ . 1 декабря 2010 г. Получено 1 января 2017 г.
  9. ^ «Технический обзор: удаление HAL» . Ubuntu.com. 17 мая 2010 г. Проверено 15 января 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e1a30b527d4926ecf936d2e1f9f81894__1679910900
URL1:https://arc.ask3.ru/arc/aa/e1/94/e1a30b527d4926ecf936d2e1f9f81894.html
Заголовок, (Title) документа по адресу, URL1:
HAL (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)