Couche d'abstraction matérielle
# Couche d'abstraction matérielle

En informatique, et plus particulièrement en architecture, une couche d'abstraction matérielle (abrégé en HAL pour hardware abstraction layer) est un logiciel intermédiaire entre le système d'exploitation et le matériel informatique. Il offre des fonctions standardisées de manipulation du matériel informatique tout en cachant les détails techniques de la mise en œuvre.

De nombreux producteurs de système d'exploitation incluent une couche d'abstraction matérielle dans leurs produits. C'est une pièce de logiciel importante dans les systèmes d'exploitation portables — susceptibles d'être utilisés sur différents types de matériel : en cas de portage seule la couche d'abstraction matérielle nécessite adaptation.

## Fonctionnalités

Une couche d'abstraction matérielle comporte une interface de programmation qui fournit des fonctions génériques et banalisées de manipulation du matériel informatique en cachant les détails techniques du fonctionnement du matériel. Ce qui permet à un logiciel d'interagir avec le matériel informatique en faisant abstraction des détails techniques du matériel.

La couche d'abstraction matérielle est la plus basse couche de logiciel, totalement dépendante du matériel, proche des pilotes et du cœur du système $d'exploitation^,.$ Elle offre des fonctions qui permettent par exemple la mise en œuvre de la commutation de contexte, de la synchronisation, la manipulation des interruptions, la prise en compte de l´endianness du processeur utilisé, la manipulation de l'horloge système ou l'unité de gestion mémoire. Chaque fonction contient les instructions permettant de la mettre en œuvre sur un certain type de matériel.

C'est une pièce importante des systèmes d'exploitation portables, susceptibles d'être utilisés sur différents types de matériel. Elle améliore la portabilité du système d'exploitation : si un tel système doit être adapté en vue d'être utilisé sur un nouveau type de matériel, la couche d'abstraction matérielle est alors la seule pièce de logiciel qui nécessite adaptation.

## Exemples

De nombreux producteurs de système d'exploitation incluent une couche d'abstraction matérielle dans leur produits. La construction de la couche d'abstraction matérielle est propre à chaque producteur.

Lors de la conception d'un système embarqué, l'existence d'une couche d'abstraction matérielle permet de commencer la conception du logiciel avant la fin de la conception du matériel.

Le système d'exploitation eCos comporte une couche d'abstraction matérielle sous la forme d'une suite de macros en langage de programmation C ou assembleur, qui sont adaptées en fonction des caractéristiques du matériel.

La famille de système d'exploitation Windows NT comporte une couche d'abstraction matérielle. Il existe 5 modèles différents; lors de l'installation du système d'exploitation, celui-ci installe automatiquement le modèle le mieux adapté au matériel de l'ordinateur.

