V računalništvu je strojna programska oprema računalniški program, ki je "vgrajen" v strojno napravo in je bistveni del strojne opreme. Včasih se imenuje tudi vgrajena programska oprema. Primer je mikrokrmilnik, del mikroprocesorja, ki mikroprocesorju sporoča, katera dejanja naj izvede. Lahko je tudi večji program, shranjen v pomnilniku flash, ali pa ga na obstoječo strojno opremo naloži uporabnik.
Kot pove že ime, je vdelana programska oprema nekje med strojno in programsko opremo ter povezuje oba svetova. Različnim ljudem lahko pomeni nekoliko drugačne stvari, zlasti ker samostojne elektronske naprave postajajo vse bolj podobne računalnikom. Tako kot programska oprema je tudi ta računalniški program, ki ga izvaja mikroprocesor. Vendar je povezan tudi s strojno opremo in brez nje nima nobenega pomena.
Kaj je vdelana programska oprema (firmware)?
Vdelana programska oprema (angl. firmware) je specializirana programska koda, namenjena nadzoru in upravljanju strojne opreme. Pogosto zagotavlja osnovne funkcije naprave, kot so inicializacija strojnih komponent ob vklopu, nadzor napravnih vmesnikov, upravljanje periferij in izvajanje nizko-nivojskih protokolov. Zaradi tesne povezanosti s strojno opremo je firmware optimiziran za omejene vire (pomnilnik, procesorski čas) in za zanesljivost.
Kje najdemo firmware — primeri
- BIOS/UEFI na matični plošči računalnika, ki skrbi za zagon sistema.
- Vdelani nadzor v routerjih, modemi in omrežni opremi.
- Firmware v SSD pogonih, ki upravlja preslikavo sektorjev in kompleksne algoritme za pomnilnik.
- Mikrokrmilniki v gospodinjskih aparatih, tiskalnikih, kamerah, pametnih urah in IoT napravah.
- Elektronske krmilne enote (ECU) v avtomobilih, ki nadzorujejo motor, zavorni sistem, zračne blazine itd.
Kako je shranjen in posodobljen
Firmware je lahko shranjen v različnih vrstah pomnilnika: mask ROM, EEPROM, pomnilnik flash ali v posebnih območjih pomnilnika sistema. Moderni izdelki pogosto omogočajo posodobitve firmware-a preko USB, serijskih vmesnikov ali brezžično (OTA — over-the-air). Posodobitve lahko prinesejo izboljšave, popravke varnostnih ranljivosti ali nove funkcije, vendar nepravilna posodobitev lahko napravo tudi trajno poškoduje (t. i. "brickanje").
Varnost in zanesljivost
Ker firmware deluje na nizki ravni, imajo ranljivosti v njem lahko resne posledice. Zato proizvajalci pogosto uporabljajo digitalne podpise in preverjanje integritete pred namestitvijo posodobitev. V varnostnih praksah so pogoste tudi zaščite proti neavtoriziranim spremembam ter mehanizmi za povrnitev (rollback) v primeru napake pri posodobitvi.
Razvoj in omejitve
Razvoj firmware-a običajno poteka v jezikih, kot sta C ali asembler, in pogosto vključuje uporabo realno-časovnih operacijskih sistemov (RTOS) za upravljanje časa. Ključne omejitve so omejen pomnilnik, procesorska moč, poraba energije in potreba po visoki zanesljivosti. Zaradi tega je načrtovanje firmware-a drugačno kot razvoj namizne ali mobilne programske opreme.
Razlika med firmware in programsko opremo
Glavna razlika je raven delovanja in odnos do strojne opreme: firmware neposredno upravlja strojne komponente in je pogosto specifičen za napravo, medtem ko je aplikacijska programska oprema (software) namenjena končnemu uporabniku in deluje na višjem nivoju sistema. Kljub temu meje vse bolj zabrisujejo — mnoge naprave imajo firmware, ki deluje kot običajen operacijski sistem ali platforma za aplikacije.
Priporočila za uporabnike
- Posodobitve firmware-a izvajajte le z uradnimi paketi proizvajalca in sledite navodilom.
- Pred posodobitvijo naredite varnostno kopijo pomembnih nastavitev, če to naprava podpira.
- Pri kritičnih napravah (npr. avtomobilski ECUs, medicinska oprema) naj spremembe izvajajo usposobljeni servisi.
- Bodite pozorni na varnostne obvestila proizvajalcev in čim prej nameščajte varnostne popravke.
Zaključek: Vdelana programska oprema povezuje strojno in uporabniško izkušnjo naprave — brez nje sodobne elektronske naprave ne bi delovale. Razumevanje osnov firmware-a pomaga pri varni rabi in vzdrževanju naprav.