Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1348211
  • 博文数量: 370
  • 博客积分: 10654
  • 博客等级: 中将
  • 技术积分: 4396
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 15:44
文章分类

全部博文(370)

文章存档

2012年(36)

2011年(195)

2010年(139)

分类: LINUX

2011-08-02 10:59:55

       目前一些主流桌面系统(如Gnome,KDE,Xfce)的较新版本都支持自动挂载(mount)U盘了. 一个流传很广的说法是 HAL(硬件抽象层) 起了自动挂载的作用, 其实这是误解. 对于2.6内核而言, udev 才是直接从内核接收设备连接或断开信息的主体.
         udev(设备管理器) 从内核得到信息后,根据一些简单规则(注意,是简单规则), 在 /dev 目录下创建相应的设备节点, 并进行某些相关操作. HAL 所做的事情是在 udev 的规则中加上一条(或几条), 让 udev 把收到的信息也传递给 HAL. 接下来, HAL 用更为复杂的规则来匹配和描述当前连接着的硬件. 举一个简单的例子, udev 知道的是U盘已经连接了并且有一个分区; 而 HAL 能更进一步知道这个分区的卷标名及其它一些信息.
         上面这些都还不能自动挂载U盘. Gnome 等桌面系统会启动一个守护进程(daemon), 通过 D-Bus 从 HAL 那里得到硬件信息, 如果发现有U盘连接了就由它们来挂载它(实际是调用 pmount).
阅读(8492) | 评论(2) | 转发(1) |
0

上一篇:sed之[]和|的使用

下一篇:创建磁盘文件

给主人留下些什么吧!~~

liurhyme2011-08-04 08:22:41

wolf_london: HAL已经废弃不用了,Debian社区从Squeeze开始剔除HAL,hal的功能全部由udev来实现,Gentoo也很早就已经mask HAL了
不过在FreeBSD上的桌面系统还在使用HAL,毕竟F.....
是吗?我回去再查查,谢谢你让我走出了误区

wolf_london2011-08-03 21:07:51

HAL已经废弃不用了,Debian社区从Squeeze开始剔除HAL,hal的功能全部由udev来实现,Gentoo也很早就已经mask HAL了
不过在FreeBSD上的桌面系统还在使用HAL,毕竟FreeBSD的udev不是Linux的udev