Short for
hardware abstraction layer, programming in an
operating system that functions as an
interface between a system s
hardware and
software, providing a consistent hardware
platform on which to run
applications. When a HAL is employed, applications do not access hardware directly but access the abstract layer provided by the HAL. Like
APIs, HALs allow applications to be device-independent because they abstract information from such systems as
caches,
I/O buses and
interrupts and use this data to give the software a way to interact with the specific requirements of the hardware on which it is running.