一、Linux Udev和Uevent机制介绍
linux内核最初的设备管理是通过devfs来实现的,但是由于诸多问题,如不确定的设备映射、设备号不足、设备文件过多以及命名不灵活等,出现了新的设备管理策略udev。
udev则是devfs的替代者,是一个在用户空间运行的程序,用于动态管理设备节点。它利用Linux内核提供的uevent机制,在系统启动时运行一个守护进程udevd,通过监听内核发送的uevent来执行相应的热插拔动作。这些动作包括创建或删除设备节点、加载或卸载驱动模块等。与devfs相比,udev提供了更加灵活和强大的设备管理能力,能够自动处理设备的添加、删除和修改,使得设备文件的管理更加便捷和高效。
Linux的uevent是一种事件通知机制,uevent是kobject的一部分,用于在kobject状态发生改变时(增加、移除等),通知用户空间程序。uevent代表“用户事件”,它允许设备驱动程序和其他内核子系统在设备插入、移除、配置或其他相关事件发生时发送消息给用户空间。
当一个设备插入到系统中时,内核会生成一个uevent并发送给用户空间的udev守护进程。udev进