1.插入一个U盘
2.产生中断,在中断中 USB hub会检测到U盘设备接入
3.完成设备枚举过程(从设备上读出相应的设备信息),并在内核中创建相应的设备结构体A。
4.将新的设备结构A体注册到内核的时候,会将设备的信息通过netlink发送消息到用户态。
5.用户态udev进程监听到这个信息,根据解析到的结果和用户程序的配置做一些处理(加载驱动程序)
A3.驱动加载时,向内核注册 设备B
A4.将新的设备结构B体注册到内核的时候,会将设备的信息通过netlink发送消息到用户态。
A5.用户态udev进程监听到这个信息,根据解析到的结果和用户程序的配置做一些处理(创建设备文件)1.拔出一个U盘
2.产生中断,在中断中 USB hub会检测到U盘设备拔出
3.内核会将设备的信息通过netlink发送消息到用户态。
4.用户态udev进程监听到这个信息,根据解析到的结果和用户程序的配置做一些处理(卸载驱动)
A3.驱动卸载时,会将设备的信息(删除)通过netlink发送消息到用户态。
A4.用户态udev进程监听到这个信息,根据解析到的结果和用户程序的配置做一些处理(删除设备文件)
udev 文件系统
实验A前状态:/dev 没有文件系统挂载
实验A:
mount -t devtmpfs udev /dev
udev on /dev type devtmpfs (rw,relatime,size=255592k,nr_inodes=63898,mode=755)/dev下有文件,文件数量正常,表示udev已经正常运作
实验B前状态:/dev 没有文件系统挂载
实验B:
mount -t tmpfs udev /dev
udev on /dev type tmpfs (rw,relatime)/dev下无文件