Używam oprogramowania układowego w kontekście systemu Linux.
Rozumiem, że oprogramowanie układowe i sterownik są takie, że oprogramowanie układowe to kod działający na gołym metalu urządzenia, takiego jak układ scalony Bluetooth, kontroler klawiatury, karta graficzna lub mikrokontroler jednofunkcyjny. Oprogramowanie układowe udostępnia interfejs systemu operacyjnego do korzystania z jego usług.
Dla porównania, sterownik jest oprogramowaniem używanym przez jądro do komunikacji z wcześniej wspomnianymi interfejsami dostarczanymi przez oprogramowanie układowe. Tak więc sterownik wideo, sterownik klawiatury, sterownik radia Bluetooth.
Dlaczego więc wciąż czytam o plikach oprogramowania Linux, które należy zainstalować (np. Tutaj ). Czy są one przesyłane do sprzętu? Czy te pliki są używane przez jądro? Jakie znaczenie ma oprogramowanie układowe w tym kontekście?
Odpowiedzi:
W kontekście jądra Linux oprogramowanie układowe działa na innym procesorze w systemie, np. Kontrolerze bezprzewodowym, GPU, kontrolerze SCSI ... To oprogramowanie było przechowywane w pamięci ROM (różnych typów) podłączonej do odpowiedniego kontrolera , ale aby obniżyć koszty i uprościć aktualizacje, kontrolery zwykle polegają na systemie operacyjnym hosta, aby załadować dla nich oprogramowanie układowe.
Tak więc pliki oprogramowania układowego nie są używane przez jądro, są one ładowane przez jądro na inne elementy sprzętu. To właśnie sprawia, że w systemach FLOSS nie ma akceptacji, aby mieć oprogramowanie bez kodu źródłowego: argumentem jest, że nie działa ono na głównym procesorze, ale na innym urządzeniu.
źródło
/lib/firmware
(liczba pojedyncza, nie/etc
) zawiera oprogramowanie wewnętrzne używane przez inne urządzenia. Wiele urządzeń (w tym kontrolery bezprzewodowe i procesory graficzne) potrzebuje oprogramowania układowego dostarczonego przez system hosta, nawet jeśli może mieć własną pamięć ROM (lub flash) zawierającą oprogramowanie układowe.