日期:2014-05-16  浏览次数:20655 次

使用 udev 高效、动态地管理 Linux 设备文件

本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Linux 最终用户、设备驱动开发人员、设备测试人员和系统管理员等等。

?

来自黄 懋 , 软件工程师, IBM,原文链接 http://www.ibm.com/developerworks/cn/linux/l-cn-udev/index.html

?

下面对此文做摘录。

?

?????? 什么是 udev?

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

?

使用 udev 的好处:

我们都知道,所有的设备在 Linux 里都是以设备文件的形式存在。在早期的 Linux 版本中,/dev 目录包含了所有可能出现的设备的设备文件。很难想象 Linux 用户如何在这些大量的设备文件中找到匹配条件的设备文件。现在 udev 只为那些连接到 Linux 操作系统的设备产生设备文件。并且 udev 能通过定义一个 udev 规则 (rule) 来产生匹配设备属性的设备文件,这些设备属性可以是内核设备名称、总线路径、厂商名称、型号、序列号或者磁盘大小等等。

动态管理:当设备添加 / 删除时,udev 的守护进程侦听来自内核的 uevent ,以此添加或者删除?/dev 下的设备文件,所以 udev 只为已经连接的设备产生设备文件,而不会在?/dev 下产生大量虚无的设备文件。

自定义命名规则:通过 Linux 默认的规则文件,udev /dev/ 里为所有的设备定义了内核设备名称,比如?/dev/sda/dev/hda/dev/fd 等等。由于 udev 是在用户空间 (user space) 运行,Linux 用户可以通过自定义的规则文件,灵活地产生标识性强的设备文件名,比如?/dev/boot_disk/dev/root_disk/dev/color_printer 等等。

设定设备的权限和所有者 / 组:udev 可以按一定的条件来设置设备文件的权限和设备文件所有者 / 组。在不同的 udev 版本中,实现的方法不同,在 如何配置和使用 udev” 中会详解。

?

?

?

udev 的规则和规则文件

规则文件是 udev 里最重要的部分,默认是存放在? /etc/udev/rules.d