Risposte:
Le due directory sono fornite dai pacchetti corrispondenti, che contengono i file di intestazione per il kernel. Utilizzare il dpkg
comando per trovare quale pacchetto fornisce le directory.
$ 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
...
La prima directory /usr/src/linux-headers-X.X.XX-XX
comprende file di intestazione per più architetture, tra cui x86, amd64, powerpc e altri, con conseguente maggior numero di file e dimensioni maggiori del pacchetto.
L'altra directory /usr/src/linux-headers-X.X.XX-XX-generic
sembrava contenere principalmente codici sorgente relativi all'architettura x86 destinata all'installazione locale.
Il pacchetto corrispondente è stato accennato nella descrizione, ad esempio:
$ 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
Per quanto ne so, entrambe le directory contengono solo codici sorgente e non binari. E la differenza tra entrambi è principalmente l' architettura target dei codici sorgente.
Correlati: cosa contiene un albero dei sorgenti del kernel? Questo è legato alle intestazioni del kernel Linux?
dal momento che entrambi
x86
i codici relativi al negozio , qual è la differenza tra ilx86
codice nelle due directory? - Richard, 29 luglio 15 alle 19:11
La maggior parte delle directory e dei file contenuti /usr/src/linux-headers-X.X.XX-XX-generic
sono collegamenti simbolici, che puntano a directory e file effettivi /usr/src/linux-headers-X.X.XX-XX
. In altre parole, arch/x86
in queste due directory si trovano solo la differenza dei collegamenti effettivi e simbolici, con alcuni file rimanenti di asm
intestazioni nella *-generic
controparte.
Tra questi due pacchetti, si può notare un'altra grande differenza è la presenza config
e le generated
directory nella *-generic
controparte.
Per quanto ne so, penso che la *-generic
directory contenga i file di intestazione necessari per la configurazione e la compilazione di moduli rilevanti per l' x86
architettura, senza apportare modifiche accidentali alla directory di origine di linux-headers-x.x.xx-xx
.
Soprattutto, le due directory sono probabilmente l'approccio "pulito" al packaging e alla compilazione dei pacchetti sulle rispettive piattaforme. Tuttavia, non sono in grado di chiarire la questione.
Nota del risponditore: ho scritto questa risposta ingenuamente in quel momento - non sono sicuro di cosa sia giusto o sbagliato - e nel frattempo potrebbero mancare alcune spiegazioni. Quindi questa risposta è ora un wiki della comunità, in modo che chiunque abbia una reputazione minima possa migliorare questo post per spiegare appieno la differenza.
x86
i codici relativi al negozio , qual è la differenza tra ilx86
codice nelle due directory?