Które narzędzie w systemie Linux wyświetla zapisane w BIOS informacje o sprzęcie?
A. watch
B. debug
C. cron
D. dmidecode
Pytanie z egzaminu CKE, czerwiec 2020 (arkusz EE.08-SG-20.06).
Narzędzie dmidecode jest właściwą odpowiedzią, bo służy do odczytu tabel DMI/SMBIOS zapisanych przez firmware komputera, czyli dawniej najczęściej BIOS, a obecnie często UEFI z warstwą zgodności. W praktyce pokazuje informacje o sprzęcie takie jak producent i model płyty głównej, wersja BIOS/UEFI, numer seryjny komputera, typ obudowy, obsadzenie slotów RAM, dane procesora czy informacje o gniazdach rozszerzeń. Typowe użycie to sudo dmidecode albo bardziej konkretnie sudo dmidecode -t memory, sudo dmidecode -t bios, sudo dmidecode -t system. Z mojego doświadczenia to bardzo przydatne przy inwentaryzacji komputerów, diagnozowaniu zgodności pamięci RAM albo sprawdzaniu, czy sprzęt ma aktualny firmware. Dobra praktyka branżowa jest taka, żeby takie dane traktować jako punkt wyjścia, a nie jedyne źródło prawdy, bo wpisy SMBIOS bywają czasem niepełne albo błędnie uzupełnione przez producenta. W diagnostyce warto porównać wynik z lshw, lspci, lsblk, /sys/class/dmi/id albo dokumentacją producenta. Polecenie zwykle wymaga uprawnień administratora, ponieważ czyta niskopoziomowe informacje systemowe. To normalne w Linuksie, szczególnie przy pracy serwisowej i administracyjnej.
W tym pytaniu łatwo pomylić narzędzia administracyjne z narzędziami diagnostycznymi, bo wszystkie podane nazwy kojarzą się z pracą w systemie albo terminalu. cron nie służy jednak do wyświetlania informacji o sprzęcie. To demon harmonogramu zadań, używany do uruchamiania skryptów o określonej porze, na przykład do kopii zapasowych, czyszczenia logów albo automatycznych raportów. Można nim zaplanować uruchomienie dmidecode, ale sam cron nie odczytuje danych z BIOS/UEFI ani z tabel SMBIOS. watch też bywa mylący, bo coś wyświetla na ekranie, ale jego rola jest inna: cyklicznie powtarza wskazane polecenie i pokazuje aktualizowany wynik. Przykładowo watch sensors będzie odświeżać temperatury, a watch free -h użycie pamięci, lecz watch nie jest źródłem informacji sprzętowych. Musiałby dostać właściwe polecenie, np. watch dmidecode, choć w tym akurat przypadku ciągłe odświeżanie zwykle nie ma większego sensu. debug również nie jest standardowym linuksowym narzędziem do inwentaryzacji sprzętu zapisanej w BIOS. Nazwa może kojarzyć się z analizą niskopoziomową, starymi narzędziami DOS albo debugowaniem programu, ale to nie jest odpowiednik dmidecode. Typowy błąd myślowy polega na wybieraniu komendy, która brzmi technicznie albo ogólnie administracyjnie, zamiast zastanowić się, jakie źródło danych ma zostać odczytane. Przy informacjach z BIOS/UEFI trzeba myśleć o DMI/SMBIOS, a w Linuksie najbardziej klasycznym narzędziem do tego jest właśnie dmidecode. W pracy serwisowej taka różnica ma znaczenie, bo od niej zależy, czy diagnoza jest oparta na realnych danych sprzętowych, czy tylko na przypadkowo uruchomionym poleceniu.