`
mikixiyou
  • 浏览: 1099277 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353246
社区版块
存档分类
最新评论

使用 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/ 下。所有的规则文件必须以 .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 记录。

 

 

分享到:
评论

相关推荐

    linux设备管理工具--udev

    - **动态管理**:udev能够根据内核发送的事件动态地创建或删除设备文件,这意味着只有实际连接的设备才会在`/dev`目录下生成对应的设备文件,避免了大量的无用设备文件占据磁盘空间。 - **自定义命名规则**:通过...

    掌握udev 掌握udev

    udev 是 Linux 系统中用于管理设备文件的用户空间程序,它取代了早期的静态设备文件管理和内核驱动的 devfs。udev 的出现解决了设备映射不确定性、设备号不足、/dev 目录文件过多以及命名不灵活等问题,特别是在处理...

    linux设备文件.pdf

    devfs是在Linux 2.4内核中引入的,用于动态管理设备文件,但由于存在一些未修复的bug和作者停止维护,它在2.6内核中被udev取代。udev是目前广泛使用的设备管理系统,它依赖于sysfs和tmpfs虚拟文件系统。sysfs提供...

    udev文件系统的使用和基本工作原理分析.rar

    udev是Linux系统中用于管理设备节点的现代机制,它取代了传统的devfs和sysfs。在深入探讨udev的使用和工作原理之前,我们先要理解设备节点的基本概念。设备节点是Linux内核与用户空间程序通信的一种方式,它们在/dev...

    suse使用udev管理asm.docx

    在SUSE Linux Enterprise Server (SLES) 11中,udev是系统设备管理的主要工具,它负责管理和控制系统的硬件设备,如磁盘、网络接口等。对于Oracle 11gR2 RAC(Real Application Clusters)的部署,udev的配置至关...

    LINUX设备驱动程序(Linux.Device.Driver)

    第三版涵盖了2.6版本的Linux内核,这意味着书中会介绍如udev设备管理系统、hotplug热插拔技术、PCI Express总线支持等现代Linux内核的特性。 通过阅读《LINUX设备驱动程序》(Linux.Device.Driver) 第三版,开发者将...

    Linux device-mapper-udev-CRS-ASM_v3.6.pdf

    `udev`是Linux内核的一部分,负责管理系统的设备节点,并确保这些设备节点在系统启动时正确创建、删除或重命名。`udev`能够自动识别新连接的硬件设备并为其分配正确的设备文件名,这对于高可用性集群特别重要,因为...

    LINUX内核探秘:深入解析文件系统和设备驱动

    它将带领读者探索Linux的内部世界,理解文件系统如何高效地管理存储,以及设备驱动如何使操作系统与硬件协同工作。通过学习这些知识,读者可以提升在Linux系统开发、维护和优化方面的专业能力。

    Linux设备驱动程序学习(6)-高级字符驱动程序操作[(3)设备文件的访问控制] - Linux设备驱动程序

    在Linux系统中,设备驱动程序是操作系统与硬件...通过理解和熟练掌握上述知识点,开发者能够更好地设计和实现Linux系统中的高级字符驱动程序,有效地管理设备文件的访问控制,从而构建稳定、安全的设备驱动解决方案。

    Linux设备驱动程序

    2. **设备模型**:讲解Linux设备模型,如总线、设备和驱动模型,如何通过udev管理系统识别和配置设备。 3. **字符设备驱动**:深入讲解字符设备驱动的开发,包括设备节点的创建、ioctl命令、中断处理等。 4. **块...

    udev-114版本

    在arm-linux系统中,使用udev-114版本可以实现更高效、更全面的设备管理,特别是对于U盘和USB设备的自动挂载,大大提升了用户体验。对于开发者和系统管理员来说,理解和掌握udev的使用方法是至关重要的,以便更好地...

    Linux设备驱动程序(中文版第三版).pdf

    在Linux设备模型部分,书里会讲解现代Linux内核中的总线、设备、驱动模型,包括sysfs和procfs接口,以及如何通过udev管理设备节点。这些内容帮助读者理解如何在内核中组织和管理设备。 接着,书中详细讨论了字符...

    《Linux 设备驱动开发详解》(宋宝华) 学习笔记.zip

    2. **设备模型**:Linux设备模型是一个抽象层次,它提供了一种统一的方式来管理设备。学习如何使用`device`、`driver`、`class`和`bus`等结构,以及`udev`规则,将帮助你更好地组织和管理驱动程序。 3. **字符设备...

    LINUX设备驱动程序之USB驱动程序 .rar

    udev是现代Linux系统中的设备管理器,它基于udev规则动态创建设备节点,使得设备的管理和权限控制更加灵活。 总的来说,Linux设备驱动程序和USB驱动程序是Linux系统中至关重要的部分,它们确保了系统对硬件设备的...

    linux设备驱动程序 (中文第二版)

    2. **设备模型**:Linux设备模型是理解驱动程序的关键,书中详细阐述了设备节点、主设备号、次设备号的概念,以及现代内核中的统一设备模型(Udev),这有助于管理和注册设备。 3. **驱动程序架构**:书中会讲解...

    linux设备驱动程序(中文第三版)+源码

    本书还可能涉及现代Linux内核中的设备模型,如通用设备模型(Udev)、总线模型(Bus subsystems)以及设备文件系统(DevFS、sysfs、procfs),这些都是现代Linux系统中管理和枚举硬件设备的关键组成部分。...

Global site tag (gtag.js) - Google Analytics