Firmware: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
''' | '''Firmware''' - Kurzbeschreibung | ||
== Beschreibung == | == Beschreibung == | ||
Unter '''Firmware''' ([[Englische Sprache|englisch]] ''{{lang|en|firm}}'' ‚fest‘) versteht man [[Software]], die in elektronischen Geräten [[Embedded Software Engineering|eingebettet]] ist und dort grundlegende Funktionen leistet. Sie nimmt eine Zwischenstellung zwischen [[Hardware]] (also den physischen Anteilen eines Gerätes) und der Anwendungssoftware (den ggf. austauschbaren Programmen eines Gerätes) ein. Sie ist zumeist in einem [[Flash-Speicher]], einem [[EPROM]], [[EEPROM]] oder [[Festwertspeicher|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. | Unter '''Firmware''' ([[Englische Sprache|englisch]] ''{{lang|en|firm}}'' ‚fest‘) versteht man [[Software]], die in elektronischen Geräten [[Embedded Software Engineering|eingebettet]] ist und dort grundlegende Funktionen leistet. | ||
* Sie nimmt eine Zwischenstellung zwischen [[Hardware]] (also den physischen Anteilen eines Gerätes) und der Anwendungssoftware (den ggf. austauschbaren Programmen eines Gerätes) ein. | |||
* Sie ist zumeist in einem [[Flash-Speicher]], einem [[EPROM]], [[EEPROM]] oder [[Festwertspeicher|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. | |||
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, die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können. Bei letzterer, der Firmware eines Computersystems, hat sich der Begriff [[BIOS (IBM PC)|BIOS]] etabliert, die Bezeichnung der [[Systemfirmware]] des [[IBM Personal Computer]]s von 1981. Aufgrund des großen Erfolgs dieser [[Plattform (Computer)|Plattform]], die in den 1980er bis 2000er Jahren als [[IBM-PC-kompatibler Computer|IBM-PC-kompatible Computer]] bekannt wurde, findet sich auch bei Systemfirmwares anderer Plattformen manchmal die Bezeichnung „BIOS“ (z. B. [[AlphaBIOS]], [[OpenBIOS]]). Bei der modernen, aus den IBM-PC-Kompatiblen entstandenen Plattform „[[IBM-PC-kompatibler Computer#Plattform|PC]]“ wird die Systemfirmware [[Unified Extensible Firmware Interface|UEFI]] oft noch als UEFI-BIOS bezeichnet. | 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, die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können. | ||
* Bei letzterer, der Firmware eines Computersystems, hat sich der Begriff [[BIOS (IBM PC)|BIOS]] etabliert, die Bezeichnung der [[Systemfirmware]] des [[IBM Personal Computer]]s von 1981. | |||
* Aufgrund des großen Erfolgs dieser [[Plattform (Computer)|Plattform]], die in den 1980er bis 2000er Jahren als [[IBM-PC-kompatibler Computer|IBM-PC-kompatible Computer]] bekannt wurde, findet sich auch bei Systemfirmwares anderer Plattformen manchmal die Bezeichnung „BIOS“ (z. B. [[AlphaBIOS]], [[OpenBIOS]]). | |||
* Bei der modernen, aus den IBM-PC-Kompatiblen entstandenen Plattform „[[IBM-PC-kompatibler Computer#Plattform|PC]]“ wird die Systemfirmware [[Unified Extensible Firmware Interface|UEFI]] oft noch als UEFI-BIOS bezeichnet. | |||
== Verwendung == | == Verwendung == | ||
Firmware wird beispielsweise verwendet in [[Festplattenrekorder]]n, [[Brenner (Hardware)|DVD-Brennern]], [[DVD-Player]]n, neueren [[Fernsehgerät]]en, [[Haushaltsgerät]]en, [[Digitalkamera]]s und ihren [[Wechselobjektiv]]en, Empfängern für [[Digital Audio Broadcasting|Digital Radio]], Computerteilen (Grafikkarten, Laufwerken usw.) und vielen anderen elektronischen Geräten. Sie befindet sich auch in [[Eingebettetes System|eingebetteten Systemen]] wie [[Asymmetric Digital Subscriber Line|ADSL]]-[[Modem]]s, [[Bordcomputer]]n oder [[Mobilfunk|Mobiltelefonen]]. Im modernen [[Automobil]] befinden sich typischerweise 15 bis 90 [[Steuergerät]]e (z. B. [[Antiblockiersystem|ABS]], [[Electronic Stability Control|ESP]], [[Abstandsregeltempomat|ACC]], [[Airbag]]s, [[Motorsteuerung]], Tacho, Radio, Klimaanlage, [[Einparkhilfe]] oder Fensterheber), von denen jedes eine eigene Firmware haben kann. | Firmware wird beispielsweise verwendet in [[Festplattenrekorder]]n, [[Brenner (Hardware)|DVD-Brennern]], [[DVD-Player]]n, neueren [[Fernsehgerät]]en, [[Haushaltsgerät]]en, [[Digitalkamera]]s und ihren [[Wechselobjektiv]]en, Empfängern für [[Digital Audio Broadcasting|Digital Radio]], Computerteilen (Grafikkarten, Laufwerken usw.) und vielen anderen elektronischen Geräten. | ||
* Sie befindet sich auch in [[Eingebettetes System|eingebetteten Systemen]] wie [[Asymmetric Digital Subscriber Line|ADSL]]-[[Modem]]s, [[Bordcomputer]]n oder [[Mobilfunk|Mobiltelefonen]]. | |||
* Im modernen [[Automobil]] befinden sich typischerweise 15 bis 90 [[Steuergerät]]e (z. B. [[Antiblockiersystem|ABS]], [[Electronic Stability Control|ESP]], [[Abstandsregeltempomat|ACC]], [[Airbag]]s, [[Motorsteuerung]], Tacho, Radio, Klimaanlage, [[Einparkhilfe]] oder Fensterheber), von denen jedes eine eigene Firmware haben kann. | |||
In der Regel wird der programmierbare Inhalt von [[Mikrocontroller]]n als Firmware bezeichnet. | In der Regel wird der programmierbare Inhalt von [[Mikrocontroller]]n als Firmware bezeichnet. | ||
== Unscharfe Definition == | == Unscharfe Definition == | ||
Es ist grundsätzlich möglich, jegliche Funktionalität allein in Hardware abzubilden, und diese Hardware wäre ohne jegliche Software funktionstüchtig und bedienbar. Frühe [[Videospiel]]e wie [[Pong]] bestanden beispielsweise aus Schaltkreisen, die das jeweilige Spielprinzip direkt umsetzten, ohne dass Software im Spiel war. In der Praxis hat sich jedoch ab einer gewissen Komplexität die Software als Abstraktionsschicht zwischen Mensch und Hardware als äußerst nützlich erwiesen. Software, die grundsätzliche Funktionen als Abstraktionsschicht abbildet und diese damit dem Benutzer zur Verfügung stellt, nennt man im Allgemeinen [[Betriebssystem]]. Jedoch ist auch der Begriff Betriebssystem bereits ungenau; man kann darunter z. B. nur den [[Kernel (Betriebssystem)|Kernel]] eines Betriebssystems verstehen, oder auch den Kernel mitsamt Softwarepaketen. Der Begriff ''Firmware'' bezeichnet grundsätzlich eine Software. Dies kann sein: | Es ist grundsätzlich möglich, jegliche Funktionalität allein in Hardware abzubilden, und diese Hardware wäre ohne jegliche Software funktionstüchtig und bedienbar. | ||
* ein komplettes Betriebssystem, z. B. [[OpenWrt]]. Der Grund für die Bezeichnung dieser Software als Firmware und nicht als Betriebssystem ist, dass die Speicherung auf Flash-Speichern erfolgt, deren Speicherkapazität verhältnismäßig gering ist; | * Frühe [[Videospiel]]e wie [[Pong]] bestanden beispielsweise aus Schaltkreisen, die das jeweilige Spielprinzip direkt umsetzten, ohne dass Software im Spiel war. | ||
* Software, die einen Teil der Hardware abbildet, z. B. die Firmware einer Grafik-, Netz- oder einer WLAN-Karte | * In der Praxis hat sich jedoch ab einer gewissen Komplexität die Software als Abstraktionsschicht zwischen Mensch und Hardware als äußerst nützlich erwiesen. | ||
* Software, die Einstellungen in Form von (verschlüsselten oder nicht verschlüsselten) Parametern enthält, z. B. die Firmware einer Codier-Karte | * Software, die grundsätzliche Funktionen als Abstraktionsschicht abbildet und diese damit dem Benutzer zur Verfügung stellt, nennt man im Allgemeinen [[Betriebssystem]]. | ||
* Jedoch ist auch der Begriff Betriebssystem bereits ungenau; man kann darunter z. B. nur den [[Kernel (Betriebssystem)|Kernel]] eines Betriebssystems verstehen, oder auch den Kernel mitsamt Softwarepaketen. | |||
* Der Begriff ''Firmware'' bezeichnet grundsätzlich eine Software. | |||
* Dies kann sein: | |||
* ein komplettes Betriebssystem, z. B. [[OpenWrt]]. | |||
* Der Grund für die Bezeichnung dieser Software als Firmware und nicht als Betriebssystem ist, dass die Speicherung auf Flash-Speichern erfolgt, deren Speicherkapazität verhältnismäßig gering ist; | |||
* Software, die einen Teil der Hardware abbildet, z. B. die Firmware einer Grafik-, Netz- oder einer WLAN-Karte | |||
* Software, 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 (die in der Firmware abgebildet ist): [[Drucker (Gerät)|Drucker]], Haushaltsgeräte, Kraftfahrzeuge und andere | * die komplette Software eines Gerätes (die in der Firmware abgebildet ist): [[Drucker (Gerät)|Drucker]], Haushaltsgeräte, Kraftfahrzeuge und andere | ||
* die Erfüllung aller Aufgaben eines proprietären Betriebssystems; zusätzliche Software kann betrieben werden, z. B. [[Smartphone]]s, [[Spielkonsole]]n, [[Disk-Array|Storage Server]] und andere | * die Erfüllung aller Aufgaben eines proprietären Betriebssystems; zusätzliche Software kann betrieben werden, z. B. [[Smartphone]]s, [[Spielkonsole]]n, [[Disk-Array|Storage Server]] und andere | ||
* die Zurverfügungstellung hardwarenaher Funktionen in einem Gerät, die das Laden und Starten eines gesonderten [[Betriebssystem]]s von einem Datenträger erlauben. Beim [[Personal Computer|PC]] wird diese Firmware BIOS genannt. Das Betriebssystem kann Firmware-Funktionen auch direkt nutzen. | * die Zurverfügungstellung hardwarenaher Funktionen in einem Gerät, die das Laden und Starten eines gesonderten [[Betriebssystem]]s von einem Datenträger erlauben. | ||
* Beim [[Personal Computer|PC]] wird diese Firmware BIOS genannt. | |||
* Das Betriebssystem kann Firmware-Funktionen auch direkt nutzen. | |||
Ursprüngliche Bedeutung: Der Begriff ''Firmware'' bezeichnet ein festes Bindeglied zwischen Hardware und Software, wie die Namenswahl des Begriffes (firm = fest) nahelegt. | Ursprüngliche Bedeutung: Der Begriff ''Firmware'' bezeichnet ein festes Bindeglied zwischen Hardware und Software, wie die Namenswahl des Begriffes (firm = fest) nahelegt. | ||
* Es gibt Firmware, die frei von [[Maschinensprachemonitor|ausführbarem 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 eine fehlerhafte Konfiguration im schlimmsten Fall (Kurzschluss der Versorgungsspannung) zur sofortigen Zerstörung des Gerätes führen kann. Sie wird in Abgrenzung zu Maschinensprache auch [[Configware]] genannt. | * Es gibt Firmware, die frei von [[Maschinensprachemonitor|ausführbarem Code]] ist und zur Konfiguration von spezieller Hardware (CPLDs, Gate-Arrays) benutzt wird. | ||
* Aus der Sicht eines Hardware-Designers ist ein [[BIOS]] ein [[basales Betriebssystem]] 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 Datenspeicher (ROM) überhaupt erst gelesen werden kann. | * 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 eine fehlerhafte Konfiguration im schlimmsten Fall (Kurzschluss der Versorgungsspannung) zur sofortigen Zerstörung des Gerätes führen kann. | |||
* Sie wird in Abgrenzung zu Maschinensprache auch [[Configware]] genannt. | |||
* Aus der Sicht eines Hardware-Designers ist ein [[BIOS]] ein [[basales Betriebssystem]] 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 Datenspeicher (ROM) überhaupt erst gelesen werden kann. | |||
== Aktualisierung von Firmware == | == Aktualisierung von Firmware == | ||
Meist ist Firmware auf einen [[Festwertspeicher]] geschrieben und kann folglich nur durch den Austausch entsprechender Bauteile aktualisiert werden. Bei aktuellen Geräten ist es aber immer häufiger möglich, die Firmware auf Softwareebene auszutauschen. Flash-Speicher beziehungsweise EEPROMs können über spezielle Verfahren gelöscht und neu beschrieben werden. Dieser Vorgang wird umgangssprachlich „Flashen“ oder „PDRen“ genannt. | Meist ist Firmware auf einen [[Festwertspeicher]] geschrieben und kann folglich nur durch den Austausch entsprechender Bauteile aktualisiert werden. | ||
* Bei aktuellen Geräten ist es aber immer häufiger möglich, die Firmware auf Softwareebene auszutauschen. | |||
* Flash-Speicher beziehungsweise EEPROMs können über spezielle Verfahren gelöscht und neu beschrieben werden. | |||
* Dieser Vorgang wird umgangssprachlich „Flashen“ oder „PDRen“ genannt. | |||
Die Aktualisierung kann der Fehlerbehebung sowie der Änderung von Funktionen dienen. Schlägt die Aktualisierung – zum Beispiel durch eine Unterbrechung der Stromzufuhr während des Schreibens – fehl, kann das Gerät unbrauchbar werden: Wenn die elementaren Funktionen zur Aktualisierung der Firmware selbst gelöscht und nicht vollständig erneuert werden, kann eine funktionsfähige Firmware möglicherweise nur noch mit speziellen Hilfsmitteln durch den Hersteller installiert werden. | Die Aktualisierung kann der Fehlerbehebung sowie der Änderung von Funktionen dienen. | ||
* Schlägt die Aktualisierung – zum Beispiel durch eine Unterbrechung der Stromzufuhr während des Schreibens – fehl, kann das Gerät unbrauchbar werden: Wenn die elementaren Funktionen zur Aktualisierung der Firmware selbst gelöscht und nicht vollständig erneuert werden, kann eine funktionsfähige Firmware möglicherweise nur noch mit speziellen Hilfsmitteln durch den Hersteller installiert 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 [[Random-Access Memory|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 [[Wireless Local Area Network|WLAN]]-Karten ([[Peripheral Component Interconnect|PCI]] oder [[Personal Computer Memory Card International Association|PCMCIA]]), WLAN-Adaptern ([[Personal Computer Memory Card International Association|USB]]) sowie dem [[Microcode]] in modernen [[Mikroprozessor]]en häufig anzutreffen. Der [[Linux (Kernel)|Linux-Kernel]] nutzt diese Methode, unter anderem bei Grafikkarten, um freie oder angepasste Firmware in Geräte laden zu können. Bei vielen [[Linux-Distribution]]en kann man Firmware für Geräte (zum Beispiel WLAN-Chips, Grafikkarten) über das [[Paketverwaltung|Paketmanagementsystem]] installieren. | 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 [[Random-Access Memory|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 [[Wireless Local Area Network|WLAN]]-Karten ([[Peripheral Component Interconnect|PCI]] oder [[Personal Computer Memory Card International Association|PCMCIA]]), WLAN-Adaptern ([[Personal Computer Memory Card International Association|USB]]) sowie dem [[Microcode]] in modernen [[Mikroprozessor]]en häufig anzutreffen. | |||
* Der [[Linux (Kernel)|Linux-Kernel]] nutzt diese Methode, unter anderem bei Grafikkarten, um freie oder angepasste Firmware in Geräte laden zu können. | |||
* Bei vielen [[Linux-Distribution]]en kann man Firmware für Geräte (zum Beispiel WLAN-Chips, Grafikkarten) über das [[Paketverwaltung|Paketmanagementsystem]] installieren. | |||
Eine weitere Möglichkeit zur Aktualisierung von Firmware sind sog. [[Over-the-Air-Update]]s, welche über die [[Funkschnittstelle]] der Endgeräte durchgeführt werden. | Eine weitere Möglichkeit zur Aktualisierung von Firmware sind sog. [[Over-the-Air-Update]]s, welche über die [[Funkschnittstelle]] der Endgeräte durchgeführt werden. | ||
Firmware-Updates können neben Funktionserweiterungen und Sicherheitsverbesserungen auch einen effizienteren Betrieb von Hardware zur Folge haben (Siehe auch [[Green IT]]). In größeren IT-Landschaften haben sie daher nicht zu vernachlässigende ökonomische Effekte. | Firmware-Updates können neben Funktionserweiterungen und Sicherheitsverbesserungen auch einen effizienteren Betrieb von Hardware zur Folge haben (Siehe auch [[Green IT]]). | ||
* In größeren IT-Landschaften haben sie daher nicht zu vernachlässigende ökonomische Effekte. | |||
== Ursprung des Wortes == | == Ursprung des Wortes == | ||
Der Begriff „Firmware“ wurde von Ascher Opler 1967 in einem Artikel in der Zeitschrift ''Datamation'' geprägt. | Der Begriff „Firmware“ wurde von Ascher Opler 1967 in einem Artikel in der Zeitschrift ''Datamation'' geprägt. | ||
* Ursprünglich wurde damit der [[Microcode]] im beschreibbaren [[Mikroprogrammspeicher]] eines [[Mikroprozessor]]s in einem [[Computer]] bezeichnet, wo der [[Befehlssatzarchitektur|Befehlssatz]] des [[Prozessor|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. | Später wurde die Bezeichnung für Mikrocode benutzt, gleichgültig, ob er im RAM oder ROM lag. | ||
Zeile 42: | Zeile 77: | ||
== Firmware von Drittanbietern == | == Firmware von Drittanbietern == | ||
Üblicherweise stammt die Firmware eines Gerätes vom Hersteller des Gerätes. Diese mit dem Gerät ausgelieferte Firmware wird auch als „Stock-Firmware“ oder „Stock-ROM“ bezeichnet. Für einige Geräteklassen wie [[Smartphone]]s, [[Tabletcomputer|Tablets]] und [[Spielkonsole]]n werden zusätzlich alternative Firmware-Varianten von Drittanbietern entwickelt. Diese werden auch als „Custom-ROM“ | Üblicherweise stammt die Firmware eines Gerätes vom Hersteller des Gerätes. | ||
* Diese mit dem Gerät ausgelieferte Firmware wird auch als „Stock-Firmware“ oder „Stock-ROM“ bezeichnet. | |||
* Für einige Geräteklassen wie [[Smartphone]]s, [[Tabletcomputer|Tablets]] und [[Spielkonsole]]n werden zusätzlich alternative Firmware-Varianten von Drittanbietern entwickelt. | |||
* Diese werden auch als „Custom-ROM“ oder „Aftermarket Firmware“ bezeichnet. | |||
* Viele Custom-ROMs werden von Einzelpersonen in ihrer Freizeit entwickelt, um z. B. neue Funktionen hinzuzufügen, Beschränkungen der Stock-Firmware zu umgehen oder um ihr Gerät mit [[Freie Software|freier Software]] auszustatten. | |||
Eine große Plattform zu dem Thema ist [[XDA Developers]] | Eine große Plattform zu dem Thema ist [[XDA Developers]] |
Version vom 22. März 2024, 00:47 Uhr
Firmware - Kurzbeschreibung
Beschreibung
Unter Firmware (englisch Vorlage:Lang ‚fest‘) versteht man Software, die in elektronischen Geräten eingebettet ist und dort grundlegende Funktionen leistet.
- Sie nimmt eine Zwischenstellung zwischen Hardware (also den physischen Anteilen eines Gerätes) und der Anwendungssoftware (den ggf. austauschbaren Programmen eines Gerätes) ein.
- 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.
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, die notwendig ist, um den Betriebssystemkern des eigentlichen Betriebssystems laden und betreiben zu können.
- Bei letzterer, der Firmware eines Computersystems, hat sich der Begriff BIOS etabliert, die Bezeichnung der Systemfirmware des IBM Personal Computers von 1981.
- Aufgrund des großen Erfolgs dieser Plattform, die in den 1980er bis 2000er Jahren als IBM-PC-kompatible Computer bekannt wurde, findet sich auch bei Systemfirmwares anderer Plattformen manchmal die Bezeichnung „BIOS“ (z. B. AlphaBIOS, OpenBIOS).
- Bei der modernen, aus den IBM-PC-Kompatiblen entstandenen Plattform „PC“ wird die Systemfirmware UEFI oft noch als UEFI-BIOS bezeichnet.
Verwendung
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, Bordcomputern oder Mobiltelefonen.
- Im modernen Automobil befinden sich typischerweise 15 bis 90 Steuergeräte (z. B. ABS, ESP, ACC, Airbags, Motorsteuerung, Tacho, Radio, Klimaanlage, Einparkhilfe oder Fensterheber), von denen jedes eine eigene Firmware haben kann.
In der Regel wird der programmierbare Inhalt von Mikrocontrollern als Firmware bezeichnet.
Unscharfe Definition
Es ist grundsätzlich möglich, jegliche Funktionalität allein in Hardware abzubilden, und diese Hardware wäre ohne jegliche Software funktionstüchtig und bedienbar.
- Frühe Videospiele wie Pong bestanden beispielsweise aus Schaltkreisen, die das jeweilige Spielprinzip direkt umsetzten, ohne dass Software im Spiel war.
- In der Praxis hat sich jedoch ab einer gewissen Komplexität die Software als Abstraktionsschicht zwischen Mensch und Hardware als äußerst nützlich erwiesen.
- Software, die grundsätzliche Funktionen als Abstraktionsschicht abbildet und diese damit dem Benutzer zur Verfügung stellt, nennt man im Allgemeinen Betriebssystem.
- Jedoch ist auch der Begriff Betriebssystem bereits ungenau; man kann darunter z. B. nur den Kernel eines Betriebssystems verstehen, oder auch den Kernel mitsamt Softwarepaketen.
- Der Begriff Firmware bezeichnet grundsätzlich eine Software.
- Dies kann sein:
- ein komplettes Betriebssystem, z. B. OpenWrt.
- Der Grund für die Bezeichnung dieser Software als Firmware und nicht als Betriebssystem ist, dass die Speicherung auf Flash-Speichern erfolgt, deren Speicherkapazität verhältnismäßig gering ist;
- Software, die einen Teil der Hardware abbildet, z. B. die Firmware einer Grafik-, Netz- oder einer WLAN-Karte
- Software, 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 (die in der Firmware abgebildet ist): Drucker, Haushaltsgeräte, Kraftfahrzeuge und andere
- die Erfüllung aller Aufgaben eines proprietären Betriebssystems; zusätzliche Software kann betrieben werden, z. B. Smartphones, Spielkonsolen, Storage Server und andere
- die Zurverfügungstellung hardwarenaher Funktionen in einem Gerät, die das Laden und Starten eines gesonderten Betriebssystems von einem Datenträger erlauben.
- Beim PC wird diese Firmware BIOS genannt.
- Das Betriebssystem kann Firmware-Funktionen auch direkt nutzen.
Ursprüngliche Bedeutung: Der Begriff Firmware bezeichnet ein festes Bindeglied zwischen Hardware und Software, wie die Namenswahl des Begriffes (firm = fest) nahelegt.
- Es gibt Firmware, die frei von ausführbarem 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 eine fehlerhafte Konfiguration im schlimmsten Fall (Kurzschluss der Versorgungsspannung) zur sofortigen Zerstörung des Gerätes führen kann.
- Sie wird in Abgrenzung zu Maschinensprache auch Configware genannt.
- Aus der Sicht eines Hardware-Designers ist ein BIOS ein basales Betriebssystem 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 Datenspeicher (ROM) überhaupt erst gelesen werden kann.
Aktualisierung von Firmware
Meist ist Firmware auf einen Festwertspeicher geschrieben und kann folglich nur durch den Austausch entsprechender Bauteile aktualisiert werden.
- Bei aktuellen Geräten ist es aber immer häufiger möglich, die Firmware auf Softwareebene auszutauschen.
- Flash-Speicher beziehungsweise EEPROMs können über spezielle Verfahren gelöscht und neu beschrieben werden.
- Dieser Vorgang wird umgangssprachlich „Flashen“ oder „PDRen“ genannt.
Die Aktualisierung kann der Fehlerbehebung sowie der Änderung von Funktionen dienen.
- Schlägt die Aktualisierung – zum Beispiel durch eine Unterbrechung der Stromzufuhr während des Schreibens – fehl, kann das Gerät unbrauchbar werden: Wenn die elementaren Funktionen zur Aktualisierung der Firmware selbst gelöscht und nicht vollständig erneuert werden, kann eine funktionsfähige Firmware möglicherweise nur noch mit speziellen Hilfsmitteln durch den Hersteller installiert 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), WLAN-Adaptern (USB) sowie dem Microcode in modernen Mikroprozessoren häufig anzutreffen.
- Der Linux-Kernel nutzt diese Methode, unter anderem bei Grafikkarten, um freie oder angepasste Firmware in Geräte laden zu können.
- Bei vielen Linux-Distributionen kann man Firmware für Geräte (zum Beispiel WLAN-Chips, Grafikkarten) über das Paketmanagementsystem installieren.
Eine weitere Möglichkeit zur Aktualisierung von Firmware sind sog. Over-the-Air-Updates, welche über die Funkschnittstelle der Endgeräte durchgeführt werden.
Firmware-Updates können neben Funktionserweiterungen und Sicherheitsverbesserungen auch einen effizienteren Betrieb von Hardware zur Folge haben (Siehe auch Green IT).
- In größeren IT-Landschaften haben sie daher nicht zu vernachlässigende ökonomische Effekte.
Ursprung des Wortes
Der Begriff „Firmware“ wurde von Ascher Opler 1967 in einem Artikel in der Zeitschrift Datamation geprägt.
- 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, Bootloader oder andere spezialisierte Programme.
Firmware von Drittanbietern
Üblicherweise stammt die Firmware eines Gerätes vom Hersteller des Gerätes.
- Diese mit dem Gerät ausgelieferte Firmware wird auch als „Stock-Firmware“ oder „Stock-ROM“ bezeichnet.
- Für einige Geräteklassen wie Smartphones, Tablets und Spielkonsolen werden zusätzlich alternative Firmware-Varianten von Drittanbietern entwickelt.
- Diese werden auch als „Custom-ROM“ oder „Aftermarket Firmware“ bezeichnet.
- Viele Custom-ROMs werden von Einzelpersonen in ihrer Freizeit entwickelt, um z. B. neue Funktionen hinzuzufügen, Beschränkungen der Stock-Firmware zu umgehen oder um ihr Gerät mit freier Software auszustatten.
Eine große Plattform zu dem Thema ist XDA Developers