Embedded software ( anglicky firmware, fw ) - obsah energeticky nezávislé paměti libovolného digitálního výpočetního zařízení - mikrokalkulátoru , mobilního telefonu , GPS navigátoru atd., který obsahuje jeho program.
Obraz navržený k zápisu do paměti odpovídajícího zařízení za účelem aktualizace jeho firmwaru se někdy nazývá slovo „firmware“. Slovo "firmware" také odkazuje na skutečný proces zápisu tohoto obrázku do energeticky nezávislé paměti zařízení. Takové flashování paměti se provádí při výrobě zařízení různými způsoby, například instalací paměťového čipu s předem nahraným obsahem („sešitým“) nebo již obvodovým programováním čipu (například mikrokontroléru ) . nainstalované v zařízení pomocí speciálního programátoru .
Některá moderní zařízení umožňují výměnu firmwaru ("blikání"). Způsoby takového „blikání“ mohou být různé: od fyzické výměny paměťového čipu po přenos dat bezdrátovými kanály.
Termín „firmware“ vznikl v 60. letech 20. století, kdy se v sálových počítačích používala paměť s magnetickým jádrem . Paměťová zařízení pouze pro čtení (ROM) používala jádra ve tvaru W a U. Jádra ve tvaru W měla mezeru asi 1 mm, kterou byl drát položen. Pro záznam binární "1" byl drát umístěn do jednoho jádra jádra a pro záznam "0" - do jiného. V jádru o výšce 14 mm bylo umístěno 1024 vodičů, což odpovídalo 1 K datu jednoho výboje. Práce probíhaly ručním vytahováním drátu za pomoci „tužky“, z jejíhož hrotu se drát vytahoval, a tabulek firmwaru. Při takové usilovné a zdlouhavé práci vznikaly chyby, které byly zjištěny na speciálních zkušebních stolicích. Oprava chyby byla provedena odříznutím chybného vodiče a nahrazením nového.
Počátkem 70. let se objevila jádra ve tvaru U, která umožnila použít automatické stroje pro firmware. Firmware již nebyl prováděn v ROM zařízení, ale ve svazcích po 64, 128 nebo 256 drátech. Data určená k šití byla do stroje zadána pomocí děrných štítků. Na speciálním zařízení byly ze stroje odstraněny postroje, svázány nitěmi a konce drátů byly zapájeny do bloků. Poté se svazky vejdou do bloku ROM. Jak při ručním šití, tak při práci na šicím stroji byla vyžadována přesnost a dobrý zrak, takže na šití pracovaly mladé dívky.
V 80. letech 20. století začal být termín "firmware" nahrazován pojmem "burn", což bylo způsobeno příchodem ROM čipů s vypalitelnými nichromovými nebo silikonovými propojkami . S novějšími technologiemi se pojem „vypalování“ přestal používat a pojem „firmware“ zůstal hovorovým označením jak pro proces zápisu dat do mikroobvodu, tak pro použití ve vztahu k datům samotným (včetně softwaru).
V současné době je obecně přijímán termín „vestavěný software“ nebo „software vestavěného výpočetního systému “ . Toto použití je používáno v oficiálních zdrojích [1] [2] , vzdělávacích institucích [3] a mezi renomovanými vývojáři hardwaru [4] [5] a softwaru [6] .
Ve vývojářských kruzích se někdy používá termín „firmware“ nebo „firmware“ [7] . V takovém případě je synonymem s výrazy „firmware“ a „vestavěný software“, ale může být zaměněn s výrazy „firmware“ a „ mikrokód “, které se týkají programů v procesorech, které samy implementují svou instrukční sadu.
V angličtině se v praxi používají dva termíny – „ firmware “ a „ embedded software “ . Termín "vestavěný software" se vztahuje na programy uvnitř zařízení, která nejsou obvykle považována za počítače a jsou vestavěnými systémy ( angl. embedded systems ), to znamená, že jsou součástí jiného, složitějšího zařízení, jehož činnost řídí . zabudován do něj. Termín „firmware“ je obecnější a používá se jako synonymum pro „vestavěný software“ a ve vztahu k programům neembedded zařízení (například dálková ovládání ), počítačovému hardwaru (například BIOS počítače ), programům pro mobilní telefony. a počítačích automobilů [8] . Mezi rusky mluvícími vývojáři se takové rozdělení terminologie nepraktikuje, termíny „firmware“ a „embedded software“ se používají stejně pro vestavěné [3] [6] i jiné [1] [2] typy systémů. Uvedené ruské výrazy v tomto smyslu obecně odpovídají anglickému výrazu „firmware“, přičemž výraz „embedded software“ je v ruské praxi blíže výrazu „embedded systems software“.
Vestavěný software je přítomen všude tam, kde se používají mikrokontroléry a mikroprocesory : v mobilních telefonech, fotoaparátech, měřicích přístrojích, televizorech, platebních kartách atd.
Zařízení různých schopností a ceny se často liší pouze verzemi firmwaru. Verze firmwaru je identifikována číslem šarže hardwaru nebo jinými specializovanými identifikátory. Někdy je verze firmwaru změněna výrobcem bez upozornění spotřebitele.
Známým příkladem vestavěného softwaru je BIOS , který je dodáván se základní deskou počítače a poskytuje počáteční přípravu počítače ke spuštění operačního systému.
Vestavěný software může být vytvořen od začátku pro tento konkrétní typ zařízení nebo může být založen na hotovém operačním systému, obvykle open source. Takže pro malá zařízení se někdy používá RTOS . Kvůli levnější paměti v některých zařízeních se jako firmware začal používat operační systém GNU/Linux .
K psaní zdrojového kódu programů se používají především jazyky assembleru a C. Programovatelné logické čipy ( FPGA ) používají jazyky jako Verilog a VHDL .
Firmy – výrobci zařízení sledují prevenci krádeží jejich vestavěného softwaru.
Licenční smlouva se spotřebitelem zakazuje extrahování a studium „firmwaru“ tak či onak:
Některé společnosti ( Microchip , Atmel atd.) vyrábějí mikrokontroléry s vestavěnou programovatelnou pamětí, takže program na nich napsaný již nelze číst běžnými prostředky (ochrana proti čtení). Aby se takové ochraně obešly, jsou konkurenční firmy nuceny používat speciální drahé vybavení, jako jsou elektronové mikroskopy .