Udev 基本工作原理

http://www.west263.com/info/html/wangzhanyunying/jianzhanjingyan/20080417/67732.html 1. 概述 udev 是 Linux kernel 2.6 系统的内核设备管理器。它提供以下几项功能。 1)可以为每个外部设备提供一个专属的设备文件。 2)在用户空间(user space)中执行,这意味着可以让用户指派哪个硬件设备使用哪一个设备文件。 3)允许动态地建立/删除设备文件。 2. udev的组件 udev有三项组件构成。 * namedev 用来为外部设备产生设备的名称与该外部设备使用的设备文件的权限。 * libsysfs Red Hat系统内核中提供一个名为sysfs的虚拟文件系统,用来提供内核记录的周边设备下列信息。 * 外部设备的位置 * 外部设备的属性(如名称、序号等) * 外部设备的主要号码和次要号码 系统会把sysfs文件系统挂载到/sys/中。udev则通过libsysfs链接库读取/sys/中的信息。通过libsysfs让udev不用先知道该尾部设备是什么就能取得外部设备的信息。 * udevd 这是一个守护进程,处于用户空间,用来产生/dev/中的设备文件。 3. udev的工作原理 当Red Hat系统内核发现安装或者卸载了某一个硬件设备时,内核会执行hotplug,以便让hotplug去安装或卸载该硬件的驱动程序;hotplug在处理完硬件的驱动程序后,就会去呼叫执行udevd,以便让udevd可以产生或者删除硬件的设备文件。 接着udevd会通过libsysfs读取sys文件系统,以便取得该硬件设备的信息;然后再向namedev查询该外部设备的设备文件信息,例如文件的名称、权限等。最后,udevd就依据上述的结果,在/dev/目录中自动建立该外部设备的设备文件,同时在/etc/udev/rules.d下检查有无针对该设备的使用权限。 4. 配置udev 4.1 udev的配置文件 该文件是/etc/udev/udev.conf。一般其中的参数udev_log用来定义当udev产生事件后以那个等级将事件记录至系统日志服务。 4.2 udev的规则配置文件 udev通过规则配置文件来配置某一个硬件设备的设备文件的规则。它们存储在/etc/udev/rules.d/中。 这类文件比较长,但其中的内容格式比较类似。我们举几个例子来说明。 例1: KERNEL="mouse*", NAME="input/%k" KERNEL字段为内核定义的模块名称,这条信息表示当linux内核加载一个以mouse开头的设备时,便会在/dev/input/目录中产生相同名称的设备文件。 例2: KERNEL="hd[a-z]",BUS="ide",SYSFS[removable]="1",PROGRAM="/etc/udev/scripts/check-cdrom.sh %k CD-R",SYMLINK="cdwriter%e" 在内核加载一个硬盘设备(hd[a-z])时,符合下列条件时,udev便会产生/dev/cdwriter1或者/dev/cdwriter2等设备文件。 * 为IDE接口的设备 * 必须是移动式磁盘 * 执行="/etc/udev/scripts/check-cdrom.sh %k CD-R时,返回值为0
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值