Introduction
En informatique, un micrologiciel (ou firmware en anglais) est un logiciel qui est intégré dans un composant matériel (en anglais hardware).
Le micrologiciel peut résider:
- dans une mémoire non volatile, donc stockant le programme et les données même lorsqu'elle n'est pas alimentée en électricité. C'est le cas le plus courant.
- dans une mémoire volatile, qui est donc effacée lorsqu'elle n'est plus alimentée en électricité. Dans ce cas, le micrologiciel est généralement chargé par un pilote à la mise sous tension.
Dans la plupart des cas ce logiciel gère le fonctionnement local du système électronique.
D'une manière générale, le micrologiciel cumule les avantages du logiciel, dont la souplesse est maximale puisqu'il est aisé de le modifier, et du matériel, dont le coût mais aussi la souplesse sont moindres. Cette organisation apparaît clairement dans les noms en anglais: soft > firm > hard (-ware). Dans ce contexte, quand on oppose logiciel et l'anglicisme 'firmware' (qui est un type de logiciel) on considère que « logiciel » signifie « logiciel de haut niveau exécuté par le CPU ». De son côté, le micrologiciel interagit avec des composants matériels qui ne peuvent plus être modifiés une fois fabriqués, ce qui réduit la nécessité de le mettre à jour.
L'utilisateur final n'a d'ordinaire pas accès directement au micrologiciel mais peut parfois le modifier par l'installation de mises-à-jour (MaJ logicielle) pour profiter d'améliorations mineures ou de corrections de bogues. Pour cela il faut que le micrologiciel réside dans certains types de mémoires ROM « reprogrammables », le plus souvent il s'agit de d'EEPROMs ou, ces derniers temps, de mémoire flash (c'est-à-dire des EEPROMs rapides).
En français, on utilise parfois et encore l'expression « logiciel interne » ou « logiciel embarqué » ou encore « logiciel d'exploitation » pour parler de micrologiciel.