Firmware
Firmware ist ein Programm, das in den nichtflüchtigen Speicher eines Hardwaregeräts geschrieben ist. Der nichtflüchtige Speicher ist eine Form des statischen Direktzugriffsspeichers, der den Inhalt speichert, wenn ein Hardware-Gerät ausgeschaltet wird oder seine Stromversorgung unterbrochen wird.
Der Hersteller installiert die Firmware direkt bei der Produktion auf der Hardware. Sie dient dazu, Benutzerprogramme auf dem Gerät auszuführen und verwaltet die Hardware.
Eingebettete Firmware steuert die Funktionen der Hardwaregeräte und -systeme, ähnlich wie das Betriebssystem (OS) eines Computers die Funktion von Softwareanwendungen steuert. Firmware kann auf ROM (Read-Only Memory), löschbaren programmierbaren Festwertspeicher (EPROM) oder Flash-Speicher installiert sein.
Der amerikanische Computerwissenschaftler Ascher Opler soll den Begriff Firmware 1967 in einer Ausgabe der Zeitschrift Datamation geprägt haben. Er benutzte den Begriff, um eine Art Mikroprogramm zu beschreiben, das zwischen Hardware und Software liegt.
Heute gibt es eingebettete Firmware in allen Geräten, von Smartphones bis hin zum Internet der Dinge (Internet of Things, IoT). Sie ist oft in Geräten enthalten, die traditionell nicht als computergesteuert angesehen werden.
Warum sind Firmware-Updates wichtig und wie funktionieren sie?
Firmware-Updates werden häufig herausgegeben, um Fehler zu beheben, Firmware-Hacks zu verhindern, neue Funktionen einzuführen, die Sicherheit zu verbessern oder mit neuen Medien zu interagieren. Firmware-Updates bestehen aus Code, der der Hardware mitteilt, wie sie sich ab jetzt verhalten soll.
Einige Beispiele für Firmware-Updates sind die folgenden:
- Ein CD-Brenner erhält die Fähigkeit, einen neuen Datenträgertyp zu brennen.
- Ein Router erhält eine Aktualisierung, die seine Leistung und Stabilität verbessert.
- Ein Motherboard-Hersteller gibt ein BIOS-Update heraus, welches das Motherboard in die Lage versetzt, neue Prozessoren zu unterstützen. Das BIOS oder UEFI sind die Firmware der Hauptplatine.
Einige mit dem Internet verbundene Geräte suchen regelmäßig selbstständig nach neuer Firmware und laden diese automatisch herunter, um sie zu installieren. Andere Gerätehersteller verlangen, dass der Benutzer die Website des Herstellers besucht, um Firmware-Updates manuell herunterzuladen und zu installieren.
Die Häufigkeit der Firmware-Updates hängt vom jeweiligen Gerät ab. Die Firmware einer intelligenten Glühbirne muss möglicherweise nicht so oft aktualisiert werden. Ein intelligentes Thermostat hingegen verbindet sich viel häufiger mit dem Smartphone des Anwenders und braucht daher Updates, um mit diesem kompatibel zu bleiben. Bei Smartphones werden Firmware-Upgrades in der Regel zusammen mit Software-Updates automatisiert, so dass das Telefon funktionsfähig bleibt. Der Prozess der Fernaktualisierung von Firmware durch das Herunterladen von Upgrades vom Dienstanbieter wird manchmal als Firmware over the Air bezeichnet.
Bei vielen elektronischen Geräten ist es außerdem erforderlich, dass das Gerät während der Aktualisierung der Firmware eingeschaltet bleibt, damit die Installation nicht beschädigt wird. Das könnte nämlich zu Schäden oder Fehlfunktionen führen.
Arten von Firmware
Es gibt viele Arten von technologie-spezifischer Firmware, aber im Allgemeinen kann jede Firmware in drei Kategorien eingeteilt werden, basierend auf dem Grad der Hardware-Integration.
- Low-Level-Firmware. Low-Level-Firmware wird als fester Bestandteil der Hardware eines Geräts betrachtet. Sie ist oft auf nichtflüchtigen, schreibgeschützten Chips wie ROM gespeichert und kann daher nicht überschrieben oder aktualisiert werden. Geräte mit Low-Level-Firmware haben einen einmalig programmierbaren Speicher.
- High-Level-Firmware. High-Level-Firmware lässt Aktualisierungen zu und ist im Allgemeinen komplexer als Low-Level-Firmware. In einem Computer befindet sich High-Level-Firmware auf Flash-Speicherchips.
- Subsystem-Firmware. Subsystem-Firmware ist oft Teil eines eingebetteten Systems. Sie ist mit High-Level-Firmware vergleichbar, da sie aktualisiert werden kann und komplexer als Low-Level-Firmware ist. Ein Beispiel ist das Stromversorgungs-Subsystem eines Servers, ein Teil der Server-Hardware, der halb unabhängig vom Server funktioniert.
Anwendungen von Firmware
Firmware findet sich in einer Reihe von Computergeräten, einschließlich komplexer Geräte und solcher, die normalerweise nicht als Computergeräte gelten. Einige reale Anwendungen von Firmware sind die folgenden:
- Personal Computer. Die Firmware eines Personalcomputers –BIOS oder UEFI – ist auf einem kleinen Speicherchip auf der Hauptplatine des Computers eingebettet. Die Peripheriegeräte eines Computers, wie zum Beispiel Grafik- und Videokarten, enthalten ebenfalls Firmware.
- Speichergeräte. USB-Laufwerke, Festplatten und andere tragbare Speichermedien enthalten grundlegende Firmware, damit sie mit einem Computer zusammenarbeiten können.
- Mobile Geräte. Mobiltelefone, Tablets, Laptops und andere mobile Geräte enthalten alle Firmware, die die Hardware mit verschiedener Software zusammenarbeiten lässt.
- Kraftfahrzeuge enthalten viele eingebettete Systeme, Sensoren und kleine Computer mit Firmware, die verschiedene Funktionen des Autos unterstützen und optimieren.
- Haushaltsgeräte. Geschirrspüler und Waschmaschinen gehören zu den Geräten, die Firmware enthalten. Die Firmware hilft der Maschine, mit dem Computer zu kommunizieren, der die Einstellungen der Maschine vorgibt und ihren Betrieb steuert.
- Bei Chipkarten sind die Anweisungen in einen Chip eingebettet, der die Grundfunktionen der Karte sowie die Authentifizierung und Verschlüsselung ermöglicht.
- Der Unterschied zwischen Firmware und Software
Firmware funktioniert nicht auf dieselbe Weise wie eine andere Software, sondern es gibt einige Unterschiede.
Firmware
Firmware stellt grundlegende Maschinenbefehle bereit, welche die Funktion der Hardware und die Kommunikation mit anderer Software auf einem Gerät ermöglichen. Firmware ermöglicht das Steuern der Hardware eines Geräts auf niedriger Ebene. Aus diesem Grund wird sie manchmal auch als Software für Hardware bezeichnet. Ein weiteres Unterscheidungsmerkmal ist, dass Firmware im Allgemeinen nicht benutzerfreundlich gestaltet ist.
Software
Software ist so konzipiert, dass der Benutzer mit ihr interagieren kann, um bestimmte Aufgaben zu erfüllen. Sie befindet sich oberhalb der Firmware, ist von der Hardware abstrahiert und nutzt die Firmware zur Kommunikation mit der darunter liegenden Hardware. Software ist komplexer und nicht so stark an die zugrunde liegende Hardware gebunden.
Beispiele für Software sind Computerprogramme wie Betriebssysteme. Anwendungen für Textverarbeitung, Videokonferenzen und Medienspieler sind ebenfalls Beispiele für Software. Ein Softwareprogramm kann man einfach austauschen, ohne dass eine Hardwarekomponente ersetzt werden muss, während dies bei Firmware oft nicht möglich ist.
Firmware, die in Flash-Speicherchips eingebettet ist, kann leichter aktualisiert werden als Firmware, die in ROM oder EPROM geschrieben ist. Da Flash-Speicher eine immer größere Rolle spielt, müssen Administratoren die verschiedenen Flash-Typen und ihre Einsatzmöglichkeiten kennen.