web-dev-qa-db-fra.com

Quelle est la différence entre le firmware et le système d'exploitation?

Dans les périphériques intégrés tels que les imprimantes, les commutateurs, la différence entre le micrologiciel et le système d'exploitation est confuse. Les systèmes d'exploitation des périphériques intégrés sont-ils similaires aux PC (Linux et Windows)?

Par exemple, j’ai une imprimante dotée d’un serveur Web intégré qui me permet de gérer l’imprimante à distance. Lorsque j'ouvre le site Web du fabricant, je constate que le système d'exploitation est le suivant: OS 9.86. De quel type d'OS s'agit-il? Voir: Phaser 8560 Support & Drivers

13
user2192774

Le micrologiciel fait référence à un petit morceau de code qui réside dans la mémoire non volatile. De nos jours, dans les périphériques matériels que l’on trouve couramment dans les bureaux (imprimantes, téléphones VoIP, etc.), les microprogrammes sont généralement responsables du chargement (vérification de la signature du code du système d'exploitation) et de la gestion (système d'exploitation clignotant en mode de récupération) du système d'exploitation installé sur la machine. Le travail du système d'exploitation consiste à exécuter la tâche proprement dite (par exemple, l'impression).

Les fournisseurs de matériel utilisent généralement un dérivé de Linux (par exemple, Cisco IOS) ou un système d’exploitation en temps réel (par exemple, - VxWorks ).

8
JosephH

Comme d'autres l'ont souligné, le micrologiciel se trouve dans la mémoire non volatile d'un périphérique. Il contient les instructions que l’appareil exécute au démarrage, à la mise hors tension ou à la réinitialisation. Il peut s’agir de l’intégralité du logiciel du périphérique ou des instructions permettant de passer directement aux instructions d’un autre composant, par exemple lorsque le BIOS d’un PC force le processeur à lire le premier secteur sur un lecteur de disque dur (lecteur de disquette ou CD). -ROM) pour découvrir le code à exécuter ensuite. 

Un système d'exploitation est un code exécuté sur un périphérique fournissant des services permettant aux applications d'accéder aux fonctionnalités du périphérique. Par exemple, il peut fournir un découpage temporel du processeur, un système de fichiers auquel accéder, des entrées et des sorties, etc.

Un périphérique intégré n'a pas besoin de fournir un système d'exploitation aux applications, mais il peut s'agir d'un modèle approprié à utiliser par le fabricant pour l'écriture du logiciel. Il est concevable qu'une imprimante puisse avoir tous ses microprogrammes dans un programme en cours d'exécution avec quelques gestionnaires d'interruptions, sans qu'il soit nécessaire de séparer le serveur Web d'un système d'exploitation. Je ne sais pas pour ce modèle particulier.

Le fait est qu’un système d’exploitation peut exister dans un micrologiciel, et que le micrologiciel peut exister sans système d’exploitation. Ce sont des concepts indépendants.

8
UncleO

Dans les termes les plus simples:

OS

Contient le noyau, une interface utilisateur graphique (GUI) ou au minimum une interface de ligne de commande (CLI) utilisant du matériel pour la gestion de fichiers

Noyau

Une partie du logiciel du système d'exploitation, le portier et le traducteur entre le système d'exploitation et le matériel.

En d'autres termes (sur Wikipédia), la fonction principale du noyau consiste à faciliter l'accès aux ressources de l'ordinateur:

  • -CPU
  • -RAM
  • -I/O
  • Appels système

Firmware

  • Par définition, le micrologiciel est toute instruction stockée dans la ROM.
  • Le micrologiciel est un jeu de mots entre logiciel et matériel, faisant référence au spectre pour "facilité de modification"
  • Le micrologiciel est indépendant du système d'exploitation _ {une exception qui brouille les lignes} _ lorsque tout le système d'exploitation est stocké dans la mémoire ROM, donc, par définition, considéré comme micrologiciel
  • Le micrologiciel contient généralement le programme d'amorçage qui charge le noyau du système d'exploitation
  • Le micrologiciel est l’instruction minimale pour orchestrer plusieurs composants matériels à usage général.
  • Le micrologiciel n'est pas nécessaire si vous personnalisez/imprimez entièrement votre logique/vos instructions avec VLSI sur votre propre circuit (je pense que c'est important à réaliser lorsque vous parlez de micrologiciel)
  • Le micrologiciel concerne des produits de consommation tels qu'un RC car, le système d'exploitation n'est pas
  • Le micrologiciel est dans la totalité/la majorité des composants électroniques, le système d'exploitation n'est pas
  • Virus dans le firmware ne peut jamais être détecté ou supprimé. Virus sur un système d'exploitation peut être effacé avec une nouvelle installation

Lorsque vous allumez votre ordinateur:

Micrologiciel → Noyau → Système d'exploitation complet

Fondamentalement

4

Pour relier ce que d'autres ont posté:

Firmware est plus qu'un simple bootstrap ou BIOS, bien que ce soit une utilisation courante du terme dans la plupart des appareils grand public.

Dans des applications plus sophistiquées, les FPGA (Field-Programmable Gate Arrays), les CPLD (CPL) et autres technologies similaires constituent un mécanisme permettant de créer des circuits logiques configurables pouvant aller bien au-delà du code exécutable linéairement exécuté par un microcontrôleur ou un processeur plus grand. . C’est souvent une alternative aux circuits intégrés spécifiques à une application (ASIC), qui ne peuvent pas être modifiés après la mise en place de la puce.

Dans de telles applications, le firmware fait bien plus que charger du code pour démarrer. Les applications peuvent être conçues pour gérer plusieurs opérations en parallèle, y compris, sans aucune limitation, le routage d'adresses, le traitement du signal, le coprocessing mathématique, les temporisations, le séquencement de l'alimentation et des réinitialisations, même les commandes de voyants et de relais.

Les possibilités de création de périphériques personnalisés sont infinies et peuvent être reprogrammées dans le cas des FPGA et des CPLD.

Les micrologiciels du type décrit ci-dessus sont (généralement) programmés en VHDL, qui décrit une logique parallèle synchrone ou asynchrone pour représenter les fonctions souhaitées. Les conceptions sont généralement conçues pour être accessibles via un logiciel via une plage d'adresses mappées en mémoire ou via un autre protocole (par exemple, PCI/PCI-X/PCIe). Les registres créés par la conception du microprogramme représentent un ensemble de contrôles et d’états pour les fonctionnalités souhaitées.

Le système d'exploitation, quant à lui, fournit au logiciel les interfaces permettant de fonctionner dans un environnement de traitement (c'est-à-dire fournit le contexte et les "règles" pour utiliser le processeur et tout matériel ou micrologiciel accessible par logiciel). Un système d'exploitation peut être défini en tant que règles de traitement dans un micrologiciel ou (plus généralement) il ne s'agit que de logiciels chargés à partir d'une mémoire ROM, flash ou autre.

L’interface entre les composants indépendants du système d’exploitation et le matériel se présente sous différentes formes: carte de support de carte (BSP), pilotes, etc. Le BSP sert généralement à configurer les adresses des périphériques et des périphériques spécifiques au processeur. , entre autres. De nombreux fournisseurs de systèmes d'exploitation temps réel (RTOS) fournissent des configurations et/ou des outils BSP de base pour démarrer.

Certains concepteurs veilleront à ce que la conception BSP reste simple et à ce que tout se passe bien, et écrira de nombreuses interfaces pour atteindre le matériel ou les microprogrammes indépendamment des protocoles RTOS BSP; Ceci est plus répandu avec le firmware personnalisé.

Oui, les systèmes d'exploitation de périphériques intégrés sont "similaires" aux PC. Les distinctions sont très variées, mais elles fonctionnent toutes fondamentalement de la même manière et fournissent un contexte d’exécution aux applications pour qu’elles fonctionnent sur un ensemble de périphériques. En ce qui concerne quel type de système d'exploitation est réellement dans l'imprimante? Il n’ya aucun moyen de savoir vraiment sans plus d’informations (ils ne publient que le numéro de version 9.86 ... pourrait être personnalisé, il pourrait s’agir d’un nombre quelconque de RTOS ou de GPOS); de plus, il n’est pas clair si le système d’exploitation répertorié avec le micrologiciel figure réellement dans ce téléchargement ou dans une notation liée à la compatibilité.

J'espère que ça aide!

1
RocketRedNeck

Firmware:

Pour que tout périphérique (ordinateur, imprimante, scanner, appareil photo numérique, etc.) commence à fonctionner, il doit disposer d'un programme initial à exécuter lorsqu'il est allumé/démarré. Ce programme initial s'appelle firmware . Il est aussi appelé programme bootstrap , aussi appeléBIOS. Il est monté dansROM(une mémoire non volatile dont le contenu est permanent).

Le micrologiciel localise le noyau du système d'exploitation (rappelez-vous qu'il fait partie du système d'exploitation) et le charge dans la mémoire principale (RAM) au moment du démarrage. Le micrologiciel est généralement écrit en langage Assembly ou dans un langage évolué tel que C/C++.

Système opérateur:

Un système d'exploitation est une pile logicielle complète qui gère le matériel d'un ordinateur et configure un environnement pour l'exécution des applications. En d'autres termes, un système d'exploitation exécute la tâche désignée du périphérique. Kernel se trouve au bas de cette pile de logiciels et continue à fonctionner aussi longtemps que votre appareil est opérationnel. Lorsque je parle de système d'exploitation gérant le matériel, c'est en fait le noyau qui gère les requêtes relatives aux ressources matérielles (CPU, mémoire, entrée et sortie).

1
Manohar

Le micrologiciel est une application qui occupe toutes les ressources matérielles. En d'autres termes, il n'y a pas de système d'exploitation capable de charger dynamiquement une application sur le système. L'application est le système d'exploitation lui-même. L'application manipule TOUTES les ressources du matériel. Ainsi, l'application Est extrêmement intégrée au matériel, il est presque impossible d'être multi-matériel. C'est pourquoi l'application est appelée firmware: un logiciel est FIRMED sur un matériel spécifié. 

Par exemple, le micrologiciel de votre climatiseur commande un compresseur et un panneau de commande spécifiés. Ainsi, le micrologiciel sera inutilisable sur les autres modèles de climatiseurs (bien entendu, le micrologiciel est inutilisable sur les autres appareils).

À l'origine, le micrologiciel était défini comme suit: "Le micrologiciel est contenu dans des périphériques de mémoire non volatile tels qu'une mémoire ROM, une mémoire EPROM ou une mémoire flash". Mais la définition est obsolète: votre ordinateur tout entier sera uniquement dans les firmwares, mais sans logiciel si vous utilisez un disque SSD sur cet ordinateur.

De mon point de vue, il n’existe pas de micrologiciel basé sur le Linux intégré, ou vous devriez appeler tous les logiciels en tant que micrologiciels lorsque vous utilisez SSD.

0
Gaiger Chen