|
相信用Ubuntu的人都注意到,每当插上U盘后,系统自动把挂载到/media/disk-1后会再*出一个nautilus文件浏览器显示当前U盘中的文件。这个过程实际包含了两个步骤:
1. 自动挂载
2. *出nautilus文件浏览器显示U盘的内容
对于步骤1,是由系统中udevd和hald两个daemon进程协助完成的,udevd根据90-hal.rules规则负责将kernel的uevent事件发送到指定的socket上去,与此同时hald监听这个socket,
一旦收到一个uevent的事件,从中提取相应的信息,包括热插拔动作(Add, remove, change), 设备类型,如果是add操作,那么hald会进一步从sysfs中抽取设备的描述信息,比如
U盘的卷标,然后挂载到指定的位置,Ubuntu下一般是/media/disk-1
但对于步骤2,又是如何实现的呢?在hald的代码、callouts脚本中没有查找到调用nautilus的命令,非常不解。
有哪位仁兄研究过这个问题?欢迎大家讨论。 |
|