OS et CPU sont des concepts différents. Oui, il y a un CPU, qui est l'élément clé du matériel au cœur de la machine. Il récupère les instructions du firmware dans la mémoire du firmware et les exécute. (De nos jours, même les petits systèmes ont souvent plusieurs processeurs pour une exécution parallèle, soit dit en passant; il est donc quelque peu dépassé de parler exclusivement du processeur.)
Le micrologiciel est un logiciel qui est stocké dans une mémoire non volatile (ou peut-être même en lecture seule). Parce qu'il est dans une telle mémoire, le micrologiciel est disponible lorsque la machine est allumée. La machine peut presque immédiatement commencer à exécuter le micrologiciel lorsqu'elle est allumée, ou un petit programme de démarrage (lui-même le micrologiciel) peut extraire le micrologiciel le plus volumineux d'un stockage électronique tel que le flash et le mettre dans la RAM, puis l'exécuter. L'utilisation moderne du stockage flash de nos jours est la raison pour laquelle vous pouvez parfois entendre l'expression "flasher le nouveau firmware", se référant à une procédure de mise à niveau. Le micrologiciel n'a pas besoin d'être facilement évolutif comme celui-ci. Il peut provenir d'une puce de circuit intégré, de sorte que la mise à jour d'un périphérique vers un nouveau micrologiciel peut impliquer de retirer un circuit intégré ("puce EPROM") d'une prise et d'en brancher un nouveau. BIOS PC » s utilisé pour être mis à jour de cette façon, et des myriades d'autres appareils. C'est vraiment de là que vient le mot. Certaines personnes étaient mal à l'aise d'appeler un programme "logiciel", si elles devaient échanger une puce ou une carte de circuit imprimé pour la remplacer, ce qui ressemble plus à une mise à jour matérielle. C'est ainsi que le «firmware» a été inventé: quelque chose de «plus difficile» à changer qu'un logiciel.
Le micrologiciel peut être un système d'exploitation «complet». Par exemple, Tomato est un micrologiciel basé sur Linux pour les routeurs sans fil:
http://www.polarcloud.com/tomato
Nous pouvons nous connecter à Tomato via ssh et obtenir une invite Linux. C'est donc un système d'exploitation avancé, et c'est un firmware. Mais si le routeur avait un disque dur et si le même système d'exploitation devait être chargé à partir de ce disque au démarrage, il ne pourrait plus être légitimement appelé firmware. Le micrologiciel doit être dans un stockage électronique accessible au processeur immédiatement à la mise sous tension, comme une mémoire flash ou des puces EPROM.
De nombreux appareils grand public disposent aujourd'hui d'un firmware évolutif. Si vous avez un appareil photo numérique, par exemple, vous devriez trouver son site Web et voir si une version plus récente du firmware n'est pas disponible, ce qui résout certains problèmes qui peuvent être présents dans le firmware installé en usine. Il est facile de mettre à jour le firmware de nos jours, même pour les utilisateurs finaux relativement non techniques. La tomate susmentionnée est un exemple de firmware open source tiers qui remplace le firmware d'usine.
Le mot "système d'exploitation" se réfère simplement à un programme de contrôle qui a un certain degré de sophistication et d'exhaustivité dans la gestion des ressources de la machine et la fourniture de services de niveau raisonnablement élevé aux programmes: des fonctionnalités telles que les systèmes de fichiers, les protocoles réseau, la mémoire et la gestion des processus, un accès de haut niveau aux appareils, et peut-être à un certain modèle d'utilisateur ainsi qu'à la sécurité. Tous ces éléments ne doivent pas nécessairement être présents dans un système d'exploitation. La mémoire, la gestion des processus et les E / S sont généralement la clé. Si le programme de contrôle permet à d'autres programmes de s'exécuter, en donnant à ces programmes une identité par laquelle ils sont associés à leurs propres ressources, et s'il leur fournit des services pour gérer le processeur et la mémoire, et faire des E / S, nous pouvons appeler ce contrôle programmer un système d'exploitation.
Puisque vous êtes curieux, vous pourriez vraiment apprécier certains manuels sur les architectures informatiques, comme ceux de William Stallings, ou de Hennesy et Patterson.