Modules du noyau: .o vs .ko


10

Il semble que les fichiers contenant des modules du noyau soient appelés .o, du moins c'est ce que je pense en regardant un tutoriel comme celui-ci . Cependant, sur ma boîte de compression Debian, ces fichiers semblent être appelés .ko.

Cela dépend-il de la distribution (ou de sa version) si les fichiers sont appelés .oou .ko, et sont-ils plus ou moins les mêmes, sinon?

Réponses:


11

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

La réponse courte est que le fichier .ko est votre fichier objet lié à certaines structures de données générées automatiquement par le noyau dont le noyau a besoin.

Le fichier .o est le fichier objet de vos modules - le résultat de la compilation de vos fichiers c. Le système de construction du noyau crée ensuite automatiquement un autre fichier C avec des structures de données décrivant le module du noyau (nommé your_module_kmod.c), compile ce fichier C dans un autre fichier objet et relie votre fichier objet et le fichier objet qu'il a construit ensemble pour créer le .ko fichier.

L'éditeur de liens dynamique dans le noyau qui est chargé de charger les modules du noyau, s'attend à trouver la structure de données que le noyau a placée dans l'objet kmod dans le fichier .ko et ne pourra pas charger votre module du noyau sans eux.

Également de cette source , citant tldp : jusqu'à la version 2.4 du noyau, c'était ".o", et depuis 2.6, c'est ".ko".


3

Cela semble être un vieux tutoriel (tutoriel), en fait il a été écrit en 2005. Quand le noyau Linux était 2.4.x les modules avaient l'extension .o, alors qu'en 2.6 ils devenaient .ko

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.