快速业务通道

红旗工程师大讲堂:掌握udev

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-11

如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略.在Linux早期,设备文件仅仅是是一些带有适当 的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下.后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在 2.3.46内核中.Mandrake,Gentoo等Linux分发版本采用了这种方式.devfs创建的设备文件是动态的.但是devfs有一些严重 的限制,从2.6.13版本后移走了.目前取代他的便是文本要提到的udev--一个用户空间程序.

  目前很多的Linux分发版本采纳了udev的方式,它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题.下面我我们来看看如何管理udev设备.

  实 际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么.但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置,这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件.你可能也想知道如何修改RS-232串口,音频设备等文件 的属组或者权限.这点在实际的Linux实施中是会遇到的.

  为什么使用udev

  在此之前的设备文件管理方法(静态文件和devfs)有几个缺点:

  ◆不确定的设备映射.特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定.举一个例子:如果你有两个USB打印机.一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1.但是到底哪个是哪个并不清楚,lp0,lp1和实际的设备没有一一对应的关系,他可能发现设备的顺序,打印机本身关闭等原因而导致这种映射并不确定.理想的方式应该是:两个打印机应该采用基于他们的序列号或者其他标识信息的唯一设 备文件来映射.但是静态文件和devfs都无法做到这点.

  ◆没有足够的主/辅设备号.我们知道,每一个设备文件是有两个8位的数字:一个是主设备号,另外一个是辅设备号来分配的.这两个8位的数字加上设备类型(块设备或者字符设备)来唯一标识一个设备.不幸的是,关联这些身边的的数字并不足够.

  ◆/dev目录下文件太多.一个系统采用静态设备文件关联的方式,那么这个目录下的文件必然是足够多.而同时你又不知道在你的系统上到底有那些设备文件是激活的.

  ◆命名不够灵活.尽管devfs解决了以前的一些问题,但是它自身又带来了一些问题.其中一个就是命名不够灵活;你别想非常简单的就能修改设备文件的名字.缺省的devfs命令机制本身也很奇怪,他需要修改大量的配置文件和程序.;

  ◆内核内存使用,devfs特有的另外一个问题是,作为内核驱动模块,devfs需要消耗大量的内存,特别当系统上有大量的设备时(比如上面我们提到的系统一个上有好几千磁盘时)

  udev的目标是想解决上面提到的这些问题,他通采用用户空间(user-space)工具来管理/dev/目录树,他和文件系统分开.知道如何改变缺省配置能让你之大如何定制自己的系统,比如创建设备字符连接,改变设备文件属组,权限等.

  udev配置文件

  主要的udev配置文件是/etc/udev/udev.conf.这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:

  udev_root=”/dev/”

  udev_rules=”/etc/udev/rules.d/”

  udev_log=”err”

  上面的第二行非常重要,他表示udev规则存储的目录,这个目录存储的是以.rules结束的文件.每一个文件处理一系列规则来帮助udev分配名字给设备文件以保证能被内核识别.

  你的/etc/udev/rules.d下面可能有好几个udev规则文件,这些文件一部分是udev包安装的,另外一部分则是可能是别的硬件或者软件包生 成的.比如在Fedora Core 5系统上,sane-backends包就会安装60-libsane.rules文件,另外initscripts包会安装

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号