Oprogramowanie sprzętowe

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

Oprogramowanie sprzętowe, oprogramowanie układowe, oprogramowanie wbudowane, mikrooprogramowanie[1] (ang. firmware) – 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]

Ascher Opler użył terminu firmware w artykule Datamation w roku 1967[2]. Początkowo termin 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 wbudowanego w sprzęt 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]

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

Zobacz też[edytuj]

Przypisy

  1. Narodowy Fotokorpus Języka Polskiego. [dostęp 2017-06-05].
  2. Opler, Ascher. Fourth-Generation Software. „Datamation”. 13 (1), s. 22–24, styczeń 1967. 
  3. Firmware aparatu cyfrowego – co to jest?. 2003-05-16. [dostęp 2009-07-09].