Hardware Abstraction Layer

From OSDev Wiki
Jump to navigation Jump to search

This article is a stub! This page or section is a stub. You can help the wiki by accurately contributing to it.

Hardware Abstraction Layer

A "Hardware Abstraction Layer" or HAL is an abstraction of the hardware, so as to present a consistent interface to software even if the underlying hardware changes or different models of the same device vary in their implementation and interface. A HAL allows programmers to write device drivers in a consistent and largely model or brand agnostic manner, it might isolate the kernel from much of the hardware in the system. Operating systems which make use of a HAL will rarely, permit user-level software to interface directly with hardware devices and usually will not allow device drivers (which frequently run with privileges) to do so either. Device Driver Interfaces are one of the most important compoments in a HAL.