Co to są moduły jądra?
Moduły jądra to skompilowane pliki obiektowe, które kodują funkcjonalności rozszerzające możliwości jądra. Mogą być one wedle potrzeby ładowane dynamicznie do pamięci i z niej usuwane. Dzięki temu jądro Linuxa na mniejszy rozmiar, ale też ciągłe ładowanie i usuwanie modułów z pamięci może powodować fragmentację kodu wykonywalnego jądra umieszczonego w pamięci i przez to pewien spadek wydajności sytemu.
Odpluskwianie modułów
Możliwość dynamicznego dodawania i usuwania modułów powoduje, iż do ich odpluskwiania w UML jest użyteczny skrypt umlgdb. Skrypt umlgdb działa dla jądra pracującego w trybie TT. Aby uruchomić skrypt należy odnaleźć i dopisać w jego treści nazwy i adresy plików obiektowych w systemie plików, które będą debugowane. Należy znaleźć i zmienić według potrzeby następujący fragment skryptu:
Skrypt należy umieścić w katalogu, w którym jest UML i tam go uruchomić. Skrypt uruchamia gdb, który wczytuje informacje z danych plików obiektowych potrzebne gdb do odpluskwiania ich. Następnie wypisuje sposób w jaki należy uruchomić UML aby ten podłączył się do już skonfigurowanego gdb:
./linux <kernel switches> debug gdb-pid=7750
W chwili załadowania modułu do jądra gdb automatycznie rozpozna symbole modułu oraz zatrzyma się.
Strony o umlgdb: