Firmware

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Unter Firmware (engl. firm ‚fest‘) versteht man Software, die in elektronische Geräte eingebettet ist. Sie ist zumeist in einem Flash-Speicher, einem EPROM, EEPROM oder ROM gespeichert und durch den Anwender nicht oder nur mit speziellen Mitteln bzw. Funktionen austauschbar. Der Begriff leitet sich davon ab, dass Firmware funktional fest mit der Hardware verbunden ist, was bedeutet, dass das eine ohne das andere nicht nutzbar ist. Sie nimmt eine Zwischenstellung zwischen Hardware (also den physikalischen Anteilen eines Gerätes) und der Anwendungssoftware (den ggf. austauschbaren Programmen eines Gerätes) ein.

Als Firmware bezeichnet man sowohl die Betriebssoftware diverser Geräte oder Komponenten (z. B. Mobiltelefon, Spielkonsole, Fernbedienung, Festplatte, Drucker) als auch die grundlegende Software eines Computers (z. B. das in einem Flash-Speicher verankerte BIOS bei Personalcomputern), die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können.

Inhaltsverzeichnis

Verwendung [Bearbeiten]

Firmware wird beispielsweise verwendet in Festplattenrekordern, DVD-Brennern, DVD-Playern, neueren Fernsehgeräten, Haushaltsgeräten, Digitalkameras und ihren Wechselobjektiven, Empfängern für Digital Radio, Computerteilen (Grafikkarten, Laufwerken, usw.) und vielen anderen elektronischen Geräten. Sie befindet sich auch in eingebetteten Systemen wie ADSL-Modems oder Mobiltelefonen. Im modernen Automobil befinden sich typischerweise 15 bis 50 Steuergeräte (z. B. ABS, ESP, ACC, Airbags, Motorsteuerung, Tacho, Radio, Klimaanlage, Einparkhilfe oder Fensterheber), von denen jedes seine eigene Firmware beinhaltet.

Unscharfe Definition [Bearbeiten]

Es ist grundsätzlich möglich jegliche Funktionalität allein in Hardware abzubilden und diese Hardware würde ohne jegliche Software funktionieren und zu bedienen sein. In der Praxis hat sich jedoch die Software als Abstraktionsschicht zwischen Mensch und Hardware als äußerst nützlich erwiesen. Software, die grundsätzliche Funktionen als Abstraktionsschicht abbildet und damit dem Benutzer zur Verfügung stellt, nennt man im Allgemeinen Betriebssystem. Jedoch auch der Begriff BS ist bereits ungenau, man kann darunter z. B. nur den Kernel verstehen, oder eben auch Kernel mitsamt Softwarepaketen. Der Begriff Firmware bezeichnet grundsätzlich eine Software. Dies kann

  • durchaus ein komplettes Betriebssystem sein, z. B. OpenWrt. Der Grund warum diese Software als Firmware bezeichnet wird und nicht als Betriebssystem ist darin zu finden, dass die Speicherung auf Flash-Speicher erfolgt, und dass die Speicherkapazität des Flashchips gering ist;
  • Software sein, die einen Teil der Hardware abbildet, z. B. die Firmware einer Grafik-, Netz- oder einer WLAN-Karte sein; auch das BIOS wird als Firmware bezeichnet;
  • Software sein, die Einstellungen in Form von verschlüsselten oder nicht verschlüsselten Parametern enthält, z. B. die Firmware einer Codier-Karte.
  • Die komplette Software eines Gerätes ist in der Firmware abgebildet: Drucker, Haushaltsgeräte, Kraftfahrzeuge und andere.
  • Die Firmware erfüllt Aufgaben eines proprietären Betriebssystems, zusätzliche Software kann betrieben werden: Smartphones, Spielkonsolen, Storage Server und andere.
  • Die Firmware stellt in einem Computer hardwarenahe Funktionen zur Verfügung, welche das Laden und Starten eines gesonderten Betriebssystems von einem Datenträger erlauben. Das Betriebssystem kann Firmware-Funktionen nutzen. Bei PCs wird diese Firmware BIOS genannt.

