前言(问题与需求):
在传统的devfs
1:设备映射的不确定:一个设备多次加载设备的设备文件可能不同,比如一个hub有可能是ttyUSB0或ttyUSB2或ttyUSB3
2:devfs没有足够的主辅设备号,当设备过多的时候,会出现问题。(0-255)
解决方式:
使用udev来编写规则来固定设备的映射名称。这样可以防止设备名称变动了
udev简介:
首先udev是一个基于sysfs逻辑文件系统开发的一个应用程序,是devfs的替代品。
udev是一个用户空间的设备管理器,很确定在用户空间运行,主要用于Linux系统中动态管理设备节点和符号链接。
udev替代了传统的devfs和hotplug机制,成为当前Linux默认的设备管理工具。
官网的描述:/dev/目录和热插拔管理守护程序(可以管理usb,scsi,block等等子设备)
udev 为一守护程序,能够在/dev/目录下动态创建和移除设备节点,处理热插拔事件,在启动时载入驱动。
udev的基本功能
1:设备管理:udev负责在系统启动时创建设备节点,并在设备插入或移除时动态更新/dev目录下的设备文件。只有被内核检测到的设备才会为其创建设备节点,这些节点存储在内存中,不占用磁盘空间。
2:热插拔支持:udev支持热插拔设备,即在系统运行时插入或移除设备。它可以动态地更新设备节点,而无需重新启动系统。
3:规则系统:udev使用规则文件来定义在设备事件发生时要执行的操作。这些规则可以基于设备属性、类型和其他标识符来匹配,并允许用户执行自定义脚本、设置环境变量、创建符号链接等操作。
4:设备命名:udev为设备节点提供一个规范的命名机制,确保相同类型的设备在不同系统上都有相似的设备节点名称,便于用户和应用程序识别。
udev的历史背景
在Linux 2.4版本中,devfs被引入作为动态创建