Les deux répertoires sont fournis par les packages correspondants, qui contiennent les fichiers d'en-tête du noyau. Utilisez la dpkg
commande pour trouver quel package fournit les répertoires.
$ dpkg -S /usr/src/linux*
linux-headers-X.XX.X-XX: /usr/src/linux-headers-X.XX.X-XX
linux-headers-X.XX.X-XX-generic: /usr/src/linux-headers-X.XX.X-XX-generic
...
Le premier répertoire /usr/src/linux-headers-X.X.XX-XX
comprend des fichiers d'en-tête pour plusieurs architectures, y compris x86, amd64, powerpc et autres, résultant en un plus grand nombre de fichiers et une plus grande taille de package.
L'autre répertoire /usr/src/linux-headers-X.X.XX-XX-generic
semblait contenir principalement des codes sources pertinents pour l'architecture x86 qui sont ciblés pour l'installation locale.
Le package correspondant a fait allusion dans la description, par exemple:
$ apt-cache show linux-headers-3.16.0-25 | grep -A3 Description-en
Description-en: Header files related to Linux kernel version 3.16.0
This package provides kernel header files for version 3.16.0, for sites
that want the latest kernel headers. Please read
/usr/share/doc/linux-lts-utopic-headers-3.16.0-25/debian.README.gz for details
Pour autant que je sache, les deux répertoires ne contiennent que des codes source et non des binaires. Et la différence entre les deux est principalement l' architecture cible des codes sources.
Connexe: Que contient une arborescence source du noyau? Est-ce lié aux en-têtes du noyau Linux?
Réponse étendue (2015.07.30)
puisque les deux stockent le x86
code associé, quelle est la différence entre le x86
code dans les deux répertoires? - Richard 29 juillet 15 à 19:11
La plupart des répertoires et fichiers contenus dans /usr/src/linux-headers-X.X.XX-XX-generic
sont des liens symboliques, qui pointent vers des répertoires et fichiers réels dans /usr/src/linux-headers-X.X.XX-XX
. En d'autres termes, on arch/x86
trouve dans ces deux répertoires la différence entre les liens réels et symboliques, avec quelques fichiers restants d'en- asm
têtes en *-generic
contrepartie.
Entre ces deux packages, on peut remarquer une autre différence majeure est la présence config
et les generated
répertoires en *-generic
contrepartie.
À ma meilleure compréhension, je pense que le *-generic
répertoire contient les fichiers d'en-tête nécessaires pour configurer et compiler des modules pertinents pour l' x86
architecture, sans apporter de modifications accidentelles au répertoire source de linux-headers-x.x.xx-xx
.
Surtout, les deux répertoires sont probablement l'approche "propre" de l'empaquetage et de la compilation des paquets sur les plates-formes respectives. Cependant, je ne suis pas en mesure de clarifier cette question.
Note du répondeur: J'ai écrit cette réponse naïvement à l'époque - je ne sais pas ce qui est correct ou incorrect - et certaines explications peuvent manquer entre les deux. Par conséquent, cette réponse est maintenant un wiki communautaire, afin que toute personne ayant une réputation minimale puisse améliorer ce message pour expliquer pleinement la différence.
x86
code associé, quelle est la différence entre lex86
code dans les deux répertoires?