Hardware abstraction layer


Hardware abstraction layer

A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. Its function is to hide differences in hardware from most of the operating system kernel, so that most of the kernel-mode code does not need to be changed to run on systems with different hardware. On a PC, HAL can basically be considered to be the driver for the motherboard and allows instructions from higher level computer languages to communicate with lower level components, such as directly with hardware.

The Windows NT operating system has a HAL in the kernel space, between hardware and kernel, drivers, executive services., and other subsystems. Popular buses which are used on more than one architecture are also abstracted, such as ISA, EISA, PCI, PCI-E, etc., allowing drivers to also be highly portable with a minimum of code modification.

An "extreme" example of a HAL can be found in the System/38 and AS/400 architecture. Most compilers for those systems generate an abstract machine code; the Licensed Internal Code, or LIC, translates this virtual machine code into native code for the processor on which it is running and executes the resulting native code. (The exceptions are compilers that generate the LIC itself; those compilers are not available outside IBM.) This was so successful that application software and operating system software above the LIC layer that were compiled on the original S/38 run without modification and without recompilation on the latest AS/400 systems, despite the fact that the underlying hardware has been changed dramatically; at least three different types of processors have been in use.

Hardware abstraction layers are of an even lower level in computer languages than application programming interfaces (API) because they interact directly with hardware instead of a system kernel, therefore HALs require less processing time than APIs. Higher level languages often use HALs and APIs to communicate with lower level components.

Operating systems having a defined HAL are easily portable across different hardware. This is especially important for embedded systems that run on dozens of different platforms.

References

ee also

*HAL (software)
*Nanokernel


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Hardware abstraction layer — У этого термина существуют и другие значения, см. HAL. Hardware Abstraction Layer (HAL, Слой аппаратных абстракций)  слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения… …   Википедия

  • Hardware Abstraction Layer — Hardware Abstraction Layer,   HAL …   Universal-Lexikon

  • Hardware Abstraction Layer — Eine Hardwareabstraktionsschicht (engl. HAL, Hardware Abstraction Layer) ist eine architektonische Ebene größerer Computerprogramme oder Systeme solcher Programme, die dafür sorgt, dass andere Software Komponenten nicht auf die Spezifikationen… …   Deutsch Wikipedia

  • Hardware abstraction layer — Couche d abstraction matérielle Pour les articles homonymes, voir HAL. La couche d abstraction matérielle (Hardware Abstraction Layer ou HAL) est une spécification et un utilitaire logiciel qui traque les périphériques du système informatique. Le …   Wikipédia en Français

  • Hardware Abstraction Layer —    Abbreviated HAL. The lowest level of the Microsoft Windows NT operating system, which is specifically tailored to the type of hardware used in the server. If the hardware changes, changes also have to be made to the HAL …   Dictionary of networking

  • Hardware abstraction — Hardware abstractions are sets of routines in software that emulate some platform specific details, giving programs direct access to the hardware resources.They often allow programmers to write device independent, high performance applications by …   Wikipedia

  • Abstraction layer — This is about the concept in computer science, for the concept in grouping, see Principle of abstraction. An abstraction layer (or abstraction level) is a way of hiding the implementation details of a particular set of functionality. Software… …   Wikipedia

  • Operating System Abstraction Layer — An Operating System Abstraction Layer (OSAL) provides an application programming interface (API) to an abstract operating system making it easier and quicker to develop code for multiple software or hardware platforms. OS abstraction layers deal… …   Wikipedia

  • Hardware-Abstraktions-Schicht — Eine Hardwareabstraktionsschicht (engl. HAL, Hardware Abstraction Layer) ist eine architektonische Ebene größerer Computerprogramme oder Systeme solcher Programme, die dafür sorgt, dass andere Software Komponenten nicht auf die Spezifikationen… …   Deutsch Wikipedia

  • Hardware Compatibility List — Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein und Ausgabegeräte und steuert die Ausführung von Programmen. Betriebssystem heißt auf Englisch… …   Deutsch Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.