Hardware Abstraction Layer

Why Trust Techopedia

What Does Hardware Abstraction Layer Mean?

A hardware abstraction layer (HAL) is a logical division of code that serves as an abstraction layer between a computer’s physical hardware and its software. It provides a device driver interface allowing a program to communicate with the hardware.

Advertisements

The main purpose of a HAL is to conceal different hardware architectures from the OS by providing a uniform interface to the system peripherals.

Techopedia Explains Hardware Abstraction Layer

A hardware abstraction layer is included in many OSs to avoid modifying the OS kernel to run the program on computers with varying hardware architecture. A PC may include the HAL in the OS kernel or in the form of device drivers that provide a consistent interface for applications to interact with the hardware peripherals.

The HAL provides the following benefits:

  • Allowing applications to extract as much performance out of the hardware devices as possible
  • Enabling the OS to perform regardless of the hardware architecture
  • Enabling device drivers to provide direct access to each hardware device, which allows programs to be device-independent
  • Allowing software programs to communicate with the hardware devices at a general level
  • Facilitating portability

Some of the OSs that feature HALs include the Mac OS, Linux, DOS, Solaris, BSD, Windows NT, Windows 2000 and IBM’s AS/400.

Advertisements

Related Terms

Margaret Rouse
Technology Expert
Margaret Rouse
Technology Expert

Margaret is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages.