Kompiuterijoje programinė įranga – tai kompiuterio programa, kuri yra „įterpta“ į aparatinį įrenginį ir sudaro esminę jo dalį. Dažnai ji vadinama įterptąja programine įranga. Pavyzdys – mikrovaldiklis, arba ta programos dalis, kuri instruktuoja mikroprocesorių, ką atlikti. Įterptoji programinė įranga gali būti ir didesnė programa, saugoma "flash" atmintyje, arba įkelta į esamą aparatinę įrangą vartotojo ar gamintojo.
Kaip rodo pavadinimas, ši programinė įranga stovi tarp aparatinės ir programinės įrangos: ji sujungia fizinį įrenginį ir aukštesnio lygio programas. Skirtingose situacijose terminas gali reikšti šiek tiek skirtingus dalykus, ypač kai tradiciniai elektroniniai prietaisai įgyja kompiuterio savybių. Iš techninės pusės tai yra programa, kurią vykdo mikrovaldiklis arba mikroprocesorius, tačiau be jos aparatas paprastai neveikia arba veikia labai ribotai.
Savybės ir saugojimo vietos
Įterptoji programinė įranga dažniausiai turi šias savybes:
- Nepertraukiamas ryšys su aparatūra: ji valdydama sensorius, valdiklius, išvesties įrenginius ir pan., tiesiogiai bendrauja su elektriniais komponentais.
- Veikia tiesiogiai po įjungimo: daug firmware komponentų (pvz., bootloader, BIOS/UEFI) paleidžiami prieš operacinę sistemą.
- Laikoma nevolatilioje atmintyje: ROM, EEPROM arba "flash" atmintyje, kad išliktų ir po išjungimo.
- Efektyvumas ir riboti ištekliai: firmware dažnai parašyta taip, kad užimtų mažai atminties ir efektyviai naudotų procesoriaus resursus.
Kaip vyksta atnaujinimas
Įterptoji programinė įranga gali būti atnaujinama įvairiais būdais: per specialų įrankį, USB, serijinį ryšį arba per tinklą (angl. OTA – over‑the‑air). Atnaujinimo procesą dažnai prižiūri bootloader, kuris užtikrina, kad įkrauta nauja versija yra galiojanti. Atnaujinant svarbu turėti galimybę grįžti prie ankstesnės versijos (rollback), nes neteisingas arba pertrūkęs atnaujinimas gali palikti įrenginį neveiksnų.
Saugumo ir stabilumo aspektai
Firmware yra kritinė kiekvieno įrenginio saugumo dalis. Pažeidžiamumai firmware lygyje gali suteikti prieigą prie aparatinės įrangos arba leisti kenkėjiškam kodui pasislėpti žemiau operacinės sistemos lygmens. Todėl gamintojai ir diegėjai dažnai taiko šias priemones:
- Skaitmeninis parašas ir patikimumo patikra prieš įkrovimą (signature verification).
- Užkirsti kelią neautorizuotiems atnaujinimams — leidžiami tik oficialūs paketai.
- Reguliarūs atnaujinimai ir saugumo pataisos.
- Įrenginio atkūrimo mechanizmai, kurie leidžia įkrauti firmware net jei pagrindinis atnaujinimas nepavyksta.
Pavyzdžiai
- Kompiuterių BIOS arba UEFI – atsakingi už sistemos paleidimą ir aparatūros inicializaciją.
- Maršrutizatorių (router) ir modemų firmware – tinklo srauto valdymas ir saugumas.
- Išmaniųjų telefonų modeminio ryšio (baseband) programinė įranga – ryšių valdymas.
- SSD diskų, kietųjų diskų, spausdintuvų, spausdinimo galvučių valdymo programinė įranga.
- Automobilių valdymo blokų (ECU) firmware – variklių, saugos sistemų ir pagalbinių funkcijų valdymas.
- Mažų įrenginių bei jutiklių firmware – daugelyje daiktų internete (IoT) įrenginių veikia mikrovaldikliai su paprasta, efektyvia programine įranga.
Praktiniai patarimai
- Reguliariai tikrinkite ir atnaujinkite firmware, ypač jei gamintojas skelbia saugumo pataisas.
- Prieš atnaujinimą perskaitykite gamintojo instrukcijas ir įsitikinkite, kad turite atsarginį planą, jei atnaujinimas nutrūktų.
- Jei įrenginys yra kritinis saugumui (serveriai, tinklo įrenginiai, automobiliai), rinkitės sprendimus su parašo patikra ir atstatymo galimybėmis.
Apibendrinant: įterptoji programinė įranga yra tarpinė grandis tarp aparatūros ir klasikinės programinės įrangos. Ji kontroliuoja, kaip įrenginys veikia, ir dažnai yra ta vieta, kur technologijos, saugumas ir funkcionalumas susitinka.