Ursprüngliche Bedeutung: Der Begriff Firmware bezeichnet ein Zwischending zwischen Hardware und Software, wie schon die Namenswahl des Begriffes nahe legt.

  • Es gibt Firmware, die frei von ausführbarem Op-Code ist und zur Konfiguration von spezieller Hardware (CPLDs, Gate-Arrays) benutzt wird. Nachdem die entsprechenden Chips beim OEM anwendungsspezifisch programmiert (früher gebrannt) sind, ist aus der Firmware de facto Hardware geworden. Bei dieser Art von Firmware sind End-Anwender-Updates nicht üblich, da fehlerhafte Konfiguration im schlimmsten Fall (Kurzschluss der Versorgungsspannung) zur sofortigen Zerstörung des Gerätes führen kann.
  • Aus der Sicht eines Hardware-Designers ist ein BIOS ein basales Operating-System und somit eher als Software zu betrachten. Die Firmware in einem Computer konfiguriert die Hardware (Glue-Logic bzw. Chip-Set) so, dass das BIOS von einem Datenträger (ROM) überhaupt erst gelesen werden kann.
  • Ein anschauliches Beispiel: Eine Verpackung enthalte eine Platine mit einem Jumperfeld, einige Jumper, ein Manual und eine CD. Alle diese Dinge sind physisch und somit zunächst einmal Hardware. Die Treiber auf der CD sind Software. Die Firmware besteht in diesem einfachen Fall aus dem Jumper-Plan im Manual (Informatik/Software) und den gesteckten Jumpern (Physik/Hardware).

Aktualisierung von Firmware [Bearbeiten]

Traditionell ist Firmware in einem Festwertspeicher (ROM) oder einmal (im Werk) programmierbaren Speicher gespeichert, was zur Aktualisierung den Austausch von Bauteilen nötig macht.

Bei aktuellen Geräten ist es aber immer häufiger möglich, die Firmware zu aktualisieren. Flash-Speicher oder EEPROMs können über spezielle Verfahren gelöscht und neu beschrieben werden. Diesen Vorgang nennt man umgangssprachlich Flashen. Die Neuprogrammierung eines Flash-Speichers ermöglicht die Fehlerbehebung sowie die Nachrüstung neuer Funktionen. Schlägt die Firmware-Aktualisierung zum Beispiel durch eine Unterbrechung der Stromzufuhr während des Schreibens fehl, so ist es möglich, dass das Gerät dabei unbrauchbar wird: Wenn die elementaren Funktionen zur Aktualisierung der Firmware selbst gelöscht und nicht erfolgreich erneuert werden, kann eine funktionsfähige Firmware möglicherweise nur noch mit speziellen Hilfsmitteln durch den Hersteller wieder hergestellt werden.

In seltenen Fällen ist die Firmware von Computer-Zubehörteilen nicht im Gerät selbst dauerhaft gespeichert, sondern wird während des Bootvorganges oder beim Einstecken des Gerätes in einen RAM-Baustein, der sich im Gerät befindet, geschrieben. Eine Aktualisierung ist hierbei meist extrem einfach, da die Firmware einfach als Datei im lokalen Dateisystem des Rechners abgelegt ist und durch Überschreiben der Datei aktualisiert werden kann. Diese Variante ist insbesondere bei WLAN-Karten (PCI oder PCMCIA), sowie WLAN-Adaptern (USB) häufig anzutreffen. Auch der Linux-Kernel nutzt diese Methode, u.a. auch bei Grafikkarten, um freie oder angepasste Firmware in Geräte laden zu können. Bei vielen Linux-Distributionen kann man Firmwares für Geräte (z.B. WLAN-Chips, Grafikkarten) über das Paketmanagementsystem installieren.

Ursprung des Wortes [Bearbeiten]

Der Begriff „Firmware“ wurde von Ascher Opler 1967 in einem Artikel in der Zeitschrift Datamation geprägt.[1] Ursprünglich wurde damit der Microcode im beschreibbaren Mikroprogrammspeicher eines Mikroprozessors in einem Computer bezeichnet, wo der Befehlssatz des Hauptprozessors (der CPU) abgelegt wird. Die Firmware konnte neu geladen werden, um den Befehlssatz zu ändern. Firmware war deshalb nicht im Maschinencode der CPU geschrieben, sondern in Mikrocode. Im ursprünglichen Sinn wurde Firmware klar von Hardware (der CPU selbst) und Software (die Programme, die auf dem Prozessor laufen) abgegrenzt.

Später wurde die Bezeichnung für Mikrocode benutzt, gleichgültig, ob er im RAM oder ROM lag.

Danach wurde der Begriff nochmals weiter gefasst, für alles, was im ROM gespeichert ist, wie Prozessormaschinenbefehle für das BIOS, Boot-Loader oder andere spezialisierte Programme.

Quellen [Bearbeiten]

  1. Opler, Ascher: Fourth-Generation Software. In: Datamation. 13, Nr. 1, Januar 1967, S. 22-24.