Firmware

Oprogramowanie zapisane na stałe w pamięci urządzenia, sterujące jego działaniem na niskim poziomie. Występuje m.in. w płytach głównych, dyskach i routerach.

Firmware to oprogramowanie zapisane na stałe (albo prawie na stałe) w pamięci samego urządzenia, które steruje jego pracą na najniższym poziomie — zanim w ogóle wejdzie do gry system operacyjny czy Twoje aplikacje. Mieszka zwykle w pamięci nieulotnej, najczęściej typu flash, dzięki czemu nie znika po odłączeniu zasilania. Znajdziesz je praktycznie wszędzie: na płycie głównej, w dyskach SSD i HDD, w routerze, w karcie graficznej, w klawiaturze mechanicznej, a nawet w myszce i ładowarce. To taka warstwa pośrednia między czystym sprzętem a software’em, który znasz na co dzień.

Jak to działa i do czego służy

Firmware mówi sprzętowi, co ma robić zaraz po włączeniu prądu: jak się zainicjalizować, jakie komponenty wykryć i jak się z nimi komunikować. W komputerze rolę tę pełni UEFI (kiedyś BIOS) — to on uruchamia testy POST, znajduje dysk z systemem i przekazuje mu pałeczkę. W dysku SSD firmware decyduje o tym, jak rozkładane są zapisy między komórki pamięci (wear leveling) i jak działa funkcja TRIM.

Kluczowa sprawa: firmware bywa aktualizowalny. Producent może wypuścić nową wersję, która łata dziury bezpieczeństwa, poprawia kompatybilność albo dorzuca funkcje. Ten proces to flashowanie — nadpisanie zawartości pamięci nową paczką.

Przykład z praktyki

Klasyk z domowej sieci: bierzesz tani router i wgrywasz na niego OpenWrt — otwarty firmware, który zamienia plastikowe pudełko w pełnoprawny mały serwer z dostępem przez SSH. Po zalogowaniu zarządzasz pakietami menedżerem opkg, np. opkg update && opkg install luci, żeby dograć interfejs webowy. W serwerowniach z kolei standardem jest aktualizacja firmware kontrolerów dysków czy kart sieciowych, bo stara wersja potrafi gubić pakiety albo gubić dane.

Częste błędy i mity

Największy klasyk to bricking, czyli zamiana sprzętu w cegłę. Jeśli podczas flashowania zabraknie prądu albo wgrasz plik przeznaczony dla innego modelu, urządzenie może już się nie podnieść. Dlatego: nie aktualizuj firmware na padającej baterii i zawsze sprawdzaj dokładny numer modelu.

Mit do obalenia: „firmware jest niezmienne, bo to przecież sprzęt”. Nie jest — to nadal kod, który da się podmienić, a więc i zaatakować. Złośliwy firmware (np. w UEFI) przeżyje reinstalację systemu, bo siedzi piętro niżej niż dysk z Windowsem.

Pojęcia powiązane

BIOS, UEFI, bootloader, flashowanie, pamięć flash, firmware open source (OpenWrt, DD-WRT), sterowniki (driver) oraz embedded systems.