Home

hardwareabstractielaag

Een hardware-abstractielaag (HAL, van Engelse hardware abstraction layer) is een softwarelaag die voor hoger liggende software een uniforme interface biedt naar hardwarebronnen. Doel is om hardware-specifieke details te verbergen en de portabiliteit en onderhoud van drivers en systeemcode te vergroten. De HAL fungeert doorgaans als tussenlaag tussen de kernel en de hardware, en vertaalt generieke verzoeken naar apparaat-specifieke commando's.

Taken en werking: Een HAL verzorgt onder meer toegang tot apparaten (I/O), interrupt handling, timing, geheugenmapping

Toepassingsgebieden en voorbeelden: In moderne desktop- en serveromgevingen bestaat een HAL als onderdeel van het besturingssysteem.

Relevantie en evolutie: De HAL is nog steeds een concept in systeemontwerp, maar moderne OS-architecturen verschuiven

en
stroombeheer,
afhankelijk
van
de
platform-
en
hardware-eigenschappen.
Door
de
hardware
achter
een
gestandaardiseerde
API
te
verstoppen,
kunnen
kernelonderdelen
en
applicaties
zonder
aanpassingen
op
meerdere
apparaten
draaien.
Dit
bevordert
ook
het
ontwikkelen
van
drivers
die
generiek
kunnen
functioneren
op
verschillende
hardwarevarianten.
Windows
gebruikt
een
architectuurgebonden
HAL
die
serverspecifieke
functies
aanbiedt
en
verschillen
tussen
CPUs
en
platformen
verbergt.
Embedded-
en
real-time
systemen
implementeren
vaak
een
HAL
om
software
onafhankelijk
te
houden
van
de
specifieke
microcontroller
of
SoC.
Unix-achtige
systemen
hebben
vaak
geen
centrale
HAL;
in
plaats
daarvan
wordt
hardwareafhandeling
georganiseerd
via
de
kernel-device-driver-structuur,
bus-subsystem
en
hardware-specifieke
drivers.
In
macOS
is
I/O
Kit
een
belangrijke
HAL-achtige
laag
die
drivers
en
hardware-interactie
coördineert.
naar
uitgebreide
drivermodellen
en
busarchitecturen
waar
hardwareabstractie
op
meerdere
niveaus
plaatsvindt.
De
strikte,
monolithische
HAL
is
minder
prominent,
maar
de
basisgedachte
van
het
scheiden
van
hardware-details
van
hogere
software
blijft
bestaan.