HAL (software)
From Wikipedia, the free encyclopedia
HAL | |
---|---|
Latest release | 0.5.11[1] / 8 May 2008 |
OS | Linux, FreeBSD |
Genre | System software |
License | GPL and AFL |
Website | freedesktop.org/wiki/Software/hal |
HAL is a hardware abstraction layer and software project developed by Red Hat that allows desktop applications on an operating system to readily access hardware information so that they can locate and use such hardware regardless of bus or device type. In this way a desktop GUI can present all resources to its user in a seamless and uniform manner.
Dual-licensed under both the GNU General Public License and the Academic Free License, HAL is free software.[2]
HAL can gather information about removable storage devices and trigger their representation within the user's desktop environment.
Traditionally, desktop applications discovered hardware by communicating directly to the kernel, which maintains the list of devices connected to the system. This demanding process is not always accurate because sometimes the kernel doesn't know everything about a device. For example, some MP3 players or digital cameras show up as only another hard disk in the user interface. So not many user interfaces have been built for hardware discovery.
With HAL, all the important information about certain classes of hardware is made accessible in a uniform format. When a new device is added to the system, an asynchronous signal is broadcast on the system message bus detailing what kind of device was added. Any desktop application can connect to the message bus to discover the hardware. System-level scripts can also be run to configure the device. In effect, HAL allows plug-and-play.
The HAL daemon maintains a list of devices, that contains well-defined key-value pairs describing what the object represents. Each device object is identified by a Universally Unique Identifier, or UUID. The key-value pairs (namely device properties) are typed and defined in the HAL specification, so applications using HAL know what values each property means.
[edit] References
- ^ HAL tarballs. HAL tarballs. Freedesktop.org (8 May 2008). Retrieved on 2008-05-08.
- ^ "COPYING" file from the source code. “HAL is licensed to you under your choice of the Academic Free License version 2.1, or the GNU General Public License version 2.”
[edit] External links
- HAL - Hardware Abstraction Layer at freedesktop.org
- Making Hardware Just Work by Havoc Pennington (July 2003)
- The Dohickey client, that uses HAL as it's hardware detection.
|