udev实现动态设备命名

udev是Linux 2.6内核的设备管理工具,替代了devfs,以udevd守护进程形式运行,响应内核uevent动态管理/dev下的设备文件。它允许自定义设备命名规则,便于设备管理和简化/dev目录。udev还能设置设备文件的权限和所有者。配置包括udev.conf和规则文件,规则文件按ASCII顺序读取,每个规则包含匹配和赋值部分,用于指定设备名、符号链接、权限等。
摘要由CSDN通过智能技术生成
1. udev介绍:

udev是Linux2.6 内核里的一个功能,它替代了原来的devfs,成为当前Linux默认的设备管理工具。udev以守护进程udevd的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。但不像之前的设备管理工具(devfs),udev是在用户空间(user space)运行,而不在内核空间(kernel space)运行。

在linux系统中,/dev目录用来保存设备文件的,每个文件指向一个系统设备,如: hda指向第1个IDE硬盘,sda指向第1个SCSI硬盘。用户空间的应用程序可以通过这些设备节点与系统硬件设备进行交互,例如:X服务器会监听/dev/input/mice设备,移动虚拟的鼠标指针以反映用户鼠标的移动。在2.4内核时代,在/dev下保存了所有kernel可以支持的硬件设备的设备文件,将近有1万个。而这些设备中,大多数是没有连接的设备,这样就大大的浪费了系统资源,而且/dev目录也显得非常混乱。udev就是用来解决这些问题的。在2.6内核中,采用udev方式来管理/dev目录,它可以动态的建立/删除设备文件(设备连接到系统时,它会自动建立相应的设备文件,设备断开连接后,它会自动删除相应的设备文件),这样使/dev目录简化了许多。

udev的另一个重要功能就是可以允许用户编写命名规则,为不同设备指定设备文件名。这样,对设备的管理也方便了许多。例如:你有2个外形一样的U盘,1个容量是1G的,1个容量是2G的。一般情况下,你先接上的U盘会是sdb,后接上的U盘会是sdc。这样每次插入U盘的设备名可能不一样,对使用很不方便。但由于udev在用户空间运行,通过自定义的命名规则文件,你可以有自己指定的设备命名,如将1G的U盘命名为1g,将2G的U盘命名为2g。每次插入设备,设备名都不会再变化,使用和管理会很方便。除此之外,udev还可以按照一定的条件来设置设备文件的权限和和设备文件的所有者或所有组,当然这也是在规则文件中定义。

下图为udev工作流程图:

udev实现动态设备命名 - swee - 我的博客

 

相关术语:

sysfs:sysfs是Linux2.6内核里的一个虚拟文件系统,挂载在/sys目录下。它把设备和驱动的信息从内核的设备模块导出到用户空间(user space)。从该文件系统中,Linux用户可以获取很多设备的属性。

devpath:devpath是指一个设备在sysfs文件系统(/sys)下的相对路径,该路径包含了指定设备的属性文件。udev里的多数命令都是针对de

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值