HAL, or hardware abstraction layer, is a thin layer of software at the base of the Microsoft Windows Server that offers a uniform interface between the underlying hardware and the higher layers of the operating system.
What is HAL (hardware abstraction layer)?
A thin layer of software at the base of the operating system that offers a uniform interface between the underlying hardware and the higher layers of the operating system, hiding hardware differences from those higher layers. In other words, the hardware abstraction layer (HAL) hides hardware differences from the operating system so that uniform code can be used for all hardware. All hardware looks the same to the operating system because it “sees” the hardware through the filtered glasses of the HAL.
How it works
The HAL is located at the base of the Executive Services, and it encapsulates most hardware-specific functions that are performed by the operating system. If another portion of the operating system wants to access a hardware device, it must refer its request to the HAL. The HAL handles communication between the kernel of the operating system and the hardware.
HAL in Microsoft Windows
The Windows NT kernel has a HAL in the kernel space between hardware and the executive services that are contained in the file NTOSKRNL.EXE under %WINDOWS%\system32\hal.dll. This allows portability of the Windows NT kernel-mode code to a variety of processors, with different memory management unit architectures, and a variety of systems with different I/O bus architectures; most of that code runs without change on those systems, when compiled for the instruction set applicable to those systems. For example, the SGI Intel x86-based workstations were not IBM PC compatible workstations, but due to the HAL, Windows 2000 was able to run on them.
Since Windows Vista and Windows Server 2008, the HAL used is automatically determined during startup.
The HAL is implemented in Windows as a file called hal.dll. If a hardware vendor needs to protect proprietary technology, the company can develop a custom implementation of the HAL. This means that different processor configurations might use different HAL drivers.