Answers:
我对此还没有完全确定的信心,因此请多加盐和更多研究。
它从内核热插拔子系统开始。设置设备后,它要么调用设置的任何用户空间程序来处理热插拔事件(如果由设置echo hotplug_handler > /proc/sys/kernel/hotplug
),要么通过kobject_uevent netlink套接字发送数据包。当内核启动热插拔处理程序时,它会设置一些环境变量。当内核发送数据包时,它包括键=值对。如果需要,可以设置一个脚本,该脚本仅记录环境并将其设置为处理程序(当然,不在生产系统上-测试设置)。
通常,将udev设置为处理程序,并将设置一些有关如何处理事件的规则。从那里,它可以启动其他做其他事情的程序(例如发出dbus消息)。这些udev规则高度依赖于特定的利益分配。
有人试图编写一些文档时,该线程中有很多信息-请注意,第一个消息不准确;继续阅读。
udev
在netlink套接字上监听事件。(旧方法存在序列化/并发问题。)