Oprogramowanie sprzętowe

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Firmware)
Skocz do: nawigacja, szukaj

Oprogramowanie sprzętowe[1][2] (ang. firmware, inne określenia: oprogramowanie układowe[3][4], oprogramowanie wbudowane[5], mikrooprogramowanie[6][7]) – oprogramowanie zainstalowane na stałe w urządzeniu, zapewniające podstawowe procedury jego obsługi. Nowsze urządzenia posiadają często możliwość jego aktualizacji dzięki zapisaniu go na przykład w pamięci flash lub EEPROM.

Inną definicją oprogramowania sprzętowego (mikrokodu) jest kod poniżej systemu operacyjnego (a wręcz kodu maszynowego komputera) – przykładowo firmware karty sieciowej w przeciwieństwie do sterowników nie jest częścią systemu operacyjnego. Oprogramowanie układowe może być małych rozmiarów (jak w karcie sieciowej) lub stanowić wydzielony system (przykładowo kontrolerem napędów taśmowych 3490E-F01 jest serwer x86 pracujący pod kontrolą systemu operacyjnego Sinix – jednak z punktu widzenia systemu operacyjnego korzystającego z napędów kod ten realizuje zdefiniowane protokołem funkcje sprzętowe).

Reflektometr optyczny firmy Yokogawa podczas pomiarów długości światłowodu z widocznym na ekranie efektem pracy oprogramowania sprzętowego

Historia[edytuj | edytuj kod]

Ascher Opler użył terminu firmware w artykule Datamation w roku 1967[8]. Początkowo termin ten oznaczał zawartość zapisywalnego fragmentu pamięci CPU, zawierającej mikroprogram, który definiował i implementował zestaw instrukcji komputera, ponadto mógł być przeładowany w celu modyfikacji instrukcji, które procesor był w stanie wykonać. Pierwotnie firmware kontrastowało ze sprzętem komputerowym (CPU) i oprogramowaniem (standardowe instrukcje wykonywane przez CPU). Nie składało się ono z instrukcji maszynowych procesora, lecz z mikrokodu niższego poziomu odpowiedzialnego za implementację instrukcji. Oprogramowanie układowe istniało na „pograniczu” między sprzętem a oprogramowaniem, stąd powstała nazwa firmware. Z czasem znaczenie tego pojęcia poszerzyło się do wszystkich danych zapisywanych w pamięci ROM, w skład których wchodziły instrukcje procesora dla BIOS, programu rozruchowego lub aplikacji dedykowanych.

Do połowy lat 90. aktualizacje oprogramowania układowego przeważnie wiązały się z podmianą pamięci je zawierającej (zwykle były nimi układy scalone ROM). Pamięć flash umożliwiała aktualizację bez konieczności fizycznego wyjmowania układów scalonych. Błąd w trakcie procesu aktualizacji mógł permanentnie uszkodzić urządzenie; system jest na to narażony, gdy fragmenty pamięci flash – zawierające oprogramowanie „źródłowe” lub program aktualizujący – zostaną wyjęte i przeprogramowane. Jeżeli proces aktualizacji zostanie gwałtownie przerwany, oprogramowanie może przestać działać prawidłowo i tym samym uruchomienie urządzenia i wznowienie aktualizacji będzie niemożliwe. Aby tego uniknąć, pamięć flash powinna mieć zabezpieczoną sekcję tylko do odczytu, zawierającą oprogramowanie „źródłowe”. Wadą produkcyjną jest to, że oprogramowanie tylko do odczytu nie może być zmodyfikowane i musi być poddane bardzo dokładnym testom.

Przykłady urządzeń z oprogramowaniem sprzętowym[edytuj | edytuj kod]

Systemy preinstalowane w serwerach (np. ESXi na nośniku USB w serwerze) również są nazywane oprogramowaniem sprzętowym.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]