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í:
- Bílá elektronika a domácnost: Mikrovlnné trouby, pračky, kávovary, dálková ovládání od televize. Firmware zde řídí jednoduché úkony (např. odečítání času na displeji a sepnutí relé ohřevu).
- Počítačové komponenty: Pevné disky (HDD/SSD) mají svůj vlastní, velmi složitý firmware, který řídí ukládání dat do paměťových buněk a maskování vadných sektorů. Dále jej mají grafické karty (tzv. VBIOS), síťové karty, myši i klávesnice.
- Základní desky (PC): Zde se nachází nejznámější firmware vůbec – BIOS (Basic Input/Output System) nebo jeho modernější nástupce UEFI (Unified Extensible Firmware Interface). Jeho úkolem je po zapnutí počítače otestovat hardware (POST) a předat řízení operačnímu systému.
- Síťové prvky: Domácí Wi-Fi routery obsahují komplexní firmware (často postavený na ořezaném jádře Linuxu), který zajišťuje směrování paketů a bezpečnostní firewall.
- Automobily: Moderní auta obsahují desítky samostatných řídicích jednotek (ECU) s vlastním firmwarem pro řízení motoru, brzd (ABS), airbagů nebo infotainmentu.
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ů:
- Opravy kritických chyb (Bug fixes): Například oprava chyby, která způsobovala náhodné odpojování Wi-Fi routeru.
- Zvýšení bezpečnosti: Uzavření zadních vrátek nebo zranitelností, které by mohli zneužít hackeři.
- 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:
- Firmware žije fyzicky uvnitř zařízení (na čipu na grafické kartě, v routeru, v tiskárně). Běží nezávisle na hlavním operačním systému.
- Ovladač (Driver) žije v operačním systému (ve Windows, Linuxu, macOS) na pevném disku počítače. Slouží jako překladatel – vysvětluje operačnímu systému Windows, jak má s tiskárnou nebo grafickou kartou mluvit. Ovladač tedy posílá instrukce, které následně zpracovává firmware daného zařízení.
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 |
