本文以通俗的方法阐述 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/
下。所有的规则文件必须以“
.rules
”
为后缀名。RHEL
有默认的规则文件,这些默认规则文件不仅为设备产生内核设备名称,还会产生标识性强的符号链接。
start_udev
start_dev
命令重启 udev
守护进程,并对所有的设备重新查询规则目录下所有的规则文件,然后执行所匹配的规则里的行为。通常使用该命令让新的规则文件立即生效:
清单
15. start_udev
的执行过程
[root@HOST_RHEL5 rules.d]# start_udev
Starting udev:
[
OK
]
|
start_udev
一般没有标准输出,所有的 udev
相关信息都按照配置文件 (udev.conf)
的参数设置,由 syslog
记录。
分享到:
相关推荐
- **动态管理**:udev能够根据内核发送的事件动态地创建或删除设备文件,这意味着只有实际连接的设备才会在`/dev`目录下生成对应的设备文件,避免了大量的无用设备文件占据磁盘空间。 - **自定义命名规则**:通过...
udev 是 Linux 系统中用于管理设备文件的用户空间程序,它取代了早期的静态设备文件管理和内核驱动的 devfs。udev 的出现解决了设备映射不确定性、设备号不足、/dev 目录文件过多以及命名不灵活等问题,特别是在处理...
devfs是在Linux 2.4内核中引入的,用于动态管理设备文件,但由于存在一些未修复的bug和作者停止维护,它在2.6内核中被udev取代。udev是目前广泛使用的设备管理系统,它依赖于sysfs和tmpfs虚拟文件系统。sysfs提供...
udev是Linux系统中用于管理设备节点的现代机制,它取代了传统的devfs和sysfs。在深入探讨udev的使用和工作原理之前,我们先要理解设备节点的基本概念。设备节点是Linux内核与用户空间程序通信的一种方式,它们在/dev...
在SUSE Linux Enterprise Server (SLES) 11中,udev是系统设备管理的主要工具,它负责管理和控制系统的硬件设备,如磁盘、网络接口等。对于Oracle 11gR2 RAC(Real Application Clusters)的部署,udev的配置至关...
第三版涵盖了2.6版本的Linux内核,这意味着书中会介绍如udev设备管理系统、hotplug热插拔技术、PCI Express总线支持等现代Linux内核的特性。 通过阅读《LINUX设备驱动程序》(Linux.Device.Driver) 第三版,开发者将...
`udev`是Linux内核的一部分,负责管理系统的设备节点,并确保这些设备节点在系统启动时正确创建、删除或重命名。`udev`能够自动识别新连接的硬件设备并为其分配正确的设备文件名,这对于高可用性集群特别重要,因为...
它将带领读者探索Linux的内部世界,理解文件系统如何高效地管理存储,以及设备驱动如何使操作系统与硬件协同工作。通过学习这些知识,读者可以提升在Linux系统开发、维护和优化方面的专业能力。
在Linux系统中,设备驱动程序是操作系统与硬件...通过理解和熟练掌握上述知识点,开发者能够更好地设计和实现Linux系统中的高级字符驱动程序,有效地管理设备文件的访问控制,从而构建稳定、安全的设备驱动解决方案。
2. **设备模型**:讲解Linux设备模型,如总线、设备和驱动模型,如何通过udev管理系统识别和配置设备。 3. **字符设备驱动**:深入讲解字符设备驱动的开发,包括设备节点的创建、ioctl命令、中断处理等。 4. **块...
在arm-linux系统中,使用udev-114版本可以实现更高效、更全面的设备管理,特别是对于U盘和USB设备的自动挂载,大大提升了用户体验。对于开发者和系统管理员来说,理解和掌握udev的使用方法是至关重要的,以便更好地...
在Linux设备模型部分,书里会讲解现代Linux内核中的总线、设备、驱动模型,包括sysfs和procfs接口,以及如何通过udev管理设备节点。这些内容帮助读者理解如何在内核中组织和管理设备。 接着,书中详细讨论了字符...
2. **设备模型**:Linux设备模型是一个抽象层次,它提供了一种统一的方式来管理设备。学习如何使用`device`、`driver`、`class`和`bus`等结构,以及`udev`规则,将帮助你更好地组织和管理驱动程序。 3. **字符设备...
udev是现代Linux系统中的设备管理器,它基于udev规则动态创建设备节点,使得设备的管理和权限控制更加灵活。 总的来说,Linux设备驱动程序和USB驱动程序是Linux系统中至关重要的部分,它们确保了系统对硬件设备的...
2. **设备模型**:Linux设备模型是理解驱动程序的关键,书中详细阐述了设备节点、主设备号、次设备号的概念,以及现代内核中的统一设备模型(Udev),这有助于管理和注册设备。 3. **驱动程序架构**:书中会讲解...
本书还可能涉及现代Linux内核中的设备模型,如通用设备模型(Udev)、总线模型(Bus subsystems)以及设备文件系统(DevFS、sysfs、procfs),这些都是现代Linux系统中管理和枚举硬件设备的关键组成部分。...