Couche d'abstraction matérielle

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir HAL.
Principaux systèmes
d'exploitation
BSD
FreeBSD - NetBSD - OpenBSD
DragonFly BSD - PC-BSD
GNU/Linux (Liste)
Debian - Fedora - Gentoo
Mandriva - Red Hat - Slackware
SuSE - Ubuntu
Mac OS
Système 5 - 6 - 7 - 8 - 9
Mac OS X -.0 -.1 -.2 -.3 -.4 -.5- .6 - Server
MS-DOS - Microsoft Windows
1.0 - 2 - 3.x - 95 - 98 - Me
NT - 3.5x - 4.0 - 2000
XP - 2003 - Vista - 2008
Seven (en développement)
Autres
AmigaOS - BeOS - Inferno
LynxOS - Haiku OS - OS/2
QNX - Solaris - UNIX - MVS
OS/360 - OS/390 - OS/400 - Plan 9
ReactOS - VMS - ZETA - FreeDOS

La couche d'abstraction matérielle (Hardware Abstraction Layer ou HAL) est une spécification et un utilitaire logiciel qui traque les périphériques du système informatique. Le but du HAL est d'éviter aux développeurs d'implémenter manuellement le code spécifique à un périphérique. À la place, ils peuvent utiliser une couche connectable qui fournit des informations à propos du dit périphérique, tel que cela se passe par exemple lorsqu'un utilisateur branche ou débranche un périphérique USB.

Cette couche implémente un certain nombre de fonctions spécifiques au matériel : interfaces d'entrées-sorties, contrôleur d'interruptions, caches matériels, mécanismes de communication multiprocesseur... Elle isole ainsi le noyau du système des spécificités des plates-formes matérielles.

Les systèmes d'exploitation disposant du HAL (notamment : BSD, Linux et Windows NT) ont une portabilité simplifiée à travers différents types de matériels tels que les systèmes embarqués, ou encore les serveurs disposant de différentes architectures propres à leur fonctionnement : Intel x86, DEC Alpha, MIPS, PowerPC, etc.

Voir également hardware description language (HDL).