wake-up-neo.net

Was ist der Unterschied zwischen der Firmware und dem Betriebssystem?

Bei eingebetteten Geräten wie Druckern, Switches bin ich verwirrt, was der Unterschied zwischen der Firmware und dem Betriebssystem ist. Sind Betriebssysteme für eingebettete Geräte ähnlich wie PCs (Linux und Windows)?

Ich habe beispielsweise einen Drucker mit einem eingebetteten Webserver, mit dem ich den Drucker remote verwalten kann. Wenn ich die Hersteller-Website öffne, stelle ich fest, dass das Betriebssystem: OS 9.86 ist. Was für ein Betriebssystem ist das? Siehe: Phaser 8560 Support & Treiber

13
user2192774

Firmware bezieht sich auf einen kleinen Code, der sich in einem nichtflüchtigen Speicher befindet. In Hardware-Peripheriegeräten, die heutzutage häufig in Büros zu finden sind (z. B. Drucker, VoIP-Telefone usw.), ist die Firmware in der Regel für das Laden (z. B. Überprüfung der Signatur des Betriebssystems) und das Verwalten des Betriebssystems (z. B. das Flashen des Betriebssystems im Wiederherstellungsmodus) verantwortlich auf der Maschine installiert. Es ist die Aufgabe des Betriebssystems, die eigentliche Aufgabe auszuführen (z. B. Drucken).

Hardwarehersteller verwenden üblicherweise eine Ableitung von Linux (z. B. Cisco IOS) oder ein Echtzeitbetriebssystem (z. B. VxWorks ).

8
JosephH

Wie bereits erwähnt, befindet sich die Firmware in einem Gerät im permanenten Speicher. Es enthält die Anweisungen, die das Gerät beim Start nach dem Ausschalten oder Zurücksetzen ausführt. Dies kann die gesamte Software auf dem Gerät sein oder Anweisungen enthalten, um zu Anweisungen einer anderen Komponente zu springen, beispielsweise wenn das BIOS eines PCs dazu führt, dass der Prozessor den ersten Sektor auf einem Festplattenlaufwerk (oder einer Diskette oder CD) liest -ROM), um herauszufinden, welcher Code als Nächstes ausgeführt werden soll. 

Ein Betriebssystem ist ein Code, der auf einem Gerät ausgeführt wird und Dienste für Anwendungen bereitstellt, um auf die Funktionen des Geräts zuzugreifen. Beispielsweise kann es eine Zeitaufteilung des Prozessors, ein Dateisystem für den Zugriff, Eingabe und Ausgabe usw. bereitstellen.

Ein eingebettetes Gerät muss den Betriebssystemen kein Betriebssystem zur Verfügung stellen. Dies kann jedoch ein geeignetes Modell sein, das der Hersteller beim Schreiben der Software verwenden kann. Es ist denkbar, dass ein Drucker seine gesamte Firmware in einem laufenden Programm mit einigen Interrupt-Handlern enthalten kann, ohne dass der Webserver von einem Betriebssystem getrennt werden muss. Ich weiß nichts über dieses Modell.

Der Punkt ist, dass ein Betriebssystem in der Firmware vorhanden sein kann und Firmware ohne ein Betriebssystem existieren kann. Sie sind unabhängige Konzepte.

8
UncleO

Im einfachsten Sinne:

OS

Enthält den Kernel, eine grafische Benutzeroberfläche (GUI) oder mindestens eine Befehlszeilenschnittstelle (CLI), die zur Dateiverwaltung Hardware verwendet

Kernel

Teil der Betriebssystemsoftware, der Türhalter und Übersetzer zwischen Betriebssystem und Hardware.

Mit anderen Worten (aus Wikipedia) besteht die Hauptfunktion des Kernels darin, den Zugriff auf die Ressourcen des Computers zu vermitteln:

  • -ZENTRALPROZESSOR
  • -RAM
  • -I/O
  • -Systemaufrufe

