Under Firmware ( English firm , solid ') refers to software used in electronic devices embedded is. It is mostly stored in a flash memory , an EPROM , EEPROM or ROM and cannot be exchanged by the user or can only be exchanged with special means or functions. The term is derived from the fact that firmware is functionally integral to the hardwareconnected, which means that one cannot be used without the other. It occupies an intermediate position between hardware (i.e. the physical components of a device) and the application software (the possibly exchangeable programs of a device).
Firmware is both the operating software of various devices or components (e.g. mobile phone, game console, remote control, hard drive, printer) and the basic software of a computer (e.g. the BIOS anchored in a flash memory in personal computers), which is necessary to load and operate the operating system kernel of the actual operating system.
Firmware is used, for example, in hard disk recorders , DVD burners , DVD players , newer televisions , home appliances , digital cameras and their interchangeable lenses , receivers for digital radio , computer parts (graphics cards, drives, etc.), and many other electronic devices. She is also in embedded systems such as ADSL - modems , on-board computers , or mobile phones . In modern automobiles there are typically 15 to 90 control units (e.g. ABS , ESP , ACC , airbags , engine control , speedometer, radio, air conditioning, parking aid or window lifters), each of which contains its own firmware.
Typically, the programmable content of microcontrollers is referred to as firmware.
It is basically possible to map any functionality in hardware alone, and this hardware would be functional and operable without any software. Early video games such as Pong , for example, consisted of circuits that implemented the respective game principle directly, without software being involved. In practice, however, from a certain complexity onwards, software has proven to be extremely useful as an abstraction layer between humans and hardware. Software that maps basic functions as an abstraction layer and thus makes them available to the user is generally called the operating system . However, the term operating system is also imprecise; you can include z. B. understand only the kernel of an operating system, or even the kernel including software packages. The term firmware basically refers to software. This can be:
- a complete operating system, e.g. B. OpenWrt . The reason for the designation of this software as firmware and not as an operating system is that it is stored on flash memories, the storage capacity of which is relatively small;
- Software that maps part of the hardware, e.g. B. the firmware of a graphics, network or a WLAN card
- Software that contains settings in the form of parameters (encrypted or unencrypted), e.g. B. the firmware of a coding card
- the complete software of a device (which is shown in the firmware): printers , household appliances, automobiles and others
- the fulfillment of all tasks of a proprietary operating system; additional software can be operated, e.g. B. Smartphones , game consoles , storage servers and others
- the provision of hardware-related functions in a device that allow a separate operating system to be loaded and started from a data carrier. On the PC this firmware is called BIOS. The operating system can also use firmware functions directly.
Original meaning: The term firmware designates a fixed link between hardware and software, as the name of the term (firm = fixed) suggests.
- There is firmware that does not contain any executable code and is used to configure special hardware (CPLDs, gate arrays). After the corresponding chips have been programmed application-specifically at the OEM (burned earlier), the firmware has de facto become hardware. With this type of firmware, end-user updates are not common, since a faulty configuration in the worst case (short circuit of the supply voltage) can lead to the immediate destruction of the device. In contrast to machine language, it is also called configware .
- From the perspective of a hardware designer, a BIOS is a basic operating system and should therefore be viewed more as software. The firmware in a computer configures the hardware (glue logic or chip set) in such a way that the BIOS can be read from a data memory (ROM) in the first place.
In most cases, firmware is written to a read-only memory and can therefore only be updated by replacing the relevant components. With current devices, however, it is increasingly possible to exchange the firmware at the software level. Flash memories or EEPROMs can be deleted and rewritten using special procedures. This process is colloquially called "flashing".
The update can be used to correct errors and to change functions. If the update fails - for example due to an interruption of the power supply while writing - the device can become unusable: If the elementary functions for updating the firmware themselves are deleted and not completely renewed, functional firmware may only be able to get through with special tools installed by the manufacturer.
In rare cases, the firmware of computer accessories is not stored permanently in the device itself, but is written to a RAM module located in the device during the boot process or when the device is plugged in . An update is usually extremely easy, as the firmware is simply stored as a file in the local file system of the computer and can be updated by overwriting the file. This variant is particularly common with WLAN cards ( PCI or PCMCIA ), WLAN adapters ( USB ) and the microcode in modern microprocessors . The Linux kernel also uses this method, including with graphics cards, in order to be able to load free or adapted firmware into devices. With many Linux distributions you can install firmware for devices (e.g. WLAN chips, graphics cards) via the package management system.
Origin of the word
The term “firmware” was coined by Ascher Opler in 1967 in an article in Datamation magazine . Originally it was used to refer to the microcode in the writable microprogram memory of a microprocessor in a computer , where the instruction set of the main processor (the CPU) is stored. The firmware could be reloaded to change the command set. Firmware was therefore not written in the machine code of the CPU, but in microcode. In the original sense, firmware was clearly separated from hardware (the CPU itself) and software (the programs that run on the processor).
The term was later used for microcode, regardless of whether it was in RAM or ROM.
Then the term was given a broader definition, for everything that is stored in ROM, such as processor machine instructions for the BIOS, boot loader or other specialized programs.
Third party firmware
The firmware of a device usually comes from the manufacturer of the device. This firmware supplied with the device is also referred to as “stock firmware” or “stock ROM”. For some device classes such as B. Smartphones , tablets and game consoles are also developing alternative firmware variants from third-party providers. These are also known as “Custom ROM” or “Aftermarket Firmware”. Many custom ROMs are developed by individuals in their spare time, e.g. B. to add new functions, to circumvent the limitations of the stock firmware or to equip your device with free software . With smartphones and tablets with the Android operating system, there are additional motivations for switching to custom ROMs: the Google apps with their many authorizations can generally not be deleted from the device due to contracts between Google and the manufacturers. Many manufacturers also only offer updates for their devices to a very limited extent . Often the devices are delivered with an outdated Android version even when they are purchased, or security patches have not been included in the stock ROM. Or the Android supplied by the manufacturer contains adjustments compared to the regular Android from Google, which the user perceives as negative.
- Opler, Ascher: Fourth generation software . In: Datamation . 13, No. 1, January 1967, pp. 22-24.
- What is an Android Custom ROM? xda-developers.com, accessed April 20, 2018 .
- alternative Android versions on smartphones and tablets. heise.de, May 17, 2014, accessed on April 20, 2018 .