1.定义、概念解释
- udev 是一个用户空间的守护进程,它通过监听内核空间的设备事件来动态管理设备节点。udev 能够读取配置文件,执行复杂的规则和脚本,支持热插拔,并且与系统服务紧密集成。
- mdev 是一个早期用户空间的设备管理器,设计用于在系统启动时快速设置设备节点。它通常配置较为简单,执行速度较快,但功能和灵活性不如 udev。
2.工作机制:
- mdev使用
uevent_helper
机制,通过修改/proc/sys/kernel/hotplug
来指定当内核产生uevent时调用的程序,通常是/sbin/mdev
。 - udev使用基于netlink的机制,运行一个守护进程
udevd
,监听内核发送的uevent来执行相应的热插拔动作。
3.配置方式:
- mdev的配置文件是
/etc/mdev.conf
,可以设置设备节点的所有者、权限以及执行自定义命令。 - udev的配置文件是
/etc/udev/udev.conf
,并且使用/etc/udev/rules.d/
目录下的规则文件来定义设备的命名、权限等属性。
4.适用环境:
- mdev由于其简单性,适合用于资源受限的嵌入式系统。
- udev由于其强大的功能和灵活性,适用于需要复杂设备管理的PC和服务器系统。
5.性能和效率:
- mdev实现简单,适合用在嵌入式系统中,而udev使用的netlink机制在有大量uevent的场合效率高,适合用在PC机上。
6.启动和初始化:
- mdev在系统启动时通过执行
mdev -s
扫描/sys/class
和/sys/block
,在目录中查找dev
文件,并根据找到的信息创建设备节点。 - udev在系统启动时通过
udevd
守护进程来管理设备节点,处理设备的添加和移除事件
7.步骤流程方法
7.1 udev 的工作流程:
- 内核检测到设备变化,如USB设备插入。
- 内核发送udev事件到用户空间。
- udev 监听事件,读取udev规则文件(
/etc/udev/rules.d/
和/lib/udev/rules.d/
)。 - udev 根据规则匹配事件,执行相应的操作,如创建符号链接、修改权限、运行自定义脚本等。
- udev 可以与D-Bus通信,触发系统服务响应设备事件。
7.2 mdev 的工作流程:
- 在系统启动时,mdev 被配置为监听设备变化。
- 当内核检测到设备变化时,它触发 mdev。
- mdev 读取配置文件(
/etc/mdev.conf
)和脚本(/usr/lib/mdev/
),这些脚本定义了设备节点的创建和属性设置。 - mdev 快速创建设备节点,但不支持复杂的规则和脚本。
8.总结
总的来说,使用 udev,你可以得到一个更加灵活和强大的设备管理机制,它支持复杂的规则和脚本,可以更好地控制设备的识别和资源分配。使用 mdev,你可以在系统启动时快速设置设备,这对于需要快速启动的系统来说是一个优势。
相关文章推荐: