HotPlug (Russian)
From ArchWiki
Contents |
Определения
- hotplug
- Набор bash-скриптов, вызываемых udev (или напрямую ядром при использовании devfs), при нахождении нового устройства.
- hotplugging(подключение "на горячую")
- Подключение устройства при работающей системе.
- coldplugging(подключение "на холодную")
- Подключение устройства при выключенной системе.
Процесс загрузки
Описание действий демонов Arch Linux при их добавлении в /etc/rc.conf
- hotplug
- При загрузке системы запускаются скрипты hotplug для определения всех подключенных "на холодную" устройств, загружаются необходимые для новых устройств модули, после чего hotplug завершает свою работу, не оставаясь в памяти в виде демона (как это делают, например, cron или syslog.
- lshwd
- Делает то же самое, что и hotplug - ищет подключенные "на холодную" устройства, загружает модули, и завершает свою работу.
После загрузки
При подключении нового устройства ядро сообщает udev о нем.Udev определяет некоторые параметры и создает корректный файл устройства в дереве /dev. Затем udev вызывает скрипты hotplug и сообщает о только что созданном файле устройства.Скрипты отрабатывают свою роль и выгружаются из памяти по завершению своей работы.
При подключении устройств "на горячую" скрипты отрабатывают "на пять".Есть мнение, что это только кажется, что они отрабатывают медленно из-за более медленных загрузочных скриптов.Но загрузочные скрипты выполняют гораздо больше действий, чем выполняется при добавлении нового устройства. Нормальные скрипты, вызваемые udev, не должны создавать эффект "бутылочного горлышка"(по крайней мере они не медленнее, чем Windows XP с ее сообщением "Найдено новое устройство").
Выводы
Смысл вышенаписанного в том, что hotplug-демон, прописываемый в секции daemons файла /etc/rc.conf/ - не демон в юниксовом смысле слова, а лишь скрипт, запускаемый при загрузке системы.Сам hotplug - это набор скриптов, запускаемых из udev.Пока запущен udev, вы можете подключать устройства "на горячую".
- Важно: подключение устройств "на горячую" требует трех вещей:
- Arch Linux hotplug демон (/etc/rc.d/hotplug)
- Пакет hotplug (pacman -Qi hotplug)
- Собственно факт подключения устройства при включенной системе.
Пункт 1 НЕ требуется для пунктов 2 и 3, но пункт 2 НЕОБХОДИМ для работы пункта 3.Также пункт 2 необходим для работы udev.