W informatyce , zwłaszcza w architekturze , warstwa abstrakcji sprzętu (w skrócie HAL dla warstwy abstrakcji sprzętu ) jest pośrednikiem programowym między systemem operacyjnym a sprzętem . Oferuje ustandaryzowane funkcje obsługi sprzętu komputerowego, ukrywając techniczne szczegóły realizacji.
Wielu producentów systemów operacyjnych zawiera w swoich produktach warstwę abstrakcji sprzętu. Jest to ważny element oprogramowania w przenośnych systemach operacyjnych - prawdopodobnie będzie używany na różnych typach sprzętu: w przypadku przenoszenia tylko warstwa abstrakcji sprzętu wymaga adaptacji.
Warstwa abstrakcji sprzętu ma interfejs programowania, który zapewnia ogólne i utowarowione funkcje do manipulowania sprzętem komputerowym, ukrywając techniczne szczegóły jego działania. Pozwala to oprogramowaniu na interakcję ze sprzętem komputerowym, ignorując szczegóły techniczne sprzętu.
Warstwa abstrakcji sprzętu to najniższa warstwa oprogramowania, całkowicie zależna od sprzętu, blisko sterowników i rdzenia systemu operacyjnego. Oferuje funkcje pozwalające np. Na realizację przełączania kontekstów , synchronizację , obsługę przerwań z uwzględnieniem endianness zastosowanego procesora, obsługę zegara systemowego czy zarządzanie pamięcią jednostki . Każda funkcja zawiera instrukcje dotyczące jej implementacji na określonym typie sprzętu.
Jest ważną częścią przenośnych systemów operacyjnych, które mogą być używane na różnych typach sprzętu. Poprawia przenośność systemu operacyjnego: jeśli taki system wymaga dostosowania do użytku na nowym typie sprzętu, wówczas warstwa abstrakcji sprzętu jest jedynym oprogramowaniem wymagającym dostosowania.
Wielu producentów systemów operacyjnych zawiera w swoich produktach warstwę abstrakcji sprzętu. Budowa warstwy abstrakcji materiału jest specyficzna dla każdego producenta.
Podczas projektowania systemu wbudowanego istnienie warstwy abstrakcji sprzętu umożliwia rozpoczęcie projektowania oprogramowania przed ukończeniem projektowania sprzętu.
System operacyjny eCos posiada warstwę abstrakcji sprzętu w postaci zestawu makr języka programowania C lub makr języka asemblera , które są dostosowywane zgodnie z charakterystyką sprzętu.
Rodzina systemów operacyjnych Windows NT ma warstwę abstrakcji sprzętowej. Istnieje 5 różnych modeli; podczas instalacji systemu operacyjnego automatycznie instaluje model najlepiej dopasowany do sprzętu komputera.