Firmware

Firmware (česky často nepřekládáno, případně označováno jako mikroprogramové vybavení) je specifická kategorie softwaru, která slouží k nízkoúrovňovému ovládání konkrétního elektronického hardwaru. Můžeme si ho představit jako absolutní základní „mozek“ nebo „instinkt“ každého digitálního zařízení.

Zatímco běžný software (např. webový prohlížeč nebo textový editor) je navržen tak, aby interagoval s uživatelem a plnil široké spektrum abstraktních úloh, firmware je pevně svázán s fyzickým zařízením, ve kterém je nahrán. Bez firmwaru by hardware byl jen zbytečnou hromadou křemíku, plastu a kovu – vůbec by nevěděl, jak má zapnout své obvody, jak číst data ze senzorů nebo jak komunikovat s vnějším světem.

Původ názvu a uložení

Slovo „firmware“ je složeninou slov firm (pevný, stálý) a ware (vybavení/zboží). Záměrně tak tvoří logický mezistupeň mezi Hardwarem (fyzickými komponentami, které nelze změnit) a Softwarem (programy, které lze snadno smazat a přepsat).

Historicky se firmware vypaloval do pamětí typu ROM (Read-Only Memory) nebo OTP (One-Time Programmable) přímo při výrobě v továrně a nebylo možné jej jakkoliv změnit. Pokud obsahoval chybu, musel se fyzicky vyměnit celý čip.

Dnes se firmware ukládá do přepisovatelných nevolatilních pamětí (paměti, které neztrácejí obsah po odpojení od napájení), nejčastěji do EEPROM nebo pamětí typu Flash. Díky tomu jej lze aktualizovat, i když je to proces mnohem riskantnější než instalace běžného softwaru.

Kde všude najdeme firmware?

Lidé si firmware nejčastěji spojují s počítači, ale ve skutečnosti se nachází téměř v každém moderním elektronickém zařízení:

Aktualizace firmwaru (Flashing)

Procesu přepsání starého firmwaru novější verzí se v IT hantýrce říká Flashing (z angl. flashování). Výrobci vydávají aktualizace ze tří hlavních důvodů:

  1. Opravy kritických chyb (Bug fixes): Například oprava chyby, která způsobovala náhodné odpojování Wi-Fi routeru.
  2. Zvýšení bezpečnosti: Uzavření zadních vrátek nebo zranitelností, které by mohli zneužít hackeři.
  3. Přidání nových funkcí: Například podpora pro nové typy procesorů na starší základní desce, nebo odemknutí nových funkcí fotoaparátu.

Riziko: Bricking (Zcihlovatění)

Aktualizace firmwaru je kritický proces. Pokud je běžný program aktualizován a dojde k výpadku proudu, operační systém obvykle nahlásí chybu a vy program prostě přeinstalujete.

Pokud však vypadne napájení ve chvíli, kdy se přepisuje firmware (nebo je stažen soubor určený pro jiný model zařízení), zařízení po restartu nebude vědět, jak nastartovat. Z drahého přístroje se tak stane nefunkční těžítko (anglicky brick = cihla). Tento stav je bez specializovaného hardwarového vybavení v servisu často nevratný. Moderní prémiové systémy (jako lepší základní desky) to řeší funkcí Dual BIOS – obsahují dva čipy, a pokud se aktualizace prvního nezdaří, systém automaticky nabootuje ze záložního.

Firmware vs. Ovladače (Drivers)

Tyto dva pojmy se často pletou, protože oba slouží k obsluze hardwaru. Je mezi nimi ale zásadní rozdíl:

Srovnání vrstev systémové architektury

Vrstva Charakteristika Příklad Fyzické uložení
Uživatelský Software Vysoce abstraktní, interaguje s uživatelem. Snadno vyměnitelný. Webový prohlížeč, MS Word HDD / SSD počítače
Operační systém Spravuje zdroje počítače (paměť, procesor) a zprostředkovává I/O operace. Windows, Linux, Android HDD / SSD počítače
Ovladač (Driver) Softwarový modul v OS, který překládá požadavky systému pro konkrétní hardware. NVIDIA GeForce Driver HDD / SSD (složky OS)
Firmware „Mozeček“ zařízení. Přijímá instrukce z ovladače a mechanicky/elektricky řídí hardware. UEFI, firmware disku Flash paměť na plošném spoji zařízení
Hardware Fyzické elektronické a mechanické součástky. Křemíkový čip, relé, tranzistory Fyzická realita