- Fastvare er programvaren på laveste nivå, lagret i enhetens interne minne, som direkte styrer de elektroniske kretsene og deres boot.
- den drivere Dette er programmer som er installert på operativsystemet og som fungerer som mellomledd mellom det og maskinvareved hjelp av grensesnittene som er eksponert av fastvaren.
- Fastvare og drivere oppdateres med forskjellige mål og svært forskjellige risikoer, noe som gjør det mye mer delikat å endre fastvaren enn å endre en driver.
- Selv om det bare er programvare, spiller hvert lag (fastvare, drivere og applikasjoner) en spesifikk rolle, og forståelse av dette hjelper med å diagnostisere problemer og bestemme hva som skal oppdateres.
I teknologiens verden finnes det ord vi hører hver dag, men som vi ikke alltid forstår klart når vi stopper opp og tenker på. Fastvare, drivere og programvare Dette er tre av disse begrepene som ofte brukes som om de var de samme, når de i virkeligheten utfører svært forskjellige funksjoner i en hvilken som helst elektronisk enhet.
Hvis du noen gang har lurt på det Er det reelle forskjeller mellom drivere og firmware?Enten du har slitt med å oppdatere PC-en, mobiltelefonen eller til og med vaskemaskinen din, er denne artikkelen for deg. Vi vil gå gjennom hva fastvare er, hva drivere er, hvordan de forholder seg til resten av programvaren din, og hvorfor det å oppdatere hver av dem har forskjellige mål og konsekvenser.
Hva er egentlig firmware?
Når vi snakker om firmware, mener vi det et veldig grunnleggende program som gir "liv" til maskinvaren av en enhet. Det er et sett med instruksjoner registrert på en spesiell minnebrikke som forteller de elektroniske kretsene hva de skal gjøre, hvordan de skal starte opp og hvordan de skal reagere på eksterne kommandoer.
I praksis er fastvaren den laveste nivålogikken til en elektronisk enhetFør operativsystemet i det hele tatt starter opp, finnes det allerede kode som bestemmer hvilke komponenter som skal slås på, hvordan de skal initialiseres og hvordan man skal bekrefte at alt oppfyller minimumskravene for å fungere. Det er nettopp det fastvare gjør.
Denne koden lagres vanligvis i ikke-flyktige minner som ROM, PROM eller flashminneatskilt fra hovedminnet der vanlige programmer kjører. Det er derfor alt fra en mus til en konsoll... spilletAlt fra en vaskemaskin til en ruter inkluderer en liten brikke dedikert til å lagre fastvaren som styrer dem.
Fastvaren har en interessant særegenhet: Den ligger midt mellom maskinvare og programvare.Det er så integrert i elektronikk at det ofte regnes som en del av selve maskinvaren, men i kjernen er det fortsatt kjørbar kode – programvare. Faktisk er det et av hovedpunktene i forbindelsen mellom de to verdenene.
I tillegg til å håndtere interne operasjoner, sørger fastvare vanligvis for et grunnleggende grensesnitt for å konfigurere enhetenPå en datamaskin, for eksempel, BIOS UEFI lar deg justere oppstartsrekkefølgen, aktivere eller deaktivere porter og angi kritiske parametere før operativsystemet lastes inn.

