Hardware Abstraction Layer on Linux
Used in most operating systems to enable device drivers etc to be written more easily.
Under Linux there is a
HAL daemon that allows easy userspace device management with UDev and D-BUS.
Clarification: Who Does What
- D-BUS is purely a channel for communication between different processes. It can be used for lots of purposes besides keeping track of system hardware.
- The job of HAL is to act as a dynamic central repository of information about the current hardware configuration. The structure of this repository is quite open-ended; in particular it is possible to attach any additional attributes you like to objects, by setting up appropriate rules in the HAL configuration. Other processes can register their interest with HAL, so that they get notifications (via D-BUS) of any configuration changes.
Note that udev is part of the Linux kernel project, while HAL and D-BUS are not. Thus, udev knows nothing about HAL or D-BUS.
I think (but am not sure) that, in current Linux kernel versions, HAL and udev actually operate in parallel, independently of each other; they both receive notifications about hardware changes from the kernel, and perform their own individual actions in response.