Firmware

  • Firmware ist definitionsgemäß jede auf dem ROM gespeicherte Anweisung.
  • Firmware ist ein Wortspiel zwischen Software und Hardware, wobei das Spektrum auf "leichte Modifikation" bezogen wird.
  • Die Firmware ist unabhängig vom Betriebssystem eine Ausnahme, die die Zeilen unscharf macht ist, wenn das gesamte Betriebssystem im ROM gespeichert ist, also definitionsgemäß Firmware
  • Die Firmware enthält normalerweise das Bootstrap-Programm, das den OS-Kernel lädt
  • Die Firmware ist die absolute Mindestanweisung, um mehrere Hardwarekomponenten für allgemeine Zwecke zu orchestrieren
  • Firmware ist nicht erforderlich, wenn Sie Ihre Logik/Anweisungen mit VLSI vollständig an Ihre eigene Schaltung anpassen oder drucken (Ich denke, dies ist wichtig, wenn Sie über Firmware sprechen)
  • Firmware ist auf Consumer-Produkten wie ein RC car, OS nicht
  • Firmware ist in allen Teilen der Mehrheit der Elektronik, OS nicht
  • Viren in der Firmware werden möglicherweise niemals entdeckt oder entfernt. Viren auf einem Betriebssystem können mit einer Neuinstallation gelöscht werden

Wenn Sie Ihren Computer einschalten:

Firmware → Kernel → Vollständiges Betriebssystem

Grundsätzlich gilt

Zum Verzahnen, was andere gepostet haben:

Firmware ist mehr als nur der Bootstrap oder das BIOS, obwohl dieser Begriff in den meisten Endgeräten häufig verwendet wird.

In anspruchsvolleren Anwendungen bieten feldprogrammierbare Gate-Arrays (FPGAs), komplexe programmierbare Logikbausteine ​​(CPLDs) und andere ähnliche Technologien einen Mechanismus zum Erstellen von konfigurierbaren Logikschaltkreisen, die weit über den linear ausführbaren Code hinausgehen, der von einem Mikrocontroller oder einem größeren Prozessor ausgeführt wird . Dies ist häufig eine Alternative zu anwendungsspezifischen integrierten Schaltungen (ASICs), die nach dem Festlegen des Chips nicht mehr geändert werden können.

In solchen Anwendungen kann die Firmware viel mehr als nur Code laden, um die ersten Schritte zu starten. Anwendungen können so konzipiert sein, dass sie mehrere parallele Operationen ausführen können, einschließlich Adress-Routing, Signalverarbeitung, mathematische Coprozessierung, Timer, Ein- und Ausschaltsequenzierung, sogar LED- und Relaissteuerungen.

Die Möglichkeiten zur Erstellung von benutzerdefinierten Geräten sind unbegrenzt und können im Fall von FPGA und CPLD neu programmiert werden.

Firmware des oben beschriebenen Typs ist (normalerweise) in VHDL programmiert, die entweder synchrone oder asynchrone parallele Logik beschreibt, um gewünschte Funktionen darzustellen. Die Entwürfe sind typischerweise so ausgelegt, dass sie über entweder einen durch einen Speicher zugeordneten Adressbereich oder über ein anderes Protokoll (z. B. PCI/PCI-X/PCIe) auf Software zugreifen können. Die durch das Firmware-Design erstellten Register repräsentieren eine Reihe von Steuerelementen und Status für die gewünschten Funktionen.

Das Betriebssystem stellt andererseits Software zur Verfügung, deren Schnittstellen innerhalb einer Verarbeitungsumgebung funktionieren (d. H. Kontext und "Regeln" zur Verwendung des Prozessors und jeglicher auf Hardware oder Firmware zugreifbarer Software bereitstellt). Ein Betriebssystem kann entweder als Verarbeitungsregel in der Firmware festgelegt werden oder (häufiger) es ist nur Software, die von einem ROM, Flash oder anderen Medien geladen wird.

Die Schnittstelle zwischen den maschinenunabhängigen Teilen des Betriebssystems und der Hardware gibt es in vielen Ausprägungen: Board Support Package (BSP), Treiber usw. Im BSP werden normalerweise Adressen zu Prozessor- und Board-spezifischen Peripheriegeräten eingerichtet , unter anderem. Viele Echtzeitbetriebssystemanbieter bieten einige grundlegende BSP-Setups und/oder -Tools, um die ersten Schritte zu beginnen.

