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