Modulo kernel caricabile

In un sistema operativo , un modulo è una parte del kernel che può essere integrato mentre è in esecuzione. Il termine inglese generalmente utilizzato per designarli è Loadable Kernel Module , abbreviato LKM , o (in francese  : "chartered kernel module").

Questa funzione esiste nei kernel Linux e nei kernel BSD .

È un'alternativa alle funzionalità compilate nel kernel, che possono essere modificate solo riavviando il sistema.


Linux

I moduli del kernel Linux vengono solitamente inseriti in /lib/modules. Usano l' estensione .ko dalla versione 2.6.

Il comando depmodgenera i file delle dipendenze . Tra le altre cose, questi file consentiranno al comando modprobedi caricare automaticamente tutti i moduli necessari quando si integra un modulo nel kernel.

I moduli possono essere rimossi dal kernel in qualsiasi momento fintanto che non sono in uso.

I comandi lsmod, insmode sono rmmodutilizzate per eseguire operazioni di base sui moduli.

In alcune recenti distribuzioni Linux , i moduli vengono caricati automaticamente quando il sistema ne ha bisogno o rileva un nuovo dispositivo.

Compatibilità dei moduli binari

Linux non fornisce un'interfaccia stabile ( API o ABI ) per i moduli del kernel. Da una versione del kernel all'altra, potrebbero quindi esserci differenze strutturali o funzionali che potrebbero rompere la compatibilità con i moduli esistenti. Per limitare questi inconvenienti, le informazioni sulla versione sono collocate nella sezione .modinfo dei moduli che possono essere confrontati con la versione del kernel di destinazione per impedire il caricamento di moduli incompatibili.

Considerazioni legali

La licenza GNU GPL che governa il kernel Linux implica che qualsiasi lavoro derivato sia posto sotto questa stessa licenza. I manutentori del kernel ritengono che, con alcune eccezioni, i moduli del kernel siano lavori derivati ​​e come tali soggetti alla licenza GNU GPL. Linus Torvalds ha così espresso che potrebbero esserci rare eccezioni: tipicamente se il driver di un altro sistema operativo è stato adattato per funzionare sotto Linux, gli sembra difficile qualificare il lavoro risultante come "lavoro derivato da Linux".

Il simbolo di esportazione del kernel viene utilizzato per specificare la licenza dei moduli interagenti, ad esempio nel caso di EXPORT_SYMBOL_GPL , il modulo sarà contrassegnato in questo modo: MODULE_LICENSE ("GPL") . Per Linus Torvalds, questo chiarimento non è solo descrittivo ma anche legale.

Note e riferimenti

  1. (in) Linux: The LPG And Binary Modules "archived copy" (rilascio del 23 luglio 2005 su Internet Archive )
  2. (it) Sul valore di EXPORT_SYMBOL_GPL

Appendici

Articolo correlato

Link esterno