LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1070|回复: 2

udev 和 devfs

[复制链接]
发表于 2005-8-23 10:10:25 | 显示全部楼层 |阅读模式
udev 和 devfs 到底应该用哪个好?

一 , udev 和 devfs 到底是什么?
    在传统的Unix系统上,一般把所有的硬件设备都映射到/dev目录下的设备驱动,就好IDE第一槽,住硬盘就是/dev/hda,然后第一个分区就是/dev/hda1,第二分区就是/dev/hda2
这里方式好处是方便了外部设备的管理,但是,在传统的Unix上/dev/目录下的设备文件都是静态存在的,也就是说预先用mknod创建好存在硬盘上(占用的空间忽略不计)

但是有人觉得这种方式不好,因为假如你硬盘只有2个分区,hda1和hda2,那么静态的/dev/下面hda1,hda2,hda3.hda4----,hda23都是存在,应该设计一种动态加载的/dev/,存在的设备,/dev/下面有对应的文件,如果没有该设备,那么/dev/下面应该没有这个设备文件,这样udev就诞生了
    使用udev系统上,开机以前/dev/目录只有几个tty1,tty2这样的基础的设备,在linux启动过程中,udev根据linux sysfs中的描述,知道linux驱动了哪些硬件,于是就在/dev/下面创建这些硬件的对应设备文件


    后来又有人觉得udev不爽,因为象usb-storage这种东西是热拔插的,可以在系统启动以后再连接上,这样udev就不能创建对应的设备文件,还有一些在sysfs中不存在的设备,udev也无法创建它的.这样'devfs'就诞生了
    devfs是一个内核级的动态/dev/系统,在内核启动的时候由内核创建,/dev/目录下的设备文件,由内核在维护devfs,在硬件上增加一个设备,内核就在/dev下增加一个对应的设备文件,但是devfs设计有个缺点,就是和传统的dev不兼容,比如硬盘对应的文件在传统的dev中应该是 hda,hdb,hdc,hdb,而devfs里面则是/bus/bus0/target0/....(后面不记得了),造成了一些依赖传统设备的程序错误.

    现在udev发展出了,udevd一个deamon,监视硬件,动态创建设备文件,但是sysfs问题还没有觉得
    而devfs也发展出了devfsd ,也是一个deamon,不过他不监视硬件,他监视/dev/目录,对下面的文件做符号连接,连接成传统的设备文件名
发表于 2005-8-23 11:08:34 | 显示全部楼层
http://www.linuxsir.cn/bbs/showthread.php?t=206392

新插入的U盘创建不了设备?你的udev有问题吧。devfs比udev时间老的。
回复 支持 反对

使用道具 举报

发表于 2005-8-23 14:02:46 | 显示全部楼层
devfs 更早些,其作者开发到一半不做了,新的 Linux 内核已经放弃使用。
回复 支持 反对

使用道具 举报

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

本版积分规则

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