Unterschied und Beziehung zwischen Firmware und Gerätetreiber

27
  1. Wie unterscheiden sich Firmware und Gerätetreiber und wie hängen sie zusammen? Ich denke beide Steuergeräte?
  2. Ist die Firmware immer selbststartend, während der Treiber vom Betriebssystem ausgeführt / gebootet werden muss?
Tim
quelle

Antworten:

24
  1. Firmware ist die Software, die auf dem Gerät ausgeführt wird. Ein Treiber ist die Software, die Ihrem Betriebssystem die Kommunikation mit dem Gerät mitteilt. Nicht alle Geräte verfügen über Firmware - nur Geräte mit einem gewissen Grad an Intelligenz.

  2. Ich bin mir nicht ganz sicher, was du meinst ... im Allgemeinen hat Firmware nichts mit "Booten" zu tun ... Ich denke, Sie fragen sich vielleicht, ob Geräte mit Firmware immer die Firmware auf dem Gerät installiert haben. oder wird es nach dem Booten geladen. Wenn Sie danach fragen, lautet die Antwort nein ...

In den meisten Fällen ist auf Geräten mit Firmware die Firmware in das Gerät programmiert (entweder mit einem ROM-Chip oder einem programmierbaren ROM-Chip). Bei einigen Geräten wird die Firmware jedoch zum Zeitpunkt der Initialisierung in das Gerät geladen. Ich kann mir einige Netzwerkkarten und Webcams vorstellen, die so funktionieren, aber ich bin mir sicher, dass es auch andere gibt.

Fadenscheinig
quelle
Vielen Dank! in 2, durch Selbststart, meine ich, dass, wenn die Firmware von selbst nicht von anderen ausgeführt wird, während der Treiber von OS nicht von selbst ausgeführt wird? Ich habe in en.wikipedia.org/wiki/Operating_system
Tim
1
Firmware wird vom Hardware-Gerät selbst ausgeführt ... Ich denke, das beantwortet die Frage? Bedenken Sie Folgendes: Viele Nicht-Computer-Geräte verfügen über "Firmware" - wie Digitalkameras, DVD-Player, Mobiltelefone usw. In diesen Fällen ist die Firmware natürlich vollständig im Gerät selbst enthalten. Nur wenn Sie eines dieser Geräte an Ihren Computer anschließen, benötigen Sie einen Treiber .
Flimzy
1
Vielen Dank! Aus en.wikipedia.org/wiki/Computer_software : "Firmware ist eine Low-Level-Software, die häufig auf elektrisch programmierbaren Speichergeräten gespeichert wird. Firmware erhält ihren Namen, weil sie wie Hardware behandelt und von anderen Softwareprogrammen ausgeführt wird." Wird die Firmware von anderen Softwareprogrammen oder von der Hardware selbst ausgeführt?
Tim
-1 Warum sagst du only devices with some level of intelligence have firmware? Ich würde sagen, es ist umgekehrt, einfache (elektronische) Geräte haben möglicherweise keine Betriebssysteme, aber Firmware.
Celeritas
@Celeritas: Weil nur Geräte mit einer gewissen Intelligenzstufe Firmware haben, im Gegensatz zu solchen (wie einem RS-232-Port), die dies nicht tun. Wenn Sie Geräte mit einem vollständigen Betriebssystem (Mobiltelefon, iPod, programmierbares GPS usw.) vergleichen, sprechen Sie von einer völlig anderen Abstraktionsebene, die im herkömmlichen Sinne wirklich nichts mit "Gerätetreibern" zu tun hat. Diese Klasse von Zugriffssoftware wird häufig als "Gerätetreiber" bezeichnet, in Wirklichkeit handelt es sich jedoch um ein Netzwerkanwendungsprotokoll, das auf einem Gerätetreiber implementiert ist (z. B. das, das mit einem USB-Anschluss oder Bluetooth kommuniziert).
Flimzy
5

Die Firmware implementiert Details auf niedriger Ebene, die für den Betrieb der Hardware erforderlich sind, und stellt eine API / ABI auf einer höheren Ebene bereit. Ein Gerätetreiber stellt einen Adapter zwischen dem Betriebssystem und der von der Firmware bereitgestellten API / ABI bereit.

Ignacio Vazquez-Abrams
quelle
1
Vielen Dank! Ist der Gerätetreiber Teil des Betriebssystems und wird er vom Betriebssystemkern ausgeführt? Ist die Firmware Teil des Geräts und wird sie von welchem ​​Betriebssystemkern oder der Firmware selbst ausgeführt?
Tim
1
Der Gerätetreiber wird als Teil des Betriebssystems betrachtet und läuft normalerweise auf der Host-CPU. Firmware wird normalerweise vom Gerät ausgeführt. Es kann jedoch vom Betriebssystem auf das Gerät hochgeladen werden.
Ignacio Vazquez-Abrams
Dies sollte die akzeptierte Antwort sein.
Eric Wang
4

