Modules du kernel: .o vs .ko

Il semble que les files contenant des modules de kernel s'appellent .o , du less c'est ce que je figure en regardant un tutoriel comme celui-ci . Cependant, sur ma boîte de squeeze debian, ces files semblent s'appeler .ko .

Cela dépend-il de la dissortingbution (ou de la version de celui-ci) si les files sont appelés .o ou .ko et sont-ils plus ou less les mêmes, sinon?

J'ai trouvé la réponse suivante ici :

La réponse courte est que le file .ko est votre file object lié à certaines data structures générées automatiquement par le kernel et nécessaires au kernel.

Le file .o est le file object de vos modules – le résultat de la compilation de vos files c. Le système de compilation du kernel crée alors automatiquement un autre file C avec des data structures décrivant le module kernel (nommé votre_module_kmod.c), comstack ce file C dans un autre file object et lie votre file object et le file object qu'il a construit set pour créer le .ko file.

L'éditeur de liens dynamic dans le kernel chargé de charger les modules du kernel s'attend à find la structure de données que le kernel place dans l'object kmod dans le file .ko et ne pourra pas charger votre module kernel sans eux.

Aussi de cette source , citant tldp : Jusqu'à 2.4 versions du kernel, il était ".o", et depuis 2.6, il est ".ko".

Il semble un vieux howto (tutorial), dans les faits, il a été écrit en 2005. Lorsque le kernel Linux était 2.4.x les modules avaient l'extension .o, tandis que dans 2.6 ils devenaient .ko