Die beiden Verzeichnisse werden von den entsprechenden Paketen bereitgestellt, die die Header-Dateien für den Kernel enthalten. Verwenden Sie den dpkg
Befehl, um herauszufinden, welches Paket die Verzeichnisse bereitstellt.
$ 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
...
Das erste Verzeichnis /usr/src/linux-headers-X.X.XX-XX
enthält Header-Dateien für mehrere Architekturen, einschließlich x86, amd64, powerpc und andere, was zu einer größeren Anzahl von Dateien und einer größeren Paketgröße führt.
Das andere Verzeichnis /usr/src/linux-headers-X.X.XX-XX-generic
schien hauptsächlich Quellcodes zu enthalten, die für die x86-Architektur relevant sind und für die lokale Installation vorgesehen sind.
Das entsprechende Paket hat in der Beschreibung angedeutet, zum Beispiel:
$ 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
Soweit mir bekannt ist, enthalten beide Verzeichnisse nur Quellcodes und keine Binärdateien. Und der Unterschied zwischen beiden ist hauptsächlich der Zielarchitektur von Quellcodes.
Verwandte: Was enthält ein Kernel-Quellbaum? Bezieht sich das auf Linux-Kernel-Header?
Erweiterte Antwort (2015.07.30)
x86
Was ist der Unterschied zwischen dem x86
Code in den beiden Verzeichnissen, da beide Code in Beziehung setzen ? - Richard 29. Juli 15 um 19:11 Uhr
Die meisten Verzeichnisse und Dateien in /usr/src/linux-headers-X.X.XX-XX-generic
sind symbolische Links, die auf tatsächliche Verzeichnisse und Dateien in verweisen /usr/src/linux-headers-X.X.XX-XX
. Mit anderen Worten, arch/x86
in diesen beiden Verzeichnissen befindet sich nur der Unterschied zwischen tatsächlichen und symbolischen Links, wobei einige übrig gebliebene Dateien mit asm
Headern im *-generic
Gegenstück vorhanden sind.
Zwischen diesen beiden Paketen kann man einen weiteren großen Unterschied feststellen, nämlich das Vorhandensein von config
und generated
Verzeichnisse im *-generic
Gegenstück.
Nach meinem besten Verständnis würde das *-generic
Verzeichnis die erforderlichen Header-Dateien zum Konfigurieren und Kompilieren von für die x86
Architektur relevanten Modulen enthalten , ohne versehentlich Änderungen am Quellverzeichnis von vorzunehmen linux-headers-x.x.xx-xx
.
Vor allem sind die beiden Verzeichnisse wahrscheinlich der "saubere" Ansatz zum Packen und Kompilieren der Pakete auf den jeweiligen Plattformen. Ich bin jedoch nicht in der Lage, diese Angelegenheit zu klären.
Anmerkung des Antwortenden : Ich habe diese Antwort damals naiv geschrieben - nicht sicher, was richtig oder falsch ist - und dazwischen fehlt möglicherweise eine Erklärung. Daher ist diese Antwort jetzt ein Community-Wiki, sodass jeder mit minimalem Ruf diesen Beitrag verbessern kann, um den Unterschied vollständig zu erklären.
x86
Was ist der Unterschied zwischen demx86
Code in den beiden Verzeichnissen, da beide Code in Beziehung setzen ?