它主要由 hotplug, udev, D-BUS, HAL, gamin 幾個組件組成。
hotplug 是內核的一部分,在設備插入或拔出時,自動進行配置內核狀態。
udev 是 hotplug 的一部分,負責維護動態的 /dev 目錄,使 /dev 目錄的內容與當前系統狀態一致。
D-BUS 可以在應用程序之間傳送消息,例如可以把“連接上一台打印機”的消息發送給 HAL.
HAL 可以集成多種來源的信息,包括內核消息,配置文件等等,然後根據 D-BUS 的消息進行操 作。
gamin 是改進的文件狀態監視程序。例如插 入優盤。hotplug 自動加載需要的模塊,udev 創建相應的 /dev/sda1 等等節點,hotplug 向 HAL 發消息,HAL 收到消息後,根據配置文件,它運行 fstab-sync 來修改 fstab,創建 /media 的子目錄作為掛載點。gamin 檢測到 fstab 發生變化之後,通知桌面系統。桌面系統在 “計算機” 項目中建立驅動器圖標。在拔出優盤時,與上面的過程類似,模塊被卸載,設備文件被刪除,fstab 中相應條目被刪除,/media 目錄下的掛載點也被刪除了。
這個過程非常有用,不同的設備都可以用這個過程,例如音樂 CD 放入光驅後,HAL 可以啟動播放程序或者抓軌程序等等。另一個最重要的用途,在 redhat magazine 第三期中提到了,是 NetworkManager.因為使用移動無線通訊的用戶可能會頻繁更換網絡的連接方式,只有用 hotplug 和 hal 等協作,才可能快速地作出反應,動態切換網絡配置。