Quelles sont les différences entre le firmware et le logiciel / OS?

15
  1. Je me demandais quelles sont les différences entre le firmware et le logiciel?
  2. Quelles sont les différences entre le firmware et le système d'exploitation?
  3. Les chargeurs de démarrage sont-ils des micrologiciels? Le bios l'est. Et GNU grub? Le logiciel ou micrologiciel grub est-il?
Tim
la source

Réponses:

13

Traditionnellement, le micrologiciel est un code CPU qui réside sur une ROM non modifiable qui est nécessaire pour qu'un périphérique matériel démarre et charge un système d'exploitation ou un binaire (logiciel) de choix. Parfois, aucun choix d'un binaire n'est donné et un attaché au firmware de la partie de démarrage est utilisé.

Tous les processeurs ont le problème classique en ce sens qu’ils récupèrent les instructions de la mémoire, une sorte de mémoire préprogrammée doit exister à une adresse fixe au démarrage du processeur, afin qu’elle puisse faire quelque chose automatiquement au démarrage. Le firmware existe à cet effet. Certains micrologiciels comportent également du code que les programmes ultérieurs peuvent utiliser pour les services. Le firmware du BIOS expose de nombreuses fonctions utilisées par DOS pour les entrées et sorties de base (d'où la raison pour laquelle BIOS signifie Basic Input Output System).

La distinction n'est pas totalement claire. Certaines (la plupart) des cartes WLAN nécessitent le chargement d'un firmware avant de commencer à fonctionner. Cependant, il y a généralement un minuscule micrologiciel sur l'appareil dont le travail consiste à ne rien faire d'autre que d'accepter un "micrologiciel" principal sur le bus USB lorsque l'appareil est démarré par le système d'exploitation, et de passer le contrôle lorsqu'il est chargé. La plupart des gens diraient que tout cela est un firmware.

Comme les EEPROM et la mémoire flash sont devenues plus courantes, le micrologiciel ne réside généralement plus dans une ROM non inscriptible mais dans la mémoire flash et peut être modifié. La distinction entre micrologiciel et logiciel est floue aujourd'hui avec l'avènement de la mémoire flash. Cependant, une chose n'a pas changé au fil des ans et c'est que les CPU sont toujours des CPU et nécessitent un code, ou un firmware, pour être visible au démarrage pour, eh bien, démarrer.

Les processeurs sont dans plus de périphériques que jamais, donc développer et permettre la mise à jour du firmware en cas de bugs est un gros problème maintenant et de nombreux périphériques matériels avec un CPU ont des interfaces de mise à jour du firmware, parfois non documentées.

Un firmware peut être utilisé pour charger un OS. Il peut contenir un chargeur de démarrage ou du code qui charge un chargeur de démarrage. Il est possible de stocker une image du système d'exploitation au même emplacement que le micrologiciel et de laisser le code de démarrage du micrologiciel charger le système d'exploitation (les téléphones portables le font). Les BIOS PC n'incluent généralement pas de chargeurs de démarrage. U-boot (pas pour les PC) est un exemple de micrologiciel "compatible avec le système de fichiers" qui charge directement un système d'exploitation.

Les logiciels ne possèdent généralement pas toutes les fonctionnalités d'un système d'exploitation complet en raison du principe selon lequel plus simple est plus fiable. Les firmwares les plus simples initialisent simplement un minimum de matériel, chargent un secteur ou bloquent un périphérique de stockage et y lancent l'exécution. C'est simple à programmer et donc facile à vérifier car sans bug. Les bogues dans le micrologiciel au démarrage peuvent en particulier entraîner un désastre pour un appareil.

LawrenceC
la source
Merci! En quoi le micrologiciel et le pilote de périphérique sont-ils différents en tant que deux périphériques de contrôle?
Tim
Pour les périphériques tels que les cartes WLAN: les pilotes sont conçus pour s'interfacer entre un périphérique matériel et le système d'exploitation lui-même. Les pilotes s'exécutent sur le PC. Le micrologiciel est conçu pour interfacer entre un périphérique matériel et un pilote via un bus (USB, IDE, PCI-E, etc.). Le micrologiciel s'exécute sur l'appareil lui-même.
LawrenceC
5

Le firmware est un logiciel, sauf qu'au lieu d'être stocké sur disque, il est stocké dans une EEPROM qui est généralement flashable pour permettre les mises à jour.

Le micrologiciel est en quelque sorte un système d'exploitation, mais beaucoup plus restrictif et à usage unique car il ne sert qu'à contrôler cet appareil, tandis qu'un système d'exploitation est un système polyvalent qui permet à tout type de logiciel d'être exécuté sur plusieurs appareils matériels.

Non, les chargeurs de démarrage ne sont pas des micrologiciels car ce sont des logiciels qui existent sur le disque. Oui, le BIOS est dû au fait qu'il existe sur une puce (flashable). Non, GRUB n'est pas non plus un micrologiciel car, encore une fois, il n'est pas ferme (il n'y a pas de composant matériel), c'est un logiciel qui existe sur le disque - bien qu'il puisse (et peut) être installé sur une puce, auquel cas il le serait être firmware.

