In computing, Firmware is a specific class of computer program (/software) that provides the low-level control for a device’s specific hardware. Firmware can either provide a standardized operating environment for more complex device software (allowing more hardware-independence), or, for less complex devices, act as the device’s complete operating system, performing all control, monitoring and data manipulation functions. Firmware is held in non-volatile memory devices soldered onto the PCB, such as ROM, EPROM, or EEPROM (including NOR flash memory).
Examples of firmware include:
In consumer products:
- Timing and control systems for washing machines
- Controlling sound and video attributes, as well as the channel list, in modern televisions
In computers:
- The BIOS found in older IBM-compatible PCs
- The (U)EFI-compliant firmware used on Itanium systems, Intel-based Macs, and many newer PCs
- Hard drive or Solid state drive firmware Video BIOS of a graphics card
- Open Firmware, used in SPARC-based computers from Sun Microsystems and Oracle Corporation, PowerPC-based computers from Apple, and computers from Genesi
- ARCS, used in computers from Silicon Graphics
- Kickstart, used in the Amiga line of computers (POST, hardware init + Plug and Play auto-configuration of peripherals, kernel, etc.)
- RTAS (Run-Time Abstraction Services), used in computers from IBM
- The Common Firmware Environment (CFE)
In routers and firewalls:
- LibreCMC – a 100% free software router distribution based on the Linux-libre kernel
- IPFire – an open-source firewall/router distribution based on the Linux kernel
- fli4l – an open-source firewall/router distribution based on the Linux kernel
- OpenWrt – an open-source firewall/router distribution based on the Linux kernel
- m0n0wall – an embedded firewall distribution of FreeBSD
In NAS systems:
- NAS4Free – an open-source NAS operating system based on FreeBSD 9.1
- Openfiler – an open-source NAS operating system based on the Linux kernel