Hardware Abstraction Layer in Windows NT

Before you start

Objectives: learn what is HAL and something about Windows NT architecture.

Prerequisites: no prerequisites.

Key terms: pc, hardware, mode, system, abstraction, layer, multiprocessor, uniprocessor, executive, communication


User Mode vs Kernel Mode

Windows actually works in two modes. The first mode is User mode and the second one is Privileged mode (also called Kernel mode). Kernel, the most important component of Windows, works in Privileged mode. This is the core of our operating system. Above the Kernel we have Executive Services. Executive services are all the services that are running on top of the Kernel. Examples of Executive services are Virtual Memory Manager, Local Security Agent, etc. These services bring us all functionalities of Windows. Programs and subsystems in User mode are limited in terms of what system resources they have access to, while the Kernel mode has unrestricted access to the system memory and external devices.

Hardware Abstraction Layer (HAL)

Underneath the Kernel we have the Hardware Abstraction Layer (HAL). HAL controls communication between the kernel (operating system) and the hardware. The function of the HAL is to mask the hardware from the actual Kernel component. It hides hardware dependent details such as I/O interfaces, interrupt controllers, and multiprocessor communication mechanisms. Among other things, HAL enables us to use different processors and to use multiple processors at the same time.

We have several types of HAL. To check which HAL is used by your system, you can go to Device Manager and select Computer. In our example we have an Windows XP machine, and we can see that we have an ACPI Uniprocessor PC.

ACPI Uniprocessor PC

Image 211.1 – ACPI Uniprocessor PC

Some of the other HALs which we can come into are Standard PC, MPS Uniprocessor PC, MPS Multiprocessor PC, Advanced Configuration and Power Interface (ACPI) PC, ACPI Multiprocessor PC, ACPI x64 based PC, etc. Notice that Uniprocessor is used for single processors, and Multiprocessor for multiple processors. The system will automatically detect the number of processors and try to use the appropriate HAL.

Remember

Windows works in two modes. The first mode is User mode and the second one is Privileged mode. Kernel, the most important component of Windows, works in Privileged mode. Underneath the Kernel we have the Hardware Abstraction Layer (HAL). HAL controls communication between the kernel (operating system) and the hardware.