Firmware

Firmware eli laiteohjelmisto on tietoteknisen laitteen toimintaa ohjaava ohjelmisto tai sen osa, joka huolehtii laitteen perustoiminnoista. Firmware on joukko käskyjä laitteen omalla käskykannalla ja kertoo miten laite kommunikoi muiden komponenttien kanssa. Firmware voi olla ROM-muistissa tai päivitettävässä flash-muistissa. Firmware ei ole sama kuin käyttöjärjestelmän laiteajuri.

Kyseessä on siis tavallaan laitteiston ja ohjelmiston yhdistelmä. Suomenkieliseksi termiksi on ehdotettu myös laitelmistoa, mutta se ei ole vakiintunut käyttöön. Sen sijaan joskus käytetään epätäsmällistä suomennosta varusohjelma, jonka alakäsitteistöön kuuluvat sekä alkulatausohjelma (esimerkiksi BIOS) että käyttöjärjestelmä (tietokoneen käyttöjärjestelmä ei kuitenkaan ole firmwarea, sillä se on suhteellisen helposti päivitettävissä ja vaihdettavissa).

Alun perin firmware tarkoitti lähinnä suorittimen mikro-ohjelmaa. Tällainen ohjelma ei ollut muutettavissa ainakaan tavanomaisin keinoin, mistä johtuu sanan alkuosa firm ’kiinteä’. Vähitellen firmware on alkanut tarkoittaa ohjelmistoa, joka on asennettu pysyvästi laitteen omaan muistiin erotukseksi kiintolevyyn tai muuhun massamuistiin tallennetuista ohjelmista. Periaatteessa kyse on sellaisesta ohjelmasta, joka toimii laitteiston (hardware) ja ohjelmiston (software) välissä.

Toiminta 

Firmware-ohjelmalle on tyypillistä, että se on valmiiksi keskusmuistia vastaavassa muistissa ja toimii suoraan ilman alustusta, toisin kuin massamuistiin tallennettu ohjelma, joka pitää ennen suorittamista siirtää keskusmuistiin ja jolle on varattava ja alustettava muistitila. Käytännössä jokaisessa tietokoneessa on ainakin jonkin verran firmwarea, joka käynnistysvaiheessa hakee massamuistista varsinaisen suoritettavan ohjelmiston tai käyttöjärjestelmän käynnistyskoodin. Firmware voi huolehtia myös laitteiston testauksesta ja tarjota palveluja sovellusohjelmille.

Joissain tapauksissa laitteen koko ohjelmisto on luokiteltavissa firmwareksi. Tällöin on tavallisesti kyse sulautetusta järjestelmästä. Firmware huolehtii esimerkiksi digisovittimen tai matkapuhelimen perustoiminnoista.

Päivitys 

Ohjelmistopäivityksillä korjataan toiminnoissa ilmenneitä virheitä, mutta päivitys voi myös lisätä uusia ominaisuuksia. Joidenkin laitteiden, kuten autojen ajotietokoneiden, firmware voidaan päivittää vain erikoishuollossa.

Alun perin firmware ei ollut ohjelmallisesti muutettavissa, aina ei edes laitteistotasolla muuten kuin vaihtamalla koko laitteisto toiseksi. Tyypillisesti päivitys tehtiin siten, että ohjelman sisältävät haihtumattomat muistipiirit (PROM tai EPROM) vaihdettiin toisiin. Tämä edellytti laitteen avaamista ja pahimmillaan vanhan piirin juotoksien avaamista ja uuden juottamista sen tilalle. Yleensä tällaiset muistit tosin varustettiin sellaisella kannalla, että vaihtaminen onnistui ruuvitaltalla, mutta joka tapauksessa vaihtaminen oli kallista, joten muutoksia tehtiin vain hyvin painavista syistä.

Kun sähköisesti uudelleenohjelmoitavat haihtumattomat muistit tulivat sekä teknisesti että taloudellisesti kilpailukykyisiksi, niitä alettiin käyttää firmwaren tallentamiseen. Tämä mahdollisti firmwaren muuttamisen jälkeenpäin ohjelmallisesti. Päivitettävä firmware kuuluu useimmiten johonkin sulautettuun järjestelmään, mutta päivitystarve voi koskea myös tietokoneita, joiden käynnistyksestä ja perustoiminnoista vastaava bios tai oheislaitteiden firmware voidaan joskus joutua päivittämään. Parhaassa tapauksessa laite voi huolehtia päivityksestä täysin omatoimisesti, kuten osa digisovittimista tekee, jos päivitystiedot välittyvät televisiosignaalin mukana. Yleensä päivittäminen vaatii kuitenkin käyttäjältä toimenpiteitä ja perehtymistä.

Firmwaren päivitys voi olla herkkä sähkökatkoille tai muille häiriöille. Häiriöherkkyys riippuu sekä laitteistosta että päivittävästä ohjelmasta, mutta pahimmillaan laitteen päivitys voi jäädä puolitiehen, niin että vanha ohjelma on poistunut mutta uusi ei ole vielä tallentunut tilalle. Tällöin laitteessa ei ole enää sellaista ohjelmaa, jolla tilanteen voisi korjata. Erikoishuollossa voidaan sekaisin mennyt muisti ohjelmoida ulkoisella laitteella ja näin saada laite vielä toimivaksi.

Lähteet

Aiheesta muualla 

 Topfield TF5X00 -digisovittimen käyttöohje Wikikirjastossa

Ohjelmistotyypit
Tietokonetekniikka
Seulonnan keskeiset artikkelit