设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

Linux的设备管理器:udev 164 发布

2010-10-24 23:16| 发布者: walkerxk| 查看: 4639| 评论: 0|来自: OSMSG

摘要: udev 是 Linux kernel 2.6 系列的设备管理器。它主要的功能是管理 /dev 目录底下的设备节点。它同时也是用来接替 devfs 及 hotplug 的功能,这意味着它要在添加/ 删除硬件时处理 /dev 目录以及所有用户空间的行为, ...

udev 是 Linux kernel 2.6 系列的设备管理器。它主要的功能是管理 /dev 目录底下的设备节点。它同时也是用来接替 devfs 及 hotplug 的功能,这意味着它要在添加/ 删除硬件时处理 /dev 目录以及所有用户空间的行为,包括加载 firmware 时。

Udev provides a dynamic /dev directory, and hooks userspace into kernel device events. Udev comes with man pages and doumentation included in the source tarball. Here are some online references:

什么是udev
udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。

udev支持什么内核
udev只支持linux-2.6内核,因为udev严重依赖于sysfs文件系统提供的信息,而sysfs文件系统只在linux-2.6内核中才有。

udev是一个内核程序还是用户程序
udev是一个用户程序(user-mode daemon)。

udev和devfs有什么差别
udev能够实现所有devfs实现的功能。但udev运行在用户模式中,而devfs运行在内核中。据称:devfs具有一些不太容易解决的先天缺陷。

udev的配置文件放在哪里
udev是一个用户模式程序。它的配置文件是/etc/udev/udev.conf。这个文件一般缺省有这样几项:

  • udev_root=”/dev” ; udev产生的设备文件的根目录是/dev
  • udev_db=”/dev/.udevdb” ; 通过udev产生的设备文件形成的数据库
  • udev_rules=”/etc/udev/rules.d” ;用于指导udev工作的规则所在目录。
  • udev_log=”err” ;当出现错误时,用syslog记录错误信息。

udev的工作过程是怎样的
由于没有研究过udev的源程序,不敢贸然就说udev的工作过程。我只是通过一些网上的资料和udev的说明文档,大致猜测它的工作过程可能是这样的。

  • 当内核检测到在系统中出现了新设备后,内核会在sysfs文件系统中为该新设备生成一项新的记录,一般sysfs文件系统会被mount 到 /sys目录中。新记录是以一个或多个文件或目录的方式来表示。每个文件都包含有特定的信息。(信息是如何表述的,还要另外研究?)
  • udev在系统中是以守护进程的方式udevd在运行,它通过某种途径(到底什么途径,目前还没搞懂。)检测到新设备的出现,通过查找设备对应的sysfs中的记录得到设备的一些信息。
  • udev会根据/etc/udev/udev.conf文件中的udev_rules指定的目录,逐个检查该目录下的文件,这个目录下的 文件都是针对某类或某个设备应该施行什么措施的规则文件。udev读取文件是按照文件名的ASCII字母顺序来读取的,如果udev一旦找到了与新加入的 设备匹配的规则,udev就会根据规则定义的措施对新设备进行配置。同时不再读后续的规则文件。

udev的规则文件的语法是怎样的
udev的规则文件以行为单位,以”#”开头的行代表注释行。其余的每一行代表一个规则。每个 规则分成一个或多个“匹配”和“赋值”部分。“匹配”部分用“匹配“专用的关键字来表示,相应的“赋值”部分用“赋值”专用的关键字来表示。“匹配”关键 字包括:ACTION,KERNEL,BUS, SYSFS等等,“赋值”关键字包括:NAME,SYMLINK,OWNER等等。具体详细的描述可以阅读udev的man文档。

点击进入 udev 项目主页


酷毙

雷人

鲜花

鸡蛋

漂亮

相关阅读

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部