udev 是 Linux 系统中的设备管理器,负责管理设备节点的动态创建和删除。它是 Linux 内核设备管理子系统的一部分,提供了一种 用户空间 的机制来 响应硬件事件 。
功能
- 设备节点管理: 自动创建和删除
/dev
目录中的设备节点。 - 硬件事件处理: 监听内核发出的 uevent,并根据规则执行相应操作。
- 设备属性配置: 可以通过规则文件为设备设置权限、名称和符号链接等属性。
- 持久化命名: 通过识别唯一的设备标识符(如序列号)为设备提供一致的命名。
原理
- 内核事件: 当设备插入或移除时,内核会生成一个 uevent。
udevd
守护进程:udevd
监听这些事件并根据配置的规则文件进行处理。- 规则匹配: udev 使用规则文件(通常位于
/etc/udev/rules.d/
)来决定如何处理每个事件。 - 执行操作: 根据匹配的规则,udev 可以创建设备节点、设置权限、创建符号链接,甚至触发脚本。
命令
udevadm
是管理 udev 的命令行工具,可以用于控制 udev 守护进程、管理设备事件队列、测试和调试 udev 规则等。
udevadm info
: 显示设备信息。udevadm trigger
: 触发 udev 事件。udevadm control
: 控制 udev 守护进程。