Linux守护进程HALD
hal(hardware abstract lever)硬件抽象。
但是Linux的hal运行于用户空间作为一个daemon进程。监听一个socket接口。等待udev发来的通知。
udev为设备加载驱动,设备可用后,往往有udev的规则,让udev通知hald表示设备变动了。
hal作为一个硬件的数据库,记录了硬件的属性,当前硬件有哪些,他们的属性是什么,等等信息。
因而,用户态程序可以查询hald得到硬件的信息。也可以注册监听事件在hald上面。当监听的硬件事件发生时候,hald会通知他们。
-
-----------------------------------------------
说明:
1. 实线箭头为主动调用,虚线箭头为事件上报。
2. udev通过NetLink注册内核的设备事件,当有设备插入/拔除时,udev就会收到通知,它会从事件中所带参数和sysfs中的信息,加载适当的驱动程序,创建dev下的结点,让设备处于可用的状态。
3.
udev只是一个框架,它的行为完全受它的规则所控制,这些规则存放在目录/etc/udev/rules.d/中,其中90-hal.rules是用来
让udev把设备插入/拔除的事件通过socket socket:/org/freedeskto