將可移動設備連入系統時,系統的後臺中會依次發生如下事件
外設插入;
總線發現新設備,通知hotplug產生熱插拔事件,調用device_add,添加新設備到設備管理系統;ndevice_add中調用kobject_uevent(, KOBJ_ADD),向用戶空間廣播新設備加入事件通知;這裏發出通知的方式,就是netlink;
用戶空間運行的daemon(udev)收到event事件廣播;
udev根據消息和環境變量,查詢sysfs中的/sys的變化,按照規則(/etc/udev/rules.d/*),在/dev目錄下自動創建設備節點;
① 外設插入;
② 總線發現(中斷?)新設備,並調用總線驅動查找驅動程序;[“Find a driver that can handle the device” =》 “Bind a driver to that device” =》 “Tell other subsystems to configure the new device.”(參見document/usb/hotplug.txt)]
③ 找到合適的驅動後,會調用device_add,添加新設備到設備管理系統;
④ device_add中會調用kobject_uevent(, KOBJ_ADD),向userspace廣播新設備加入event通知;這裏發出通知的方式,就是netlink;
⑤ 用戶空間運行的daemon(udevd ?或者khubd等轉發給udevd?)收到event事件廣播;
⑥ udevd根據消息和環境變量,查詢/sys的變化,在/dev目錄下自動創建設備節點;