qual é a diferença entre src versão 3. * e 3.. * - generic

10

No meu Linux / Ubuntu local, tenho dois diretórios para Linux src

/usr/src/linux-3.16.0
/usr/src/linux-3.16.0-generic

Eu encontrei o código em 3.16.0 é muito mais do que em 3.16.0-genérico. Eu estou querendo saber por que e como esses dois diretórios são diferentes (e o que eles representam?)

Richard
fonte

Respostas:

1

Os dois diretórios são fornecidos pelos pacotes correspondentes, que contêm os arquivos de cabeçalho do kernel. Use o dpkgcomando 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-XXcompreende 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-genericparecia 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 x86códigos relacionados à loja , qual a diferença entre o x86có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-genericsão links simbólicos, que apontam para diretórios e arquivos reais /usr/src/linux-headers-X.X.XX-XX. Em outras palavras, arch/x86os dois diretórios encontrados são apenas a diferença dos links reais e simbólicos, com alguns arquivos restantes de asmcabeçalhos em *-genericcontrapartida.

Entre esses dois pacotes, pode-se notar que outra grande diferença é a presença de confige generateddiretórios na *-genericcontraparte.

No meu melhor entendimento, eu pensaria que o *-genericdiretório contém os arquivos de cabeçalho necessários para configurar e compilar módulos relevantes à x86arquitetura, 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.

clearkimura
fonte
Como os dois x86códigos relacionados à loja , qual a diferença entre o x86código nos dois diretórios?
Richard
@ Richard Eu atualizei minha resposta como acima no meu melhor conhecimento, o mais simples possível. Minha resposta pode ser vista como ingênua; portanto, você pode procurar uma resposta melhor de outra pessoa.
Clearkimura 30/07/2015