Einige Entwickler werden das BSP-Design einfach halten, um nur Dinge in Gang zu setzen, und viele der Schnittstellen schreiben, um Hardware oder Firmware unabhängig von den RTOS BSP-Protokollen zu erreichen. Dies ist bei der benutzerdefinierten Firmware häufiger.

Ja, Betriebssysteme für eingebettete Geräte sind den PCs "ähnlich". Die Unterscheidungen betreffen ein Spektrum, aber sie arbeiten grundsätzlich alle gleich und bieten einen Ausführungskontext für die Anwendungen, um mit einer Reihe von Peripheriegeräten zu arbeiten. Welche Art von Betriebssystem befindet sich tatsächlich im Drucker? Es gibt keine Möglichkeit, ohne weitere Informationen wirklich zu wissen (sie veröffentlichen nur, dass die Version 9.86 ist ... könnte benutzerdefiniert sein, könnte eine von mehreren RTOSs oder GPOSes sein); Es ist auch nicht klar, ob sich das mit der Firmware aufgelistete Betriebssystem tatsächlich in diesem Download befindet oder nur eine Kompatibilitätsnotiz.

Ich hoffe das hilft!

1
RocketRedNeck

Firmware:

Damit ein Gerät (Computer, Drucker, Scanner, Digitalkamera usw.) ausgeführt werden kann, sollte es ein Startprogramm haben, das beim Einschalten/Booten ausgeführt werden kann. Dieses erste Programm heißt firmware . Es wird auch als bootstrap program bezeichnet, auch alsBIOS. Es ist inROM(einem nichtflüchtigen Speicher mit dauerhaftem Inhalt) montiert.

Die Firmware ermittelt den Kernel des Betriebssystems (denken Sie daran, der Kernel ist Teil des Betriebssystems) und lädt ihn beim Start in den Hauptspeicher (RAM). Die Firmware wird normalerweise in der Assembler-Sprache oder in einer höheren Programmiersprache wie C/C++ geschrieben.

Betriebssystem:

Ein Betriebssystem ist ein vollständiger Software-Stack, der die Hardware eines Computers verwaltet und eine Umgebung für die Ausführung der Anwendungen einrichtet. Mit anderen Worten: Ein Betriebssystem führt die vorgesehene Aufgabe des Geräts aus. Kernel befindet sich am unteren Rand dieses Software-Stacks und läuft so lange, wie Ihr Gerät läuft. Wenn ich von Betriebssysteme sage, die die Hardware verwalten, handelt es sich eigentlich um den Kernel, der alle Anforderungen an Hardwareressourcen (CPU, Arbeitsspeicher, Eingabe und Ausgabe) verwaltet.

1
Manohar

Firmware ist eine Anwendung, die die gesamten Hardware-Ressourcen belegt. Mit anderen Worten, es gibt kein Betriebssystem, das eine Anwendung dynamisch in das System laden kann. Die Anwendung ist das Betriebssystem selbst. Die Anwendung bearbeitet ALLE Ressourcen der Hardware. Daher ist die Anwendung Extrem in die Hardware integriert und kann fast nicht hardwaremäßig sein. Aus diesem Grund wird die Anwendung Firmware genannt: Eine Software wird mit einer bestimmten Hardware FIRMED. 

Beispielsweise steuert die Firmware Ihrer Klimaanlage einen angegebenen Kompressor und ein angegebenes Bedienfeld. Daher ist die Firmware für die anderen Klimamodelle nicht funktionsfähig. (Die Firmware ist für die anderen Geräte natürlich nicht funktionsfähig.) Die Firmware ist extrem hardwareabhängig.

Ursprünglich wurde Firmware als "Firmware wird in nichtflüchtigen Speichereinheiten wie ROM, EPROM oder Flash-Speicher" definiert. Die Definition ist jedoch veraltet: Ihr gesamter Computer befindet sich nur innerhalb von Firmwares, jedoch ohne Software, wenn Sie auf diesem Computer Solid-State-Disk (SSD) verwenden.

Aus meiner Sicht gibt es keine Firmware, die auf Embedded Linux basiert, oder Sie sollten alle Softwares als Firmwares bezeichnen, während Sie SSD verwenden.

0
Gaiger Chen