Firmware is software die in hardware ingeprogrammeerd is. Dit kan op eenmalige basis geschieden, maar moderne technieken zoals flashgeheugen maken het ook mogelijk om de firmware te vernieuwen. De EEProm wordt dan geladen met het nieuwe programma.

Firmware wordt vaak gebruikt als besturingssoftware voor elektronica en ingebedde computersystemen waar een processor aanwezig is, zoals auto's, in huishoudtoestellen, in elektronische apparatuur of in computers.

De term "firmware" geeft overigens al aan dat de inhoud firm (stevig) is, en zit dus tussen de hardware (in principe niet te wijzigen) en (algemene) software (zoals algemene besturingssystemen en computerprogramma's, die makkelijk te overschrijven zijn).

Bij het ontwerpen van firmware of ingebedde software zijn vaak heel andere zaken van belang dan in algemene software: kostprijs, geheugenverbruik, snelheid, efficiëntie en energieverbruik en warmteafstraling.

Echter, met de invoering van steeds performantere digitaal-signaalprocessoren enerzijds en ingebedde microprocessoren anderzijds kan men stellen dat de grens tussen klassiek programmeren en firmware op bepaalde vlakken aan het vervagen is: waar vroeger zeer specifieke besturingssystemen werden gebruikt, ziet men nu steeds meer algemene besturingssystemen zoals Linux op dergelijke systemen (bijvoorbeeld horloges, betalingsterminals, telefoons, dvd-spelers, hardwareacceleratiekaarten ...).

Bijwerken van firmware 
Soms is het mogelijk dat de firmware wordt bijgewerkt naar een nieuwere versie, dat wordt een update genoemd. Dit is niet zonder risico. Als er tijdens het bijwerken iets verkeerd gaat, dan bevat het apparaat geen geldige firmware meer en zal niet meer werken. Sommige apparaten bevatten daarom twee componenten met firmware, zodat het apparaat nog op een oudere werkende firmware kan werken, als de nieuwe verkeerd is gegaan. Bijvoorbeeld sommige duurdere moederborden van computers hebben de BIOS-chip met firmware dubbel uitgevoerd.

Aanpassen van firmware 
Soms is het ook mogelijk om firmware aan te passen. Dit gebeurt bijvoorbeeld veel met fotocamera's en mobiele telefoons. Voorbeelden hiervan zijn Magic Lantern en Techni Colour welke veel extra opties toevoegen aan de originele Canon-firmware, of aangepaste firmware voor telefoons zoals CyanogenMod voor Android-toestellen. Soms heeft de software geen meerwaarde in opties, maar is hij juist gestript van opties om zo sneller te zijn of minder batterij verbruik te genereren.

Apparaten waarvan de firmware soms bijgewerkt kan worden 
 Fotocamera's. Als blijkt dat er een storende fout is, dan wordt nieuwe firmware uitgebracht.
 BIOS van computers. Om fouten te herstellen of om de computer geschikt te maken voor nieuwere componenten (zoals geheugens).
 MP3-spelers
 Mobiele telefoons
 Cd-, dvd- en blu-ray-branders
 Printers en scanners.
 Spelconsoles.
 Internetradio's
 Flatscreen-tv's
 Professionele cd-spelers
 Auto's (vb.: Tesla Model S)
 Navigatiesystemen
Horloges

 
Computerhardware