In the field of Unix-like software, HAL, a hardware abstraction layer and software project developed by Red Hat, allows desktop applications running within an operating system to get ready access to information about hardware so that they can locate and use such hardware regardless of bus or device type. In this way a desktop GUI such as GNOME or KDE can present all available resources to its users in a seamless and uniform manner. Dual-licensed under both the GNU General Public License and the Academic Free License, HAL consists of free software. 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 with the kernel, which maintains the list of devices connected to the system. This demanding process does not always return accurate information, 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. In addition, few desktop environment developers had built user interfaces for hardware discovery. HAL makes information about certain classes of hardware accessible in a uniform format. When a new device powers up within the system (an event known as hotplugging), it can broadcast an asynchronous signal on the system message bus of the D-Bus IPC mechanism giving details of the new device and its capabilities. Any desktop application can connect to this message bus to discover the hardware. System-level scripts may also run to configure the device. On Linux systems the kernel calls out to udev which in turn provides notifications to HAL through a standard Unix domain socket whenever a device plugs in. In this way, desktops such as GNOME or KDE will be able to pop up a file browser on attached USB flash drives and SD cards, for example. The HAL daemon (generally running as hald) maintains a list of devices; the list contains well-defined key-value pairs describing what each object represents. Each device object has a Universally Unique Identifier, or UUID. The HAL specification types and defines key-value pairs (namely device properties), so applications using HAL can interpret the values for each property.

Project Details



Information obtained from users, and repositories like FLOSSmole, Wikipedia, Apache, Codehaus, and several others. Please inform us of any errors, objections or omissions. You can find our terms of service here.


Recommend a good alternative to this application, win points and help out the fellow members. use the quick add tool to add alternatives.

Don't forget to rate the alternative application listed or add them to your profile too!
0 recommended alternatives to Blender Recommend Alternative


Do you use this application? Add this to your profile using the 'Use This?' button. You will get points and other members will be able to find you.

102 Blender users I Use This