Mikä on firmware? 

Sanalla firmware tarkoitetaan laitteen haihtumattomaan muistiin talletettua ohjelmistoa tai sen osaa. Suomenkieliseksi termiksi on ehdotettu laiteohjelmaa ja jopa laitelmistoa, mutta kumpikaan ei ole laajassa käytössä.

Sanan merkitys on laajentunut alkuperäisestä, jolloin se tarkoitti lähinnä suorittimen mikro-ohjelmaa. Tällainen ohjelma ei ollut muutettavissa - ei ainakaan normaalein keinoin, joten tästä sanan etuosa, "firm" (kiinteä). Vähitellen sanalla on alettu tarkoittaa sitä ohjelmistoa, joka on talletettu (pysyvästi) laitteen muistiin erotukseksi kiintolevylle tai muulle massamuistille sijoitetusta ohjelmasta. Periaatteessa on kyse sellaisesta ohjelmasta, joka on laitteiston (hardware) ja ohjelmiston (software) välissä.

Käyttötarkoitus

Käytännössä jokaisessa tietokoneessa on ainakin jonkin verran firmware-termin tarkoittamaa ohjelmaa. Vähimmillään tämä ohjelma hakee käynnistysvaiheessa massamuistilta varsinaisen suoritettavan ohjelmiston tai käyttöjärjestelmän käynnistyskoodin, mutta se voi huolehtia myös laitteiston testauksesta ja tarjota palveluja itse sovellusohjelmalle. Joissain tapauksissa laitteen koko ohjelmisto kuuluu termin piiriin. Tällöin on tavallisesti kyse sulautetusta järjestelmästä.

Tavallisesti massamuistilla oleva ohjelma ei ole aivan täsmälleen siinä muodossa, että sitä voitaisiin suoraan suorittaa. Ohjelma tulee siirtää ensin keskusmuistiin, ja sen käynnistyksen yhteydessä ohjelmalle varataan muistitila ja alustetaan se. Firmware-ohjelmalle on tyypillistä, että se on valmiiksi keskusmuistia vastaavassa muistissa, ja se voidaan suorittaa sieltä suoraan ilman alustustoimenpiteitä. Vaikka kuvaus ei olekaan ehdoton, se korostaa sitä, että mikä tahansa ohjelma ei voi teknisestikään kuulua tähän luokkaan.

Jos esimerkkinä käytetään digisovitinta tai matkapuhelinta, on selvää, että laitteen perustoiminnot kuuluvat firmware-termin alle. Useimmissa laitteissa, varsinkin hinnaltaan halvimmissa, tämä kattaakin koko laitteiston ohjelmat. Joihinkin laitteisiin voidaan asentaa perusohjelman lisäksi kolmannen osapuolen tekemiä ohjelmia. Nämä eivät kuulu firmware-käsitteen alle, vaan ovat sovellusohjelmia.

Firmwaren muuttaminen

Alun perin firmware ei ollut ohjelmallisesti muutettavissa, aina ei edes laitteistotasolla muuten kuin vaihtamalla koko laitteisto toiseksi. Tyypillinen 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 avaamisen ja uuden juottamisen sen tilalle. Tosin tällaiset muistit yleensä varustettiin sellaisella kannalla, että vaihtamiseen ei tarvittu ruuvitalttaa monimutkaisempaa laitetta. Vaihtaminen tällä tavalla on kuitenkin hyvin kallista, eikä muutoksia tehty kuin hyvin painavista syistä.

Kun sähköisesti uudelleenohjelmoitavat haihtumattomat muistit tulivat sekä teknisesti että taloudellisesti kilpailukykyisiksi, alettiin niitä käyttää firmwaren tallentamiseen. Tämä mahdollisti firmwaren muuttamisen jälkeenpäin ohjelmallisesti, mikä on tehnyt firmwaren päivittämisestä ainakin aktiivisimmille käyttäjille arkipäivää. Yleensä päivitys onnistuukin suhteellisen helposti, mutta vaatii silti normaalikäyttäjää enemmän osaamista.

Useimmiten itse päivitettävä firmware on jokin suhteellisen tuore tietotekninen laite kuten digisovitin tai navigaattori. Parhaimmillaan laite voi huolehtia päivityksestä täysin omatoimisesti kuten osa digisovittimista tekee, jos päivitystiedot lähetetään televisiosignaalin mukana. Yleensä päivittäminen vaatii kuitenkin käyttäjän toimenpiteitä, katso esimerkiksi Topfield TF5X00 Wikikirjastossa

Päivitystarve voi tulla vastaan myös tietokoneilla, joissa käynnistyksestä ja perustoiminnoista vastaava BIOS voidaan joutua päivittämään. Tämä on suhteellisen harvinaista edellisiin esimerkkeihin verrattuna, mutta on tullut monelle PC-käyttäjälle vastaan esimerkiksi siinä tilanteessa, kun vanhaan koneeseen on ostettu uusi, suuri kiintolevy. Myös tietokoneen oheislaitteiden firmware voidaan joutua vaihtamaan.

Osa päivitettävistä laitteista voidaan päivittää vain huollossa. Tällaisia ovat esimerkiksi autojen ajotietotietokoneet.

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, jolloin vanha ohjelma on jo poistettu eikä uutta ole vielä saatu talletettua. Lopputuloksena laitteessa ei ole enää sellaista ohjelmaa, jolla tilanteen voisi korjata. Huollossa voidaan sekaisin mennyt muisti ohjelmoida ulkoisella laitteella ja saada näin laite vielä toimivaksi.

Päivityksillä korjataan toiminnoissa löytyneitä virheitä, mutta päivitys voi tuoda myös uusia ominaisuuksia mukanaan, aivan kuten tavallisen ohjelman uuden version käyttöönotto korjaa virheitä ja tuo uusia ominaisuuksia.