La memoria richiesta dai LKM è in genere una parte esigua della RAM presente sui sistemi di grandi dimensioni ed ormai anche sui PC, per cui si potrebbe anche caricare in memoria tutti i LKM all’avvio del sistema per mezzo di appositi script e lasciarli lì per tutto il tempo in cui il sistema è acceso.
Per questioni di disponibilità di memoria e di pulizia del sistema è comunque possibile far caricare automaticamente al sistema operativo un LKM qualora se ne presenti la necessità e di farlo scaricare quando esso non risulti più necessario. Ciò può essere fatto sfruttando il module loader (caricatore dei moduli) che fa parte del kernel Linux, o il daemon kerneld (nelle versioni in cui Linux non sia stato compilato con il module loader al suo interno).
[da completare ...]
Quando il sistema deve effettuare un’operazione che necessita del caricamento di un LKM, il kernel, attraverso un’opportuna parte di esso, il module loader (kmod), tenta di caricarlo in memoria, chiamando il comando presente all’interno del file /proc/sys/kernel/modprobe che in genere è /sbin/modprobe, a cui passa i parametri specificati nel file di configurazione (/etc/modprobe.conf). Se tutto funziona a dovere, il LKM opportuno viene così caricato in memoria ed il sistema può effettuare l’operazione richiesta.
Il kernel module loader tiene conto dei LKM utilizzati dal sistema, per mezzo di un meccanismo di reference counting (conteggio dei riferimenti): per ogni LKM viene gestito un contatore ed ogni volta che un processo effettua un’operazione che necessiata del LKM in questione, il contatore viene incrementato. Quando il LKM ha terminato il suo compito (per quel processo) il contatore viene decrementato. Quando tale contatore assumerà il valore 0, significherà che il LKM non sarà utilizzato da nessun processo (e potrà essere scaricato dalla memoria).
[da completare ...]
[da completare ...]