Synetech
la source
4
  1. La différence réside essentiellement dans l'emplacement du code. Généralement, le micrologiciel est gravé dans une sorte d'EPROM ou de mémoire flash intégrée, tandis que le logiciel est stocké sur un appareil de course de masse.

  2. Le système d'exploitation d'un appareil peut résider dans un micrologiciel ou un logiciel. Sur un PC, le firmware (BIOS) ne fournit que des services de bas niveau qu'un OS logiciel (Windows / Linux / etc) peut utiliser. Dans les appareils mobiles, le système d'exploitation est généralement intégré au micrologiciel.

  3. Selon la définition de (1), le BIOS de l'ordinateur est un micrologiciel, mais les chargeurs de démarrage, qui résident sur le disque dur, sont des logiciels.

Andrew Cooper
la source
3

Les limites peuvent être un peu floues.

Un logiciel est généralement une instruction ou une routine qu'un ordinateur peut exécuter.

Le micrologiciel est généralement des instructions spécifiques (logiciel) qui sont chargées dans / sur le matériel afin qu'elles puissent remplir leur fonction.

Je dirais qu'à peu près chaque pièce de matériel a une sorte de firmware inclus.

Encore une fois, je ne pense pas qu'il existe un guide définitif pour savoir où commencer et où s'arrêter - tout ce qu'est un firmware, c'est un logiciel qui est compilé pour n'importe quelle puce se trouvant dans l'appareil.

Quant à votre deuxième question sur le firmware, je dirais que les bootloaders ne le sont pas mais que le BIOS l'est et que grub ne l'est pas.

C'est très difficile de tracer la ligne mais ... la façon dont je le vois, c'est que le BIOS (maintenant EFI) est le firmware de la carte mère, et le disque dur a son propre firmware.

Ainsi, le chargeur de démarrage / grub est un logiciel pur - il peut effectuer des tâches avec le disque dur, mais il ne contrôle directement aucun matériel.

Si vous prenez un appareil embarqué tel qu'un Iphone / Ipad, où commence le firmware et le logiciel!? Si vous considérez IOS comme un firmware, alors pourquoi pas Windows ou similaire.

Pour moi, cela montre que les limites sont là où les fabricants ou les vendeurs de tout appareil vous permettent de prendre le contrôle et ce n'est pas vraiment une chose fixe / science exacte.

Par exemple,

  • Une carte mère est pour le démarrage - le firmware est le BIOS, quand il passe à la partie suivante
  • Les disques optiques et durs sont des composants pour lire / écrire des données, le firmware est la partie qui fait ce travail sur demande.
  • La carte graphique est un composant permettant d'afficher des graphiques, le micrologiciel est la partie qui, sur demande, tire la sortie.

Pour compliquer davantage - quand je dis sur demande, cela peut provenir d'un pilote dans un autre logiciel

Maintenant, un Ipad, ou un Iphone, ou tout autre appareil embarqué ...

  • Un appareil acheté sur étagère pour effectuer une fonction limitée (par exemple exécuter IOS) est le micrologiciel car vous ne le modifiez pas (ou ne devez pas) le modifier manuellement. Il peut contenir d'autres éléments matériels à l'intérieur, mais il est présenté comme un seul appareil et vous n'achetez pas le matériel séparément, là, toute mise à jour disponible mettra à jour tout de manière invisible (par exemple un téléphone, vous ne mettez pas à jour manuellement le contrôleur GSM, l'alimentation variables et plus, vous avez juste une mise à jour qui peut modifier ces choses).

Pour résumer...

Pour moi, je dirais que firmware = le logiciel qui vient sur les appareils où un logiciel pur est acheté en tant que données, mais je suis sûr que d'autres peuvent dire différent!

William Hilsum
la source
J'espère que cela se lit bien ... J'ai trouvé ce sujet très intéressant à écrire, mais cela m'a pris plus d'une demi-heure et c'est très tôt le matin / je suis très fatigué ... et je ne suis pas toujours clair à le meilleur des temps! ... Heureux de répondre aux questions et j'espère juste ne pas me répéter trop!
William Hilsum
0

Je veux donner une réponse en seulement quelques mots. Le micrologiciel et le système d'exploitation sont tous deux très importants pour que tout système numérique démarre et fonctionne correctement et nous discuterons de la façon dont ces deux fonctionnent. Supposons que nous avons éteint notre smartphone et que nous allumions après avoir appuyé sur le bouton d'alimentation de notre smartphone, cette commande ira à la puce du BIOS qui est une mémoire non volatile et contenant un programme de firmware. dans les deux sens vers RAM et ROM, il donne la commande ram pour retirer les codes du système d'exploitation de Rom et une autre commande pour ROM pour donner une copie de son système d'exploitation à RAM pour activer tous les autres composants de ce système.

Hritik Nitish
la source