一,创建设备文件的机制
1,mknod:手动创建设备节点
2,devfs:创建设备节点的逻辑在内核空间,2.5版本后淘汰
3,udev:自动创建设备节点的机制,逻辑在用户空间,常用
4,mdev:轻量级的udev机制
二,udev创建设备节点的过程分析
1,注册驱动,register_chrdev()函数
2,获取设备信息(设备树相关文件,目前为指定寄存器地址)
3,创建一个设备类(向上提交目录信息),会在内核中申请一个struct class对象,并且初始化,此时会在/sys/class/目录下创建一个以类名为名的目录
4,创建一个设备对象(向上提交设备节点信息),会在内核中申请一个struct device对象,并且初始化,此时会在上一步创建好的目录下创建存放设备节点信息的文件
5,当创建好存放设备节点信息的文件后,内核会发起hotplug event事件,激活用户空间的hotplug进程
6,hotplug进程激活后,会通知udev进程在刚创建的存放设备节点信息的文件中查询设备节点相关信息
7,udev查询设备节点相关信息后,会在/dev目录下创建设备节点