Moduł – element dynamicznie ładowany do jądra Linux. Najczęściej są to sterowniki jakiegoś urządzenia. Modułowość umożliwia sprawne zarządzanie pamięcią dla jądra – gdy jakiś moduł jest niepotrzebny, odłącza się go.
Zarządzanie modułami[]
Wyświetlenie listy modułów: <terminal>$ lsmod</terminal> Ładowanie modułu: <terminal># modprobe nazwa</terminal> Odłączanie modułu: <terminal># rmmod nazwa</terminal>
Przykładowy moduł[]
Szablon:Tekst źródłowy:Moduł
Do poprawnego skompilowania powyższego kodu, należy załączyć za pomocą dyrektywy #include
dwa pliki nagłówkowe – kernel.h
i module.h
. Kod składa się z funkcji init_module()
i cleanup_module()
. Każdy moduł musi zawierać te funkcje w celu poprawnego działania. Funkcja init_module()
, zwracająca typ całkowity jest pierwszą funkcją modułu wywoływaną przez jądro zaraz po załadowaniu modułu za pomocą polecenia modprobe
. Funkcja cleanup_module()
jest wywoływana w trakcie odłączania modułu poleceniem rmmod
. W powyższym przykładzie znajduje się również funkcja printk()
, wypisująca nasz tekst na terminal. Przy budowie modułów tylko funkcje jądra są dostępne, dlatego też nie możemy wywołać funkcji printf()
.
W celu poprawnej kompilacji powyższego modułu, do katalogu należy zamieścić poniższy plik Makefile: Szablon:Tekst źródłowy:Moduł.makefile