Inden for databehandling er firmware et computerprogram, der er "indlejret" i en hardwareenhed og er en væsentlig del af hardwaren. Det kaldes undertiden indlejret software. Et eksempel er en mikrocontroller, en del af en mikroprocessor, der fortæller mikroprocessoren, hvilke handlinger den skal udføre. Det kan også være et større program, der er gemt på flash-hukommelse eller uploadet til eksisterende hardware af en bruger.

Som navnet antyder, befinder firmware sig et sted mellem hardware og software og forbinder de to verdener. Det kan betyde lidt forskellige ting for forskellige mennesker, især i takt med at selvstændige elektroniske enheder bliver mere og mere lig computere. Ligesom software er det et computerprogram, som køres af en mikroprocessor. Men det er også forbundet med et stykke hardware og har ingen betydning uden det.

Hvad gør firmware?

Firmware styrer de grundlæggende funktioner i en enhed og oversætter kommandoer mellem hardware og højere niveau software. Typiske opgaver inkluderer:

  • Initialisering og opstart af hardwarekomponenter (bootsekvens).
  • Kontrol af lavniveau-funktioner som sensorer, motorer, netværksgrænseflader, lagringsmedia og periferienheder.
  • Tilvejebringelse af grænseflader til operativsystemer eller applikationer (f.eks. drivere eller API'er).
  • Håndtering af strømstyring og fejltilstande.
  • Implementering af sikkerhedsfunktioner som adgangskontrol, kryptering og signaturvalidering.

Typer og opbevaring

  • Maskeret ROM: Permanent firmware skrevet ved fremstillingstidspunktet (kan ikke ændres).
  • EEPROM / Flash: Genprogrammerbar hukommelse, som tillader firmwareopdateringer efter levering.
  • Microcontroller-firmware: Lille, optimeret kode, ofte skrevet i C eller assembler.
  • Komplekst indlejret system: Større firmwarepakker, nogle gange med eget filsystem eller realtids-OS.

Eksempler på firmware

  • BIOS/UEFI i computere, der initialiserer hardware og starter operativsystemet.
  • Router- og switch-firmware, som håndterer netværkstrafik og sikkerhed.
  • Hårddisk- og SSD-firmware, der styrer læse-/skrivealgoritmer og fejlhåndtering.
  • Printerfirmware, kamera-firmware, smart-tv-software og firmware i IoT-enheder.
  • Firmware i mikrocontrollere i industrielle styringer, biler og husholdningsapparater.

Opdatering og distribution

Firmware kan opdateres for at rette fejl, forbedre ydeevne eller tilføje funktioner. Metoder omfatter:

  • OTA (over-the-air) opdateringer via netværk.
  • Opdatering via USB, SD-kort eller producentens softwareværktøj.
  • Automatiske opdateringer fra cloud-tjenester for tilsluttede enheder.

Opdateringsprocessen kan være risikabel: afbrydes den (f.eks. pga. strømsvigt), kan enheden blive ubrugelig ("bricked"). Derfor anvendes ofte sikkerhedsforanstaltninger som signaturverifikation, redundante firmwarebanker og rollback-mekanismer.

Sikkerhed og bedste praksis

  • Brug kun firmware fra producenten eller betroede kilder.
  • Hold firmware opdateret for at lukke sårbarheder, især i netværksforbundne enheder (IoT).
  • Sørg for stabil strømforsyning under opdateringer eller brug batteribeskyttelse.
  • Aktiver funktioner som Secure Boot og firmware-signering, når det er muligt.
  • Backup vigtige indstillinger, før du opgraderer.

Firmware vs. software og drivere

Forskellen mellem firmware og almindelig software kan være flydende:

  • Firmware kører direkte på enhedens hardware og håndterer lavniveau-opgaver.
  • Software (applikationer, operativsystemer) kører typisk på højere niveau og kræver ofte firmware for at få adgang til hardware.
  • Drivere er et mellemlag, der gør hardwarens funktioner tilgængelige for operativsystemet — de kan være en del af firmwareens funktion eller eksistere som separat software.

Fremtidstendenser

Efterhånden som flere enheder bliver netværksforbundne, stiger kravene til sikker og pålidelig firmware. Vigtige trends inkluderer:

  • Øget brug af kryptering og digitale signaturer til firmwarevalidering.
  • Modularisering, så kritiske komponenter kan opdateres uden at påvirke resten.
  • Standarder for sikre opdateringsmekanismer og bedre overvågning af firmwareintegritet.

Samlet set er firmware et centralt lag i moderne elektronik, der forbinder hardware og software. Dets korrekt konstruerede og vedligeholdte implementering er afgørende for enheders funktionalitet, sikkerhed og levetid.