
Я совершенно не понимаю, используется ли на самом деле hal или только udev.
То, что я понял:
В общем случае HAL — это уровень абстракции, позволяющий операционной системе взаимодействовать с аппаратным устройством.
И демон hald отличается от HAL. Это служба, которая предоставляет HAL и используется для идентификации устройств и их последующего монтирования (и где они будут, в /dev?) или автоматической настройки для использования приложениями.
И теперь он устарел из-за udev, который также делает то же самое, а именно, автоматически монтирует устройства по мере их подключения, считывая сообщения из ядра и присваивая им имена в соответствии с предопределенными правилами.
И в настоящее время только несколько приложений с графическим интерфейсом, таких как GNOMe, используют hald для получения уведомлений о новых подключенных устройствах (в то время как монтированием по-прежнему занимается udev?)
Итак, мой вопрос: если hal используется только для уведомления приложений на основе GUI о новом подключенном оборудовании, поскольку он может общаться через DBUS, но у udev нет реализации dbus. А для автомонтирования устройств это делает только udev, и нигде не используется hal?
И я говорю конкретно о Redhat 5,6 и 7.
Спасибо.
решение1
Немного предыстории: udev
существует уже давно (со времен ядра 2.5) и (для RHEL) это то, что настраивает узлы устройств, когда драйверы объявляют об оборудовании. Даже в системах, которые использовали HAL, все еще был udev
под ним. udev
сам по себе может вызывать другие программы, когда он «замечает» изменения, и HAL был попыткой абстрагироваться от объявления и настройки определенных частей нового оборудования для настольных систем *nix (не только Linux, но и других, таких как FreeBSD). В конце концов, люди отказались от определенных частей HAL, но не все части HAL можно было перенести udev
- некоторые из них отделились от других демонов. Примерно к 2012 году большинство передовых дистрибутивов Linux отказались от HAL, и в наши дни (начало 2019 года) вышеупомянутые демоны - это такие вещи, как udisks
и upower
т. д. Есть хорошее резюме того, что произошло наhttps://en.wikipedia.org/wiki/HAL_(программное обеспечение)...
Итак, учитывая, что RHEL в некоторой степени основан на Fedora (приблизительное сопоставление можно увидеть наhttps://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux#Связь_с_Fedora) и учитывая, что мы знаем, что это былоFedora 16 без HAL:
- RHEL 5 определенно будет иметь
hald
- RHEL 6, скорее всего, будет иметь
hald
- В RHEL 7 этого нет,
hald
и другие демоны возьмут на себя те функции, которыеudev
невозможно убедить сделать.
Как узнать, используется ли haldaemon или udev на сервере RHEL?
Просто запустите соответствующую версию RHEL и сделайте что-то вроде:
rpm -qa "*hal*"
(О нет, я только что понял, что вы спрятали несколько вопросов в одном :-( )
И демон hald отличается от HAL. Это служба, которая предоставляет HAL и используется для идентификации устройств и их последующего монтирования (и где они будут, в /dev?) или автоматической настройки для использования приложениями.
Устройства находятся под /dev
, но нужно ли мне тогда "монтировать" устройство, зависит от контекста. Я могу смонтировать диск (например, под /mnt
, но есть и другие места, где тоже монтируются вещи), но я не монтирую сканер (объявление/поиск сканеров — это то, с чем справлялся HAL).
И теперь он устарел из-за udev, который также делает то же самое, а именно, автоматически монтирует устройства по мере их подключения, считывая сообщения из ядра и присваивая им имена в соответствии с предопределенными правилами.
Иногда это делает только udev
, иногда вмешиваются и другие службы. Да /dev
, именование устройств находится под udev
контролем.
И в настоящее время только несколько приложений на основе графического интерфейса, таких как GNOM[E], используют hald для получения уведомлений о новых подключенных устройствах (в то время как монтированием по-прежнему занимается udev?)
Ну, современные системы не имеют, hald
так что ваш вопрос странный и сложный. Кроме того, даже в системах, которые имеют, ответ "зависит от". Да, udev
может монтировать, но иногда такие вещи, как присоединение USB-камеры через протокол PTP, в значительной степени обрабатываются пользовательским пространством GNOME (хотя, я думаю, вы можете поспорить о всем аспекте FUSE).
Итак, мой вопрос заключается в том, используется ли hal только для уведомления приложений с графическим интерфейсом о новом подключенном оборудовании, поскольку он может взаимодействовать через DBUS, но в udev нет реализации dbus.
Это вопрос? HAL использовался для уведомления приложений с графическим интерфейсом, но он также мог запускать другие вещи (например, настройку правил питания/монтирование дисков) при изменении устройства.
А для автоматического монтирования устройств это делает только udev, а hal нигде не используется?
Опять же, это совместные усилия. Да, udev
правила делают многое, но в зависимости от контекста могут быть задействованы и другие вещи (например, если вам нужно начать подсказывать пользователю), и вот тут-то такие вещи udisks
начинают вмешиваться.
Думаю, здесь есть подтекст: почему вы спрашиваете, используется ли HAL? Может быть, вам лучше задать этот вопрос напрямую...
(Эти многосоставные вопросы болезненны :-( )