web-dev-qa-db-fra.com

Différence et relation entre le firmware et le pilote de périphérique

  1. En quoi le micrologiciel et le pilote de périphérique sont-ils différents et liés? Je pense que les deux dispositifs de contrôle?
  2. Le firmware est-il toujours à démarrage automatique, alors que le pilote doit être exécuté/démarré par le système d'exploitation?
26
Tim
  1. Le micrologiciel est le logiciel qui exécute sur le périphérique. Un pilote est le logiciel qui indique à votre système d'exploitation comment communiquer avec le périphérique. Tous les appareils ne possèdent pas de microprogrammes, mais uniquement des appareils dotés d'un certain niveau d'intelligence.

  2. Je ne suis pas tout à fait sûr de ce que vous voulez dire ... En règle générale, le microprogramme n'a rien à voir avec le "démarrage" ... Je pense que ce que vous demandez, c'est peut-être que les appareils dotés d'un microprogramme ont toujours le microprogramme installé sur celui-ci, ou est-il chargé après le démarrage. Si c'est ce que vous demandez, la réponse est non ...

Le plus souvent, les périphériques dotés d'un microprogramme ont le microprogramme programmé dans celui-ci (soit avec une puce ROM, soit avec une puce programmable ROM, mais le microprogramme est chargé dans certains périphériques). l'appareil au moment de l'initialisation. Je peux penser à certaines cartes réseau et webcams qui fonctionnent de cette manière, mais je suis sûr qu’il en existe d’autres également.

24
Flimzy

Le micrologiciel implémente les détails de bas niveau nécessaires au fonctionnement du matériel et fournit une API/ABI à un niveau supérieur. Un pilote de périphérique fournit un adaptateur entre le système d'exploitation et l'API/ABI exposée par le micrologiciel.

5

La définition moderne ou l'utilisation courante du micrologiciel n'a rien à voir avec une fonctionnalité logicielle spécifique. Un micrologiciel est simplement un logiciel qui est stocké dans des puces de mémoire à semi-conducteurs non volatiles (par exemple, une PROM, une EEPROM ou une mémoire flash) plutôt que dans un périphérique de stockage de masse tel qu'un disque dur. Le logiciel stocké peut être un binaire lié monolithique ou se composer de modules de chargeur, de noyau et d’application. (OTOH, j’ai vu des cartes tuner TV pour PC nécessitant le chargement du "firmware" par le noyau Linux pour compléter l’initialisation.)

L'origine du terme concerne la logique contrôlée par le processeur par rapport à la logique câblée. Les logiciels stockés sur les disques durs pourraient être facilement modifiés et mis à jour. Révisions et mises à jour de la carte réseau ou du module requis pour la conception et le remplacement de la logique câblée. Le moyen terme était un processeur exécutant un logiciel pour contrôler le matériel. Le logiciel s'appelait cabinet pour refléter le juste milieu entre le logiciel et la logique câblée . À l’origine, le microprogramme était stocké dans des puces ROM, PROM ou EPROM afin de préserver la modularité de la carte. L’avancement de la mémoire EEPROM et des puces flash a permis la mise à jour du micrologiciel dans le circuit et la carte intégrée.

À mesure que les processeurs (et les périphériques) devenaient plus petits, moins chers et moins gourmands en énergie, les possibilités de les intégrer à tout type d'appareil/appareil ont été étendues. Afin de rendre le logiciel permettant de faire fonctionner ces périphériques plus robuste et sécurisé, le logiciel est stocké dans des puces de mémoire flash plutôt que sur un disque dur; cela rend également l'appareil plus petit et beaucoup moins cher. Le terme "micrologiciel" a été élargi pour englober tous les logiciels des périphériques/appliances dotés de processeurs intégrés, même si certaines parties du code stocké n’ont aucune relation avec le remplacement de la logique câblée.

4
sawdust

Quelqu'un a posté cette question récemment , en disant:

Le micrologiciel est une combinaison de mémoire persistante, de code de programme et des données qui y sont stockées. Les exemples typiques de périphériques contenant un micrologiciel sont les systèmes intégrés tels que les feux de circulation, les appareils grand public, les montres numériques, les ordinateurs, les périphériques, les téléphones mobiles et les appareils photo numériques. Le micrologiciel contenu dans ces périphériques fournit le programme de contrôle pour le périphérique.

En fait, la balise drivers de SuperUser est définie:

Un pilote, également appelé pilote de périphérique ou pilote logiciel, est un logiciel permettant à des programmes informatiques de niveau supérieur d'interagir avec un périphérique matériel. Lorsqu'un programme informatique demande une interaction avec un certain périphérique matériel, le pilote gérera la traduction des instructions et des sorties entre le périphérique et le programme informatique invoquant le pilote.

et, la balise firmware est définie:

En général, la différence entre un logiciel et un micrologiciel est le niveau auquel il interagit avec le matériel. Le micrologiciel interagit à un niveau très bas du matériel tandis que le logiciel interagit à un niveau élevé. Le micrologiciel contrôle généralement la synchronisation, les commandes et les fonctionnalités de base du matériel.

À l’origine, j’imaginais que firmware était installé directement sur la puce ou le tableau et y résidait. C’est pourquoi il faut le "flasher", alors que vous installeriez une driver sur un système d’exploitation.

Conclusion:

Firmware permet au matériel de "faire" des choses, et drivers permet au logiciel d'interagir avec le matériel.

3
bgmCoder