Os dois diretórios são fornecidos pelos pacotes correspondentes, que contêm os arquivos de cabeçalho do kernel. Use o dpkg
comando para descobrir qual pacote fornece os diretórios.
$ 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
...
O primeiro diretório /usr/src/linux-headers-X.X.XX-XX
compreende arquivos de cabeçalho para várias arquiteturas, incluindo x86, amd64, powerpc e outros, resultando em mais número de arquivos e maior tamanho do pacote.
O outro diretório /usr/src/linux-headers-X.X.XX-XX-generic
parecia conter principalmente códigos-fonte relevantes para a arquitetura x86 direcionada para a instalação local.
O pacote correspondente deu dicas na descrição, por exemplo:
$ 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
Tanto quanto sei, os dois diretórios contêm apenas códigos-fonte e não binários. E a diferença entre ambos é principalmente a arquitetura de destino dos códigos-fonte.
Relacionado: O que contém uma árvore de origem do kernel? Isso está relacionado aos cabeçalhos do kernel do Linux?
Resposta estendida (30.07.2015)
Como os dois x86
códigos relacionados à loja , qual a diferença entre o x86
código nos dois diretórios? #: 21415 Richard às 19:11
A maioria dos diretórios e arquivos contidos em /usr/src/linux-headers-X.X.XX-XX-generic
são links simbólicos, que apontam para diretórios e arquivos reais /usr/src/linux-headers-X.X.XX-XX
. Em outras palavras, arch/x86
os dois diretórios encontrados são apenas a diferença dos links reais e simbólicos, com alguns arquivos restantes de asm
cabeçalhos em *-generic
contrapartida.
Entre esses dois pacotes, pode-se notar que outra grande diferença é a presença de config
e generated
diretórios na *-generic
contraparte.
No meu melhor entendimento, eu pensaria que o *-generic
diretório contém os arquivos de cabeçalho necessários para configurar e compilar módulos relevantes à x86
arquitetura, sem fazer alterações acidentais no diretório de origem do linux-headers-x.x.xx-xx
.
Acima de tudo, os dois diretórios são provavelmente a abordagem "limpa" para empacotar e compilar os pacotes nas respectivas plataformas. Embora não esteja em posição de esclarecer esse assunto.
Nota do respondente : Escrevi essa resposta ingenuamente na época - não tenho certeza do que está correto ou errado - e algumas explicações podem estar faltando. Portanto, esta resposta agora é um wiki da comunidade, para que qualquer pessoa com reputação mínima possa melhorar este post para explicar completamente a diferença.
x86
códigos relacionados à loja , qual a diferença entre ox86
código nos dois diretórios?