Os dois diretórios são fornecidos por linux-headers-x.x.xx-xx
e linux-headers-x.x.xx-xx-generic
packages, que fornecem os arquivos de cabeçalho para o kernel.
linux-headers-x.x.xx-xx
Esse diretório é composto de arquivos de cabeçalho para várias arquiteturas, incluindo x86, amd64, powerpc e outros, resultando em um maior número de arquivos e maior tamanho de pacote.
linux-headers-x.x.xx-xx-genérico
Por outro lado, o diretório *-generic
parecia conter principalmente códigos-fonte relevantes para a arquitetura x86, que são direcionados para a instalação local.
O gerenciador de pacotes Synaptic sugeriu isso:
This package provides kernel header files for version X.XX.X on 32 bit x86 SMP.
Tanto quanto eu sei, ambos contêm apenas códigos-fonte e não binários. E a diferença entre os dois diretórios acima é principalmente a arquitetura de destino dos códigos-fonte.
Para ler mais, você pode querer ver esta questão em seu lugar.
Texto atualizado abaixo
A maioria dos diretórios e arquivos contidos na pasta linux-headers-x.x.xx-xx-generic
são links simbólicos, que apontam para diretórios e arquivos reais sob linux-headers-x.x.xx-xx
.
Isso significaria que o diretório arch/x86
encontrado nesses dois diretórios é apenas a diferença de links reais e simbólicos, com alguns arquivos restantes de asm
headers em *-generic
counterpart.
Entre esses dois pacotes, você pode notar que outra grande diferença é a presença dos diretórios config
e generated
em *-generic
.
Na minha melhor compreensão, eu acho que o diretório *-generic
contém os arquivos de cabeçalho necessários para configurar e compilar os módulos relevantes para x86
architecture, sem fazer alterações acidentais no diretório de origem de linux-headers-x.x.xx-xx
.