Відповіді:
Це передається udev
в сучасних системах Linux. udev
Демон почав з системою буде шукати /etc/udev/rules.d
і /lib/udev/rules.d
і буде працювати правила відповідності для подій ядра. Вставлення USB-накопичувача призведе до події, здійснить udev
пошук відповідного правила та виконає його.
Самі правила визначатимуть, що робить ваша система. Останніми роками udev
зв’язався з HAL, який би оповіщав програми через DBUS. Цей підхід зараз застарілий на користь уніфікованого udev
рішення, яке, я вважаю, передбачає udevd
спілкування dbus
безпосередньо або через dbus-send .
Ви можете відстежувати діяльність програми udev
via udevadm monitor
.
Я ще не повністю впевнений у цьому, тому візьміть це із зерном солі та додатковими дослідженнями.
Він починається з підсистеми гарячої підключення ядра. Після налаштування пристрою він або викликає будь-яку програму простору користувача, щоб настроїти обробку подій echo hotplug_handler > /proc/sys/kernel/hotplug
гарячої підключення (якщо такий встановлений ), або надсилає пакет даних через мережевий сокет kobject_uevent. Коли ядро запускає обробник гарячої плаги, воно встановлює деякі змінні середовища. Коли ядро надсилає пакет даних, воно включає пари key = value. Якщо ви хочете, ви можете налаштувати сценарій, який просто реєструє середовище, і встановити його як обробник (не у вашій виробничій системі, звичайно - тестова установка).
Зазвичай, udev налаштовується як обробник, і в ньому буде встановлено кілька правил щодо обробки подій. Звідти він може запускати інші програми, які роблять інші речі (наприклад, видають dbus-повідомлення). Ці правила udev сильно залежать від конкретного розподілу інтересів.
У цій темі є багато інформації, де хтось намагається написати якусь документацію - зверніть увагу, що перше повідомлення не є точним; продовжуйте читати.
udev
слухають події на мережевій розетці. (Старий спосіб мав проблеми з серіалізацією / паралельністю.)