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

27
  1. En quoi le micrologiciel et le pilote de périphérique sont-ils différents et liés? Je pense que les deux appareils 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?
Tim
la source

Réponses:

24
  1. 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.

  2. 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.

Flimzy
la source
Merci! en 2, par auto-démarrage, je veux dire que si le firmware est exécuté par lui-même et non par d'autres, alors que le pilote est géré par le système d'exploitation non par lui-même? J'ai repris le mot auto-amorçage de "Sans système d'exploitation, un utilisateur ne peut pas exécuter un programme d'application sur son ordinateur, sauf si le programme d'application est auto-amorçant" dans en.wikipedia.org/wiki/Operating_system
Tim
1
Le firmware est géré par le périphérique matériel lui-même ... Je pense que cela répond à la question? Considérez ceci: De nombreux périphériques non informatiques ont un «firmware» - tels que des appareils photo numériques, des lecteurs DVD, des téléphones portables, etc. Donc, évidemment, dans ces cas, le firmware est complètement autonome dans l'appareil lui-même. Ce n'est que si / lorsque vous branchez l'un de ces périphériques sur votre ordinateur que vous avez besoin d'un pilote .
Flimzy
1
Merci! Extrait de en.wikipedia.org/wiki/Computer_software : "Le micrologiciel est un logiciel de bas niveau souvent stocké sur des dispositifs de mémoire électriquement programmables. Le micrologiciel porte son nom car il est traité comme du matériel et exécuté (" exécuté ") par d'autres logiciels." Le micrologiciel est-il exécuté par d'autres logiciels ou par le matériel lui-même?
Tim
-1 pourquoi dites-vous 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.
Celeritas
@Celeritas: Parce que seuls les appareils avec un certain niveau d'intelligence ont un firmware, contrairement à ceux (comme un port RS-232) qui n'en ont pas. Si vous comparez des appareils qui ont un système d'exploitation complet (téléphone mobile, iPod, GPS programmable, etc.), vous parlez d'une couche d'abstraction complètement différente, qui n'a vraiment rien à voir avec les "pilotes de périphérique" au sens traditionnel. Cette classe de logiciels d'accès est souvent appelée «pilote de périphérique», mais en réalité c'est un protocole d'application réseau implémenté au-dessus d'un pilote de périphérique (tel que celui qui communique avec un port USB ou Bluetooth).
Flimzy
5

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.

Ignacio Vazquez-Abrams
la source
1
Merci! Le pilote de périphérique fait-il partie du système d'exploitation et est-il exécuté par le noyau du système d'exploitation? Le micrologiciel fait-il partie de l'appareil et est-il géré par le noyau du système d'exploitation ou le micrologiciel lui-même?
Tim
1
Le pilote de périphérique est considéré comme faisant partie du système d'exploitation et s'exécute généralement sur le processeur hôte. Micrologiciel est généralement géré par le dispositif; il peut cependant être téléchargé sur l'appareil par le système d'exploitation.
Ignacio Vazquez-Abrams
Ce devrait être la réponse acceptée.
Eric Wang
4

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.

sciure
la source
Alors qu'est-ce que cela signifie d'installer un firmware sur un stockage massif? Vous aimez ce paquet Debian ?
xuhdev
1
@xuhdev - Ce paquet Debian se compose de fichiers qui peuvent être utilisés par divers pilotes de périphériques Linux. Les fichiers sont référencés comme «firmware» car ils sont écrits sur le périphérique connecté par le pilote Linux. Les fichiers peuvent contenir des données opérationnelles ou du code pour l'UC / uP intégré de l'appareil. Notez que ce fichier transféré vers l'appareil est chargé dans la mémoire volatile de l'appareil, et le chargement doit avoir lieu après chaque réinitialisation de l'appareil ou du système. L ' "installation" de ce "firmware" sur le stockage de masse de l'hôte n'est qu'un mécanisme procédural (c'est-à-dire la gestion des packages).
sciure
3

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 driversbalise 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 firmwarebalise 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 firmwarec'était installé sur la puce ou la carte directement et y vivais, c'est pourquoi il doit être "flashé", tandis que vous installeriez un driverau-dessus d'un système d'exploitation.

Conclusion:

Firmwarepermet au matériel de "faire" des choses et driversautorise le logiciel à interagir avec le matériel.

bgmCoder
la source