Oprogramowanie układowe

W systemie komputerowym , o firmware (lub oprogramowania , oprogramowania , mikrokodu , wewnętrzne oprogramowanie lub nawet wbudowane oprogramowanie ) jest programem zintegrowane w sprzęt komputerowy ( komputer , kopiarka , PLC ( API , APS ), dysk twardy , ruter , aparat cyfrowy , itp.), aby działał.

Pochodzenie terminu

Angielskie oprogramowanie sprzętowe pochodzi od firmy („odporność” lub „firma” w języku angielskim) i oprogramowania ( oprogramowanie , program komputerowy). Firmowy jest stanem pośrednim między miękkim („miękkim”) a twardym (odniesienie do sprzętu lub sprzętu komputerowego ). Pierwszym oprogramowaniem układowym był mikrokod, a jego użycie rozszerzyło termin na dowolną formę oprogramowania podstawowego, przechowywanego w pamięci ROM odpornej na awarie zasilania .

Opis

Oprogramowanie układowe umożliwia ewolucję sprzętu (poprzez aktualizacje ), integrację nowych funkcji bez konieczności całkowitej zmiany projektu sprzętu .

Pamięć , w której firmware zamieszkuje może być:

W większości przypadków to oprogramowanie zarządza wewnętrznym funkcjonowaniem systemu elektronicznego .

Ogólnie oprogramowanie układowe łączy w sobie zalety oprogramowania, które można modyfikować, i sprzętu, który jest bardziej wydajny. Z drugiej strony oprogramowanie układowe współdziała z komponentami sprzętowymi, których nie można już zmienić po wyprodukowaniu, co zmniejsza potrzebę ich aktualizacji.

Można zauważyć, że:

Jednak dwa poprzednie przypadki są czasami spełnione, na przykład, gdy pamięć ROM urządzenia zawiera część systemu BIOS komputera, a także oprogramowanie układowe przeznaczone do zarządzania tym urządzeniem. Nawiasem mówiąc, umożliwia to pomiar stopnia niezależności urządzenia peryferyjnego od typu komputera głównego, ponieważ każde rozszerzenie wyposażone w BIOS komputera może być używane tylko na komputerze tego typu, podczas gdy te, które używają tylko oprogramowania układowego, są niezależne od komputera głównego. Tak jest na przykład w przypadku czytników / nagrywarek CD / DVD IDE, które są zgodne ze standardem ATAPI i dlatego działają na dowolnej maszynie IDE (PC, Mac itp.)

Architektura oprogramowania układowego

Znanych jest kilka architektur w zależności od obszaru zastosowania oprogramowania układowego , począwszy od komputerów lub sprzętu o dużej użyteczności, ale także w zależności od rodzaju oprogramowania układowego . Różne architektury oprogramowania układowego są oparte na szynach wejścia-wyjścia. Dlatego należy sprecyzować, że nie ma standardowej architektury ani ustalonego modelu architektury oprogramowania sprzętowego .

Oprogramowanie układowe , podobnie jak wszystkie systemy pamięci, ogólnie charakteryzuje się rozmiarem pamięci, która indukuje flashowanie czasu, przepływem transferu i metodą aktualizacji. Oprogramowanie układowe można podzielić na dwie główne grupy: typ „binarny”, skompresowany lub nie, oraz typ archiwum .

W systemach pokładowych oprogramowanie układowe jest ogólnie zorganizowane tak, jak pokazano na rysunku obok. Podczas procesu uruchamiania obsługiwany jest program ładujący ( bootloader w języku angielskim). Można go uruchomić jako pierwszy, gdy system jest włączony. Rdzeń systemu operacyjnego jest tuż za nim.

Program ładujący inicjuje niezbędny sprzęt i przygotowuje środowiska oprogramowania operacyjnego. W szczegółach dzieli proces ładowania na dwie części. Krok 1 jest ściśle powiązany ze sprzętem.

W pozostałej przestrzeni programy aplikacji są przechowywane i ogólnie uporządkowane według systemu plików i pamięci RAM. Przed rozpoczęciem kroku 2, bootloader zwykle sprawdza pierwszy kod 4  kb załadowany przez sprzęt zgodnie z opisanym procesem uruchamiania.

Następnie zostanie załadowany i uruchomiony krok 2. Ten krok umożliwia uruchomienie bardziej zaawansowanych funkcji. Bootloader inicjuje różne potrzeby sprzętowe (porty, wejścia i wyjścia). Następnie załaduje i uruchomi jądro systemu odpowiedzialne za zarządzanie zasobami systemu, takimi jak różne procesy, zarządzanie pamięcią. W ten sposób system jest uruchamiany, a aplikacje mogą być uruchamiane w oparciu o wartości inicjalizacyjne.

Aktualizacja

Końcowy użytkownik zazwyczaj nie mają bezpośredniego dostępu do oprogramowania , ale czasami może go zmodyfikować poprzez zainstalowanie aktualizacji do skorzystania z ulepszeń lub błędów poprawek . Aby to zrobić, oprogramowanie układowe musi znajdować się w pewnych typach „reprogramowalnych” pamięci ROM, najczęściej jest to EEPROM lub, od połowy lat 90., pamięć flash (to znaczy EEPROM).

bezpieczeństwo

Oprogramowanie układowe może być celem złośliwych działań, które mogą uniemożliwić działanie urządzenia lub użyć go do włamania się do sieci. Podczas EUsecWest 2008 Rich Smith przedstawił możliwość przeprowadzenia permanentnego ataku typu „odmowa usługi” poprzez lukę w zabezpieczeniach systemów aktualizacji oprogramowania sprzętowego słabego sprzętu.

Jeśli taka usterka może zostać wykorzystana w celu przeprowadzenia trwałego ataku typu „odmowa usługi”, wówczas możliwe jest wykorzystanie tej luki w celu wprowadzenia backdoora i przedostania się do systemu informatycznego. Często celem takich ataków jest stale działający sprzęt.

Przykłady

BIOS

BIOS obecny w PC typu komputeryfirmware .

EFI

Firmware EFI (z angielskim interfejsem Extensible Firmware ) są wymagane, aby zastąpić BIOS na płycie głównej w komputerze , ponieważ mają one proste programowanie BIOS nie.

Wadą jest dodanie dodatkowej warstwy między sprzętem a użytkownikiem, kompensowanej większą szybkością procesorów i pamięci.

Inne przykłady

Uwagi i odniesienia

  1. „  firmware  ” , Le Grand Dictionnaire terminologique , Office québécois de la langue française (dostęp 22 lutego 2021 ) .
  2. French language enrichment Commission , „  microprogramme  ” , FranceTerme , Ministerstwo Kultury (dostęp 22 lutego 2021 ) .
  3. (en) [1] , Hongfei Yin, IEEE 2011, s.  1190 .
  4. John Bellardo, 12th USENIX Security Symposium, 4-8 sierpnia 2003, Washington, DC, USA, str.  3 .
  5. (w) Trwały atak typu „  odmowa usługi  ” sabotuje sprzęt w witrynie darkreading.com z dnia 19 maja 2008 r.
  6. "Oprogramowanie sprzętowe sprzętu: czy trzeba zabezpieczyć?" » , Na blogs.orange-business.com - dostęp 18 października 2012.

Zobacz też