Die moderne Definition oder allgemeine Verwendung von Firmware hat nichts mit einer bestimmten Softwarefunktionalität zu tun. Firmware ist einfach Software, die in nichtflüchtigen Halbleiterspeichern (z. B. PROM, EEPROM oder Flash) und nicht in einem Massenspeicher wie einer Festplatte gespeichert ist. Die gespeicherte Software kann eine monolithisch verknüpfte Binärdatei sein oder aus Lade-, Kernel- und Anwendungsmodulen bestehen. (OTOH Ich habe einige TV-Tunerkarten für PCs gesehen, für die der Linux-Kernel "Firmware" laden muss, um die Initialisierung abzuschließen.)

Der Ursprung des Begriffs hat mit prozessorgesteuerter Logik im Vergleich zu festverdrahteter Logik zu tun. Software, die auf Festplatten gespeichert ist, kann leicht geändert und aktualisiert werden. Überarbeitungen und Aktualisierungen der festverdrahteten Logik erforderten die Neugestaltung und den Austausch der Karte oder des Moduls. Der Mittelweg war ein Prozessor, der Software zur Steuerung der Hardware ausführte. Die Software wurde genannt Firma ware den Mittelweg zwischen reflektieren weicher Ware im Vergleich zu hart verdrahteter Logik. Ursprünglich wurde die Firmware in ROM-, PROM- oder EPROM-Chips gespeichert, um die Modularität der Platine aufrechtzuerhalten. Die Weiterentwicklung von EEPROM und Flash-Chips ermöglichte interne und integrierte Updates der Firmware.

Da Prozessoren (und Peripheriegeräte) immer kleiner und billiger wurden und weniger Strom verbrauchten, erweiterten sich die Möglichkeiten, sie in alle Arten von Geräten / Appliances einzubetten. Damit die Software für den Betrieb dieser Geräte robust und sicher ist, wird die Software nicht auf einer Festplatte, sondern in Flash-Speicherchips gespeichert. es macht das Gerät auch kleiner und viel billiger. Der Begriff Firmware wurde erweitert und umfasst nun alle Softwareprodukte in Geräten / Appliances mit eingebetteten Prozessoren, auch wenn einige Teile des gespeicherten Codes keine Beziehung zum Ersetzen der festverdrahteten Logik haben könnten.

Sägespäne
quelle
Was bedeutet es dann, Firmware auf einem Massenspeicher zu installieren? Wie dieses Debian-Paket ?
Xuhdev
1
@xuhdev - Dieses Debian-Paket besteht aus Dateien, die von verschiedenen Linux-Gerätetreibern verwendet werden können. Die Dateien werden als "Firmware" bezeichnet, da sie vom Linux-Treiber auf das angeschlossene Gerät geschrieben werden. Die Dateien können Betriebsdaten oder Code für das eingebettete uC / uP des Geräts enthalten. Beachten Sie, dass diese auf das Gerät übertragene Datei in den flüchtigen Speicher des Geräts geladen wird und nach jedem Zurücksetzen des Geräts oder Systems geladen werden muss. Die "Installation" dieser "Firmware" auf dem Massenspeicher des Hosts ist lediglich ein Verfahrensmechanismus (dh Paketverarbeitung).
Sägemehl
3

Jemand hat diese Frage kürzlich gestellt und gesagt:

Firmware ist eine Kombination aus persistentem Speicher, Programmcode und den darin gespeicherten Daten. Typische Beispiele für Geräte, die Firmware enthalten, sind eingebettete Systeme wie Ampeln, Verbrauchergeräte, Digitaluhren, Computer, Computerperipheriegeräte, Mobiltelefone und Digitalkameras. Die in diesen Geräten enthaltene Firmware liefert das Steuerprogramm für das Gerät.

Tatsächlich ist das SuperUser- driversTag wie folgt definiert:

Ein Treiber, auch Gerätetreiber oder Softwaretreiber genannt, ist eine Software, mit der übergeordnete Computerprogramme mit einem Hardwaregerät interagieren können. Wenn ein Computerprogramm eine Interaktion mit einem bestimmten Hardwaregerät anfordert, verarbeitet der Treiber Anweisungen und gibt die Übersetzung zwischen dem Gerät und dem den Treiber aufrufenden Computerprogramm aus.

und das firmwareTag ist definiert:

Im Allgemeinen ist der Unterschied zwischen Software und Firmware die Ebene, auf der sie mit der Hardware interagiert. Firmware interagiert auf sehr niedriger Ebene der Hardware, während Software auf hoher Ebene interagiert. Die Firmware steuert im Allgemeinen das grundlegende Timing, die Steuerung und die Funktionalität der Hardware.

Ursprünglich dachte ich, dass firmwaredas direkt auf dem Chip oder Board installiert wurde und dort lebte, weshalb es "geflasht" werden muss, während man ein driverauf einem Betriebssystem installiertes installiert .

Fazit:

FirmwareErmöglicht der Hardware, Aufgaben zu erledigen, und driversermöglicht der Software, mit der Hardware zu interagieren.

bgmCoder
quelle