Firmware
Firmware, mikroprogramové vybavení je v informatice označení pro software, který slouží pro řízení nějakého vestavěného systému (embedded system). Firmware řídí například semafory, kalkulačky, počítačové díly (pevný disk, Wi-Fi čip, vypalovačka…), mobilní telefon, digitální fotoaparát, syntezátor atd.
Charakteristika
Termín firmware byl původně vytvořen za účelem kontrastu k vysokoúrovňovému softwaru, který může být vyměněn bez nahrazení hardwarové komponenty. Firmware je typicky spjat se základními nízkoúrovňovými operacemi, bez kterých by zařízení nebylo funkční. Firmware je také relativní pojem, protože většina vestavěných zařízení obsahuje firmware na více než jedné úrovni. Například operační systém pro mobilní telefon je označován jako firmware (např. Android, Windows Phone, iOS), ale samotný mobilní telefon obsahuje firmware pro komunikační čip mobilní telefonní sítě (tzv. radio),[1] firmware pro řízení bezdrátového Wi-Fi čipu, GPS čipu a podobně.
Původ názvu
Pojem firmware zavedl Ascher Opler v roce 1967 v článku Datamation.[2] Původně to znamenalo mikrokód umístěný ve speciální rychlé paměti, který realizoval instrukční sadu použitého procesoru. V původním významu tedy firmware sloužil k odlišení hardware (mikroprocesor), software (běžné programy v počítači) a firmware (kód řídící samotný mikroprocesor). Firmware nevyužíval klasické strojové instrukce, ale speciální mikroinstrukce použitelné jen na provádění firmware. Pojem firmware měl naznačit, že se vyskytuje na pomezí mezi hardware a software.
Později bylo označení „firmware“ rozšířeno na vše, co se ukládalo do paměti ROM, například kód BIOSu, bootstrap loadery nebo jiné specializované aplikace.
Až do poloviny 90. let byla aktualizace firmwaru realizována nahrazením paměťového média obsahujícího firmware (např. výměna ROM paměti). Později začala být využívána flash paměť, takže aktualizace byla realizována spuštěním speciálního programu, který novější verzi firmware zapsal do nevolatilní paměti (paměti, která svůj obsah zachová i po odpojení napájení).
Využití
Firmware je v současných elektronických zařízeních běžně používán. Nesprávně provedená aktualizace firmware může vést k tzv. „bricku“ (zařízení je nadále nepoužitelné).
Osobní počítače
V osobních počítačích je firmware často používán. Základním firmwarem v počítači je BIOS, který dnes zajišťuje zejména start počítače. BIOS je možné aktualizovat speciálním programem. Aktualizace umožňuje (kromě oprav chyb) například použití novějšího modelu procesoru.
Počítačové periférie
Firmware je používán v počítačových perifériích, jako je například optická mechanika nebo pevný disk. Například změnou firmware v optické mechanice se může uživatel počítače pokusit obejít regionální ochranu na CD/DVD.
Spotřební zboží
V roce 2010 většina přenosných hudebních přehrávačů podporuje upgrade firmwaru. Některé firmy používají aktualizace firmwaru pro vložení nových přehrávatelných souborových formátů (enkódování); tento způsob použila například jihokorejská společnost iriver pro soubory spadající pod Vorbis. Další funkce které se mohou změnit spolu s aktualizacemi firmwaru jsou GUI či dokonce životnost baterie. Většina mobilních telefonů má Firmware Over The Air upgradovací schopnost pro stejné důvody. Některé mohou být dokonce upgradovány pro zvýšení recepce či kvality zvuku, což jen podtrhuje fakt, že firmware je používán v souboru produktů na více než jen jednom levelu (v tomto případě mikrokontroler podobný CPU vs. digitální procesor).
Automobily
Od roku 1996 používá většina automobilů speciální počítač (tzv. řídící jednotka) a různé senzory nejen pro řízení chodu motoru, ale i pro detekování závad (například pokles tlaku v pneumatice, chyba airbagu a podobně). V roce 2010 jsou používány řídící jednotky i pro doplňující systémy, jako je ABS, palubní deska, vyhřívání sedadel atd. Aktualizaci firmware provádějí certifikované servisy speciálními přístroji, které se připojují na servisní konektory.
Definice IEEE
Ústav elektrotechniky a elektroniky (IEEE), Standardní slovník pojmů softwarového inženýrství, Std 610.12-1990, definuje firmware takto:
- "Kombinace hardwarového zařízení a počítačových instrukcí a dat, které jsou v zařízení umístěny jako software jen pro čtení.
- Poznámky: (1) Tento termín je někdy používán s odkazem pouze na hardwarové zařízení, nebo pouze na počítačové instrukce nebo data, avšak tyto významy jsou zastaralé. (2) Nejasnosti kolem tohoto termínu vedly některé lidi k návrhu, že je třeba se tomu vyhnout úplně. "
Příklady firmware
- BIOS u PC
- operační systémy a základní uživatelské aplikace v kapesních počítačích
- firmware mobilů
- firmware tiskáren, plotterů, atd.
- firmware kalkulaček, translátorů, organizérů ap.
- firmware u složitějších měřicích přístrojů
- firmware agregátů v automobilech (řídící jednotka, vstřikování, ABS, klimatizace, …)
- firmware embedded zařízení obecně
- firmware grafické karty, mechaniky, pevného disku,...
Flashování
Flashování[3] zahrnuje proces přehrání současného firmwaru či dat na EEPROM modulu umístěném v elektronickém zařízení daty novými.[3] Tato operace může být provedena za účelem vylepšení (upgradu) zařízení[4] nebo pro změnu poskytovatele služeb souvisejících se službami a funkcí zařízení, jako je změna od jednoho mobilního operátora k jinému nebo instalace nového operačního systému. Pokud je firmware upgradovatelný, je tento úkon často proveditelný přes flashovací program výrobce, kde je často povoleno ozálohovat starý firmware před samotnou instalací, a tak v případě, že se proces nahrávání nezdaří může být původní firmware obnoven zpět. Z bezpečnostních důvodů a z vůle výrobců však stále častěji není možné provést ponížení firmwaru (tzv. downgrade) za účelem využití bezpečnostních chyb pro ovládnutí softwaru (např. přepnutí do privilegovaného režimu).
Hackování firmwaru
Někdy třetí strany vytvoří neoficiální novou nebo upravenou ("postprodukční") verzi firmwaru za účelem poskytnutí nových funkcí nebo pro zpřístupnění výrobcem skrytých funkcionalit produktu. Příklady zahrnují:
- Rockbox pro MP3 přehrávače.
- CHDK[5] a Magic Lantern[5] pro digitální fotoaparáty Canon.
- Velké množství projektů upravených firmwarů pro bezdrátové routery, například:
- Firmware, který umožní DVD přehrávačům být region-free.
- SamyGO, pravený firmware pro televize Samsung.[6]
- Spousty homebrew projektů pro herní konzole. Ty často otevírají všeobecné možnosti počítačových funkcí v předtím limitovaných zařízeních (například spuštění hry Doom na iPodech).
Většina upravených firmwarů je šířena zdarma a je zároveň open source softwarem.
Tyto úpravy většinou využívají pro spuštění a instalaci možností upgradu firmwaru na zařízeních samotných. Některé se však musí uchýlit k exploitům aby se spustily, protože výrobci se snaží uzamknout hardware před spuštěním nepodepsaného kódu.
Reference
- What is radio firmware?
- Opler, Ascher. Fourth-Generation Software. Datamation. January 1967, s. 22–24. (anglicky)
- Flashing Firmware [online]. Tech-Faq.com [cit. 2011-07-08]. Dostupné online.
- HTC Developer Center [online]. HTC [cit. 2011-07-08]. Dostupné v archivu pořízeném dne 2011-04-26.
- Custom Firmware Rocks! [online]. 2009-08-05 [cit. 2009-08-13]. Dostupné online.
- SamyGO: replacing television firmware [online]. LWN.net, 2009-11-14 [cit. 2009-12-11]. Dostupné online.