An interface between hardware and software. A hardware abstraction layer (HAL) is generally used as a common driver for peripheral devices. The application calls the operating system; the OS calls the HAL, and the HAL instructions activate the specific hardware.
A HAL is used in many operating systems. For example, it was built into Windows, starting with Windows NT. It is also used in DOS, Mac, Android, Linux and various Unix versions. See abstraction layer