Tydelige eksempler på firmware i hverdagen din
Det mest klassiske tilfellet når man snakker om fastvare er det med BIOS eller UEFI på en stasjonær eller bærbar PCDet er den første koden som kjører når du trykker på av/på-knappen, og den er ansvarlig for å sjekke RAM-en, oppdage diskene, initialisere grafikkortet og bekrefte at hovedkortet og andre komponenter reagerer som de skal.
Men fastvare går langt utover datamaskinen. I utgangspunktet alle elektroniske dingser du har rundt i huset Den inneholder en liten del av firmware som forteller maskinvaren hvordan den skal oppføre seg:
- Fjernkontroller fra TV-en eller klimaanlegget, som tolker pulsene og sender de riktige signalene.
- Datamaskinens periferiutstyr som tastaturer, mus, skrivere eller webkameraer, som er små, spesialiserte datamaskiner som ofte er koblet sammen via USB-porter.
- Smarttelefoner og nettbrettder fastvaren koordinerer kommunikasjonen mellom prosessor, skjerm, kamera, sensorer og operativsystem.
- Rutere og WiFi-tilgangspunktersom er avhengige av fastvare for å administrere nettverket, sikkerheten og samtidige tilkoblinger.
- Musikk- og videospillere bærbarsom ofte oppdateres for å støtte nye formater eller fikse avspillingsproblemer.
- moderne biler, full av elektroniske kontrollenheter hvis firmware styrer alt fra klimaanlegget til multimediesystemet.
- apparater som vaskemaskiner, oppvaskmaskiner eller mikrobølgeovner, som bruker firmware til å oversette programmet du velger (temperatur, modus, tid) til spesifikke handlinger for motor, ventiler og motstander.
- Trafikklys og elektronisk skiltingder fastvaren er ansvarlig for lyssekvensen og trafikkontrollen.
I mange av disse enhetene, Fastvaren fungerer praktisk talt som et minimalt operativsystemSpesielt i de enkleste enhetene, som en vekkerklokke eller en fjernkontroll. Det finnes ingen annen programvare over den; alt enheten gjør er definert i den koden som er lagret i minnet.
Hvordan fastvaren fungerer inne i enheten
Rollen til firmware er i bunn og grunn, å fungere som mellomledd mellom den fysiske delen (maskinvare) og resten av programvaren som kan kjøres på systemet. Den definerer hvordan de ulike komponentene kommuniserer, hvilke protokoller som brukes, og hvilken trinnrekkefølge som følges fra det øyeblikket strømmen tilføres.
Under oppstart, fastvaren Aktiver bare maskinvaren som er nødvendig for å starte systemetPå en datamaskin betyr dette for eksempel å initialisere CPU-en, en minimumsmengde minne, grafikkortet og andre enheter. lagring hvorfra operativsystemet kan lastes inn.
Fordi fastvaren må beholde informasjonen sin selv når enheten er slått avDen lagres i ikke-flyktig minne, vanligvis i flash-brikker eller ROM. På denne måten kan prosessoren lese instruksjonene fra samme minneadresse som alltid når enheten slås på, og utføre nøyaktig den samme startkoden.
Fastvarens kompleksitet avhenger mye av enhetstypen. I svært enkle enheterFastvaren er liten, tett knyttet til maskinvaren og oppdateres praktisk talt aldri. I mer komplekse systemer, som en ruter eller en... smarttelefonFastvaren kan være svært sofistikert og ha moduler som kan oppdateres ofte.
Typer firmware i henhold til kompleksiteten deres
Ikke all fastvare er den samme. Det kan klassifiseres i forskjellige nivåer. avhengig av dens plassering i programvarestakken, minnet der den befinner seg og hvilken type funksjoner den tilbyr enheten.
Lavnivå firmware
Lavnivå-firmwaren er så tett koblet til maskinvaren at Det blir ofte bokstavelig talt sett ansett som en del av selve enheten.Den er registrert i minner som ROM eller PROM (ikke-omprogrammerbar eller svært vanskelig å omprogrammere) og er ment å vare hele enhetens levetid.
Det finnes vanligvis i enheter med én enkelt, svært spesifikk funksjonsom for eksempel noen fjernkontroller, enkle klokker eller grunnleggende måleutstyr. I disse tilfellene er fastvaren den eneste «programvaren» som er tilstede: det finnes ikke noe separat operativsystem, bare en fast logikk som alltid utfører den samme oppgaven.
Høynivå firmware
Høynivå-fastvare lagres derimot vanligvis i omprogrammerbart flashminne Det er et steg over den mest grunnleggende fastvaren. Den er mer kompleks, tilbyr mer avanserte funksjoner, og fremfor alt kan den oppdateres relativt enkelt hvis produsenten slipper nye versjoner.
Det er den typen fastvare vi finner for eksempel i hjemmerutere, smart-TV-er eller digitale kameraerder oppdateringer slippes med jevne mellomrom for å fikse feil, tette sikkerhetshull eller legge til nye alternativer.
Delsystem- eller enhetsfastvare
Det finnes også en spesiell type firmware kjent som delsystemfastvare eller enhetsfastvareDette er kode som styrer en spesifikk komponent (for eksempel et lydkort, en skjerm eller til og med en CPU), men som fungerer ganske uavhengig av resten av systemprogramvaren.
Et typisk eksempel ville være dedikerte lydkort eller noen nettverkskortsom inkluderer sin egen firmware for å administrere maskinvarens interne funksjoner (effekter, mikser, protokoller), uavhengig av hovedoperativsystemet, som deretter kommuniserer med dem gjennom drivere.
Hva er drivere eller kontrollere?
Selv om fastvaren ligger i selve enheten, Driverne er installert på operativsystemetEn driver er et program som fungerer som en oversetter mellom operativsystemet og en bestemt maskinvarekomponent.
Verken Windows eller Linuxverken macOS eller noe annet operativsystem De kan finne ut på egenhånd hvordan de skal kommunisere med hver maskinvareenhet som finnes på markedet. Det er det drivere er til for: å fortelle systemet hvilke instruksjoner som skal sendes, hvordan det skal motta svarene og hvordan det skal utnytte enhetens muligheter fullt ut.
Disse driverne er lagret i samme disk eller minne der operativsystemet er installertHvis du formaterer harddisken eller installerer systemet på nytt, forsvinner driverne, og du må installere dem på nytt eller la systemet selv laste ned kompatible versjoner.
Av sin natur er drivere nærmere brukeren enn fastvare. De oppdateres mye oftereDe kan installeres automatisk via systemoppdateringer, eller manuelt ved å laste dem ned fra nettstedet til produsenten av grafikkortet, skriveren osv.
Forholdet mellom fastvare, drivere og resten av programvaren
For å forstå forskjellen mellom fastvare og drivere fullt ut, er det nyttig å se på... hvordan begge passer inn i alle programvarelagene i et systemTenk deg en slags trapp:
- På det laveste trinnet, på maskinvarenivået, er firmwareintegrert i selve enheten.
- Litt over dem er operativsystemdrivere, som fungerer som tolker mellom den fastvaren/maskinvaren og systemet.
- Og så kommer de OS (Windows, Linux, AndroidiOS…) og til slutt brukerapplikasjoner (nettlesere, spill, redigeringsprogrammer osv.).
Så når du klikker med musen på et program, setter det faktisk i gang en hel rekke med hendelser: Appen kaller operativsystemfunksjoner, som er avhengige av musedriveren, og driveren kommuniserer med fastvaren. fra enheten, som igjen forteller maskinvaren hva den skal gjøre og sender informasjonen tilbake.
Det er derfor det sies at både fastvare og drivere er viktig for at et team skal fungere ordentligMen de spiller i forskjellige ligaer: fastvaren er koblet til selve enheten, mens driveren tilhører operativsystemmiljøet.
Viktige forskjeller mellom fastvare og drivere
Selv om vi i begge tilfeller snakker om programvare som gjør det mulig for en enhet å fungere, Fastvare og drivere er ikke det samme De brukes heller ikke i samme kontekst. Hovedforskjellene er flere, og det er viktig å være veldig tydelig på dem.
- Hvor er koden installert?Fastvaren ligger på en enhetens interne minnemodul (ROM, flash osv.), mens driveren er lagret på disken eller i minnet der operativsystemet er installert. Fastvaren følger med enheten; driveren er knyttet til systemet der du kobler til enheten.
- Nivå av interaksjon med maskinvarenFastvaren er laveste nivå av programvare som direkte samhandler med elektroniske kretserDrivere, derimot, er plassert i høyere lag, kommuniserer med operativsystemet og bruker grensesnittene det gir for å nå maskinvaren.
- Avhengighet av operativsystemFastvaren er uavhengig av operativsystemet. Det fungerer selv uten et operativsystem i det hele tatt.Dette er tilfellet med mange husholdningsapparater eller enkle enheter. Drivere, derimot, er spesifikke for hvert system (en Windows-driver vil for eksempel ikke fungere på Linux) og er utviklet for å integreres med kjernen eller tjenestene.
- Oppdatering og vedlikeholdSelv om mange firmware-oppdateringer kan oppdateres, er prosessen vanligvis mer delikat og sjeldnerePå noen enheter har brukeren liten eller ingen direkte tilgang til fastvaren, eller trenger spesialiserte verktøy. I motsetning til dette er det vanligvis trivielt å oppdatere drivere: operativsystemet oppdager selv nye versjoner, eller brukeren installerer dem med ett eller to klikk.
- Konsekvenser av en fiaskoHvis noe går galt med en sjåfør, er resultatet vanligvis at Den enheten slutter å fungere som den skal på det operativsystemet. (for eksempel et tastatur som ikke reagerer ordentlig eller et grafikkort som ikke fungerer som det skal), men selve enheten forblir «levende». En fastvarefeil kan derimot gjøre enheten helt eller delvis ubrukelig; i ekstreme tilfeller blir den en «murstein» som ikke engang slår seg på.
- Tilstedeværelse av generiske kontrolleremange OS de omfatter generiske drivere For vanlige enheter (tastaturer, mus, lagringsstasjoner) lar dette maskinvaren fungere, selv om avanserte funksjoner går tapt. Fastvare tilbyr ikke dette: den må Sørg alltid for å få det fra enhetsprodusenten og det er helt avgjørende at den har minimumsfunksjonalitet.
Fastvare, drivere og det generelle konseptet med programvare
Det er viktig å huske på at både fastvare og drivere fortsatt er... spesifikke typer programvareBegrepet «programvare», opprinnelig myntet av Alan Turing og utvidet fra moderne databehandling, omfatter alle programmer som kjører på et system, fra operativsystemet til det enkleste programmet.
Innenfor denne brede kategorien har vi flere nivåer: operativsystemer, brukerprogrammer, drivere, fastvare og til og med den innerste mikrokoden til visse prosessorer. De er alle programvare, men med svært forskjellige formål og varierende grad av nærhet til maskinvaren.
Det finnes viktig programvare for at systemet skal kunne starte opp og være brukbart (som selve operativsystemet, fastvaren eller noen kritiske drivere) og programvare beregnet for legge til rette for spesifikke oppgaver (kontorapplikasjoner, design, spill osv.). Selv malware, som virus, trojanere eller ormer, er programvare, om enn med et åpenbart skadelig formål.
Fastvare-, driver- og programvareoppdateringer: mål og risikoer
Nå til dags er vi vant til å motta oppdateringsvarsler nesten daglig: fra nettleseren, systemet, apps fra mobiltelefonen… Men Ikke alle oppdateringer har samme formål eller samme risiko. når vi snakker om fastvare, drivere og generell programvare.
Fastvaren er vanligvis oppdatert for å rette kritiske feil, lukke sikkerhetsproblemer eller legge til svært spesifikke funksjonerFordi prosessen innebærer å endre kode som er viktig for at enheten skal kunne starte opp, er den vanligvis mer delikat: strømbrudd eller et ødelagt bilde kan gjøre enheten ubrukelig. Det er derfor produsenter ikke gir ut fastvareoppdateringer lettvint.
Når det gjelder drivere, er oppdateringer hyppigere og mer tilgjengeligDe brukes til å forbedre kompatibiliteten med nye versjoner av operativsystemet, legge til støtte for nye maskinvaremodeller, optimalisere ytelsen (som med grafikkort i spill) eller fikse feil som oppdages av brukere.
Resten av programvaren (applikasjoner, tjenester osv.) oppdateres enda oftere, med funksjonsendringer, grensesnittforbedringer, sikkerhetsoppdateringer og mindre rettelser. Risikoen ved å oppdatere brukerprogramvare er mye lavere enn de som endrer fastvaren, selv om det alltid kan være inkompatibiliteter eller feil.
For å administrere fastvaren er det i mange tilkoblede enheter selve systemet som varsler brukeren om at det finnes en ny versjon og veileder oppdateringsprosessen. I andre tilfeller er det nødvendig å laste ned bildet fra produsentens nettsted og starte prosessen manuelt, noe som krever mer forsiktighet. Med drivere er det imidlertid ofte nok å bare la det kjøre. Windows UpdateLinux-pakkebehandleren eller produsentens verktøy vil håndtere det.
Er det fastvare eller en driver? Et praktisk eksempel med en motorstyring
En veldig nyttig måte å forstå grensen mellom fastvare og drivere på er å se på et eksempel fra den virkelige verden. Tenk deg at du har en steppermotordriver, for eksempel TMC5130, og du utvikler i C koden som administrerer SPI- eller UART-kommunikasjonen med den brikken, og leser og skriver til registrene.
Hvis den koden er ment for som skal registreres inne i mikrokontrolleren Programmet som styrer systemet, og som er en del av settet med instruksjoner som utføres i selve enheten, beskrives mer nøyaktig som firmware. Det er programmet som, fra enheten, direkte styrer maskinvaren og definerer dens oppførsel.
På den annen side, hvis det du skriver er en slags gjenbrukbart bibliotek som enhver MCU eller til og med et operativsystem kan bruke For å kommunisere med den samme motorkontrolleren passer den bedre inn i definisjonen av en driver. Det er et gjenbrukbart mellomlag som gir et standardgrensesnitt for å kommunisere med den maskinvaren, og isolerer resten av systemet fra detaljene på lavt nivå.
Forvirringen oppstår fordi grensen mellom fastvare og drivere er uklar i innebygde systemer. noen ganger er det uskarptDet finnes kode på svært lavt nivå som kan vurderes, avhengig av konteksten. Hovedspørsmålet er imidlertid: ligger denne koden inne i enheten og er en del av kjernelogikken (fastvare), eller ligger den i systemmiljøet og fungerer som et gjenbrukbart mellomlag (driver)?
Kan firmwaren endres eller "hackes"?
Fordi fastvaren er innebygd i en mindre synlig del av enheten, kan den virke urørlig, men Det er fortsatt kode.Derfor er det mulig å analysere, modifisere og til slutt «hacke» det i begrepets videste forstand.
Du finner dem i mange spesialiserte fora Modifiserte firmware for alle typer enheterRutere med ekstra funksjoner, konsoller som støtter hjemmebrygget programvare, spillere med nye støttede formater, osv. Dette er eksempler på hvordan denne koden kan endres for å endre enhetens oppførsel med riktig kunnskap og verktøy.
Om vi bør gjøre det er en annen sak. Juridisk og sikkerhetsmessig sett, Det er vanligvis en dårlig idé for den gjennomsnittlige brukeren.Endring av fastvaren kan bryte bruksvilkårene, ugyldiggjøre enhetens garanti og, aller alvorligst, introdusere sårbarheter eller feil som gjør den ubrukelig.
Når det er sagt, finnes det spesialister som er i stand til å gjenopplive utdaterte maskiner eller gi dem en ny bruk nettopp ved å manipulere fastvaren. Det er et fascinerende felt innen reverse engineering, men et felt som krever avansert kunnskap og innebærer å ta betydelig risiko.
I lys av alt det ovennevnte blir det tydeligere at fastvare, drivere og programvare er tre forskjellige brikker i det samme teknologiske puslespilletFastvaren er innebygd i maskinvaren og definerer enhetens grunnleggende logikk; drivere sørger for at operativsystemet kan kommunisere med maskinvaren på en organisert måte; og programvare generelt, fra selve systemet til applikasjoner, er avhengig av disse lagene for å levere funksjonene vi bruker daglig. Å forstå disse forskjellene hjelper oss ikke bare med å snakke nøyaktig, men hjelper oss også å vite hva vi endrer hver gang vi oppdaterer noe, og hvorfor noen oppdateringer er rutinemessige, mens andre krever mye mer forsiktig håndtering.
Lidenskapelig forfatter om verden av bytes og teknologi generelt. Jeg elsker å dele kunnskapen min gjennom å skrive, og det er det jeg skal gjøre i denne bloggen, vise deg alle de mest interessante tingene om dingser, programvare, maskinvare, teknologiske trender og mer. Målet mitt er å hjelpe deg med å navigere i den digitale verden på en enkel og underholdende måte.