九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 4686|回复: 1
打印 上一主题 下一主题

x4412&ibox项目实战24-devfs和udev及sysfs

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-28 10:43:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从前面的实验我们可以看到,devfs文件系统虽然弥补了很多linux2.4内核之前的不足,但是自身同样存在很多缺陷。在进入linux2.6时代后,devfs文件系统彻底被抛弃,神奇的udev取代了它。udev相对于devfs有以下优点:
l  udev工作在用户模式中,而devfs很大程度上依靠内核;
l  devfs所能实现的功能,udev统统能实现;
l  devfs允许存在一些假的、死的设备节点,而udev则根据系统中硬件设备的状态动态更新设备文件,因而不会产生假死的设备节点。正因为devfs可能会存在这些无用的节点,系统会浪费宝贵的时间来通过modprobe不断的尝试,而在udev中将彻底避免这些问题;
l  udev通过设备加入或移除时内核所发生的热插拨事件来工作,设备的详细信息会输出到/sys目录,而devfs并没有这一机制;
l  当一个不存在的设备节点被打开时,devfs会自动加载相应的驱动,而udev的设计者认为linux应该在发现的时候加载驱动模块,而不是在被访问的时候。
         udev是一种工具,它能够根据系统中的硬件设备的状况动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下,使用udev后,在/dev下面只包含系统中真实存在的设备。它于硬件平台无关的,位于用户空间,需要内核sysfs和tmpfs的支持,sysfs为udev提供设备入口和uevent通道,tmpfs为udev设备文件提供存放空间。
       linux2.6内核以后,引入了一个新的文件系统sysfs,它挂载于/sys目录下,跟devfs一样它也是一个虚拟文件系统,也是用来对系统的设备进行管理的,它把实际连接到系统上的设备和总线组织成一个分级的文件,用户空间的程序同样可以利用这些信息以实现和内核的交互,该文件系统是当前系统上实际设备树的一个直观反应,它是通过kobject子系统来建立这个信息的,当一个kobject被创建的时候,对应的文件和目录也就被创建了,位于/sys下的相关目录下,既然每个设备在sysfs中都有唯一对应的目录,那么也就可以被用户空间读写了。
用户空间的工具udev就是利用了sysfs提供的信息来实现所有devfs的功能的,但不同的是udev运行在用户空间中,而devfs却运行在内核空间,而且udev不存在devfs那些先天的缺陷。很显然,sysfs将是未来发展的方向。

回复

使用道具 举报

沙发
发表于 2015-9-16 16:07:31 | 只看该作者
它于硬件平台无关的,位于用户空间,需要内核sysfs和tmpfs的支持,sysfs为udev提供设备入口和uevent通道,tmpfs为udev设备文件提供存放空间。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-5 19:34 , Processed in 0.018039 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表