Todavía no estoy completamente seguro de esto, así que tómalo con un grano de sal y más investigación.
Comienza con el subsistema kernel hotplug. Después de configurar un dispositivo, llama a cualquier programa de espacio de usuario que esté configurado para manejar eventos de echo hotplug_handler > /proc/sys/kernel/hotplug
conexión en caliente (si se estableció uno ) o envía un paquete de datos a través del zócalo de enlace de red kobject_uevent. Cuando el kernel inicia el controlador hotplug, configura algunas variables de entorno. Cuando el núcleo envía un paquete de datos, incluye pares clave = valor. Si lo desea, puede configurar un script que solo registre el entorno y configurarlo como el controlador (no en su sistema de producción, por supuesto, una configuración de prueba).
Por lo general, udev se configura como el controlador, y tendrá varias reglas de configuración sobre cómo manejar los eventos. A partir de ahí, puede lanzar otros programas que hacen otras cosas (como emitir mensajes dbus). Estas reglas de udev dependen en gran medida de la distribución particular de intereses.
Hay mucha información en este hilo en el que alguien está tratando de escribir alguna documentación; tenga en cuenta que el primer mensaje no es exacto; sigue leyendo.
udev
escuchan eventos en un socket de enlace de red. (La antigua forma tenía problemas de serialización / concurrencia).