Réponses:
Le micrologiciel est le logiciel qui s'exécute sur l'appareil. Un pilote est le logiciel qui indique à votre système d'exploitation comment communiquer avec l'appareil. Tous les appareils n'ont pas de micrologiciel - seuls les appareils avec un certain niveau d'intelligence.
Je ne sais pas exactement ce que vous voulez dire ... de manière générale, le micrologiciel n'a rien à voir avec le "démarrage" ... Je pense que ce que vous demandez est peut-être que les micrologiciels ont toujours le micrologiciel installé sur le périphérique, 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 appareils avec micrologiciel ont le micrologiciel programmé dans l'appareil (soit avec une puce ROM, soit avec une puce ROM programmable), mais il y a certains appareils où le micrologiciel est chargé dans l'appareil au moment de l'initialisation. Je peux penser à certaines cartes réseau et webcams qui fonctionnent de cette façon, mais je suis sûr qu'il y en a d'autres aussi.
only devices with some level of intelligence have firmware
? Je dirais que c'est l'inverse, les appareils (électroniques) simples peuvent ne pas avoir de système d'exploitation mais avoir un firmware.
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és par le micrologiciel.
La définition moderne ou l'utilisation courante du micrologiciel n'a rien à voir avec une fonctionnalité logicielle spécifique. Le micrologiciel est simplement un logiciel qui est stocké dans des puces de mémoire à semi-conducteur non volatile (par exemple, PROM, EEPROM ou flash) plutôt qu'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 chargement, de noyau et d'application. (OTOH J'ai vu des cartes tuner TV pour PC qui nécessitent le chargement de "firmware" par le noyau Linux pour terminer l'initialisation.)
L'origine du terme a à voir avec la logique contrôlée par processeur par rapport à la logique câblée. Les logiciels stockés sur les disques durs peuvent être facilement modifiés et mis à jour. Les révisions et mises à jour de la logique câblée ont nécessité une refonte et un remplacement de la carte ou du module. Le terrain d'entente était un processeur exécutant un logiciel pour contrôler le matériel. Le logiciel a été appelé cabinet Ware pour refléter le milieu entre doux articles par rapport dur logique câblée. À l'origine, le micrologiciel était stocké dans des puces ROM, PROM ou EPROM afin de maintenir la modularité de la carte. L'avancement de l'EEPROM et des puces flash a permis des mises à jour en circuit et à bord du firmware.
Au fur et à mesure que les processeurs (et périphériques) devenaient plus petits, moins chers et moins gourmands en énergie, les possibilités de les intégrer dans chaque type d'appareil / appareil s'étoffaient. Afin de rendre le logiciel pour faire fonctionner ces appareils 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 appareils / appareils dotés de processeurs intégrés, même si certaines parties du code stocké n'ont aucun lien avec le remplacement de la logique câblée.
Quelqu'un a récemment posé cette question en disant:
Le micrologiciel est une combinaison de mémoire persistante, de code de programme et des données qui y sont stockées. Des exemples typiques d'appareils 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 informatiques, les téléphones mobiles et les appareils photo numériques. Le micrologiciel contenu dans ces appareils fournit le programme de contrôle de l'appareil.
En fait, la drivers
balise SuperUser est définie:
Un pilote, également appelé pilote de périphérique ou pilote logiciel, est un logiciel qui permet aux 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ère les instructions et génère la traduction entre le périphérique et le programme informatique appelant le pilote.
et, la firmware
balise est définie:
En général, la différence entre le logiciel et le micrologiciel est le niveau auquel il interagit avec le matériel. Le micrologiciel interagit au niveau très bas du matériel tandis que le logiciel interagit à des niveaux élevés. Le micrologiciel contrôle généralement la synchronisation, les commandes et les fonctionnalités de base du matériel.
À l'origine, je pensais que firmware
c'était installé sur la puce ou la carte directement et y vivais, c'est pourquoi il doit être "flashé", tandis que vous installeriez un driver
au-dessus d'un système d'exploitation.
Conclusion:
Firmware
permet au matériel de "faire" des choses et drivers
autorise le logiciel à interagir avec le matériel.