Hardware abstraction layer

Apr 26, 2007 15:11 GMT  ·  By

A hardware configuration layer (HAL for short) is an abstraction layer, interposed between a computer's hardware and software in order to hide hardware differences from the operating system kernel. Its main function would thus be to make most of the kernel code portable between systems with different hardwares. More specifically, a HAL allows easy communication between the higher level computer languages and the low-levels components. For Linux Adeos (Adaptive Domain Environment for Operating Systems) is one of the most well-known HALs. Once with Linux development the need for a better hardware abstraction layer grew bigger. Thus, once with KDE 4 it is expected also a better functionality between the desktop applications and the underlying system.

Solid came as an API for accessing device information, it does not deal though with low level device information or the device drivers as these are accomplished very well so far. Its code base has already been used in the development of applications like Dolphin or File Dialog for the management of the removable storage. Solid works pretty fine with the removable devices too, a matter that gave many headaches so far to the UNIX users and developers. Solid is also used by Phonon(a multimedia API provider for the KDE developers) in order to detect and provide a list of the available devices.

The new version of KDE, KDE 4 is said to provide also a better Power Management interface that should make it easier for the user to access to configuring the power and resource consumptions, powered by HAL. Bluetooth support was not forgotten, even though it is still in development and so far only device detection and connection is said to be allowed.

A solishell called program, coming once with Solid libraries, allows to query HAL about all kind of devices. Thus by typing in the command line:

code
solidshell hardware list details
you should receive a list of the available devices and some information about their performances.