Aller au contenu

Loadable Kernel Module

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 9 octobre 2011 à 15:41 et modifiée en dernier par Antistress (discuter | contributions) (Considérations juridiques). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Dans un système d'exploitation, un module est une partie du noyau qui peut être intégrée pendant son fonctionnement. Le terme anglais généralement employé pour les désigner est Loadable Kernel Module, abrégé LKM, ou en français : « module de noyau chargeable ».

Cette fonctionnalité existe dans les noyaux Linux et les noyaux BSD.

C'est une alternative aux fonctionnalités compilées dans le noyau, qui ne peuvent être modifiées qu'en relançant le système.


Linux

Les modules du noyau Linux sont généralement placés dans /lib/modules. Ils utilisent l'extension .ko depuis la version 2.6.

La commande depmod génère les fichiers de dépendances. Ces fichiers permettront entre autres à la commande modprobe de charger automatiquement tous les modules nécessaires lors de l'intégration d'un module dans le noyau.

Sur certains systèmes, notamment la distribution Debian, ces fichiers sont générés à chaque démarrage pour maintenir les dépendances à jour.[réf. nécessaire]

Les modules peuvent être retirés du noyau à tout moment tant qu'ils ne sont pas utilisés.

Les commandes lsmod, insmod et rmmod permettent d'effectuer les opérations de base sur les modules.

Dans certaines distributions Linux récentes, le chargement des modules est automatique lorsque le système en a besoin ou qu'il détecte un nouveau périphérique.

Considérations juridiques

La licence GNU GPL qui régit le noyau Linux implique que tout travail dérivé soit placé sous cette même licence. Les mainteneurs du noyau considèrent que, sauf exception, les modules du noyau sont des travaux dérivés et comme tels soumis à la licence GNU GPL. Linus Torvalds a ainsi exprimé qu'il pouvait exister de rares exceptions : typiquement si le pilote d'un autre système d'exploitation était adapté pour fonctionner sous Linux, il lui semble difficile de qualifier le travail en résultant de « travail dérivé de Linux »[1].


Le symbole d'exportation du noyau permet de spécifier la licence des modules qui interagissent, par exemple dans le cas de EXPORT_SYMBOL_GPL, le module sera marqué de cette façon : MODULE_LICENSE("GPL").

Liens externes

  1. (en) [1]