Kernel modules.
Kernel modules zijn object files die stuurprogrammas bevatten die de mogelijkheden van de kernel uitbreiden. Kernel modules kunnen opgeladen worden als de functionaliteit dit vereist. Als voorbeeld de huidige mint 19.2 Tina, kernel versie 4.15.0-65 bevat ongeveer 5169 kernel modules en er zijn ongeveer 144 modules geladen.
De kernel modules omvatten zeer veel functionaliteiten zoals
- encryptie ondersteuning
- file systeem ondersteuning
- cpu ondersteuning
- rekeneenheid (fpu-unit) ondersteuning
- taal ondersteuning
- hardware ondersteuning (hardware drivers)
- ...
Modules uit de kernel code.
Als een module gevalideerd is, dan wordt ze toegevoegd in de kernel code (kernel source tree). De code wordt dan een onderdeel van
een kernel versie. Op het file systeem staan die modules in .ko formaat onder /lib/modules/$(uname -r)/kernel
. Het gedeelte
$(uname -r)
identificeerd de kernel versie. Door deze toevoeging, kunnen de modules voor alle geïnstalleerde kernels op
het systeem staan.
Module beheer.
Deze modules worden beheerd met de volgende commando´s
lsmod
: geeft een overzicht van alle geladen modules en de onderlinge afhankelijkheid.insmod
: eenvoudig programma om nieuwe modules aan de kernel toe te voegen.modprobe modulenaam
: programma om modules aan de kernel toe te voegen.modprobe -r modulenaam
: programma om modules van de kernel te verwijderen.rmmod modulenaam
: programma om modules van de kernel te verwijderen.modinfo
: geeft informatie van een kernel module.
Als een kernel module niet automatisch laad bij het opstarten, voeg de naam (zonder .ko) toe in het configuratie bestand
/etc/modules
.
Het aantal kernel modules tellen: find /lib/modules/$(uname -r)/kernel -name "*.ko" | wc -l
Het aantal geladen kernel modules tellen: lsmod | grep -v Module | wc -l
Nota: De syntax $(commando)
vervangt de oudere syntax `commando`
(tussen back-quotes), het commando wordt uitgevoerd en het resultaat wordt gebruikt als argument.
Externe modules.
Sommige modules komen niet uit de kernel code, ofwel omdat ze nog in ontwikkeling zijn, of omdat ze niet in de kernel worden
opgenomen en de eigenaar ze zelf blijft onderhouden. Een voorbeeld hiervan zijn de stuurprogrammas voor video kaarten ...
Voor dit doel is de functionaliteit dkms
ontwikkeld. DKMS staat voor Dynamic Kernel Module Support.
De DKMS service laat toe om die externe modules te updaten als er nieuwe kernels worden toegevoegd. Met het commando dkms
kunnen de modules beheerd worden. Het commando dkms status
geeft een overzicht van de externe modules en voor welke
kernel versies de modules gecompileerd zijn. Bekijk de manual pagina voor meer gedetailleerde uitleg (man dkms
).