O Ubuntu não faz nada de especial. Sua primeira dificuldade é que você não tem a fonte do kernel instalada, apenas os cabeçalhos do kernel. Os autores estão descrevendo um sistema com uma cópia da origem do kernel em /usr/src/linux-2.x
. Se você está apenas compilando módulos externos, os cabeçalhos, que são o que você vê no seu sistema, são suficientes. O Ubuntu envia cabeçalhos de kernel para esse propósito nos linux-headers-*
packages (que você normalmente instalaria através da dependência dos linux-headers- genérico metapacote). Se você precisar de toda a fonte, pegue um arquivo comprimido do linux-source-2.6 pacote binário.
Outra coisa é que a estrutura de diretórios mudou um pouco ao longo do tempo; cabeçalhos dependentes da arquitetura movidos de include/asm-$ARCH
para arch/$ARCH/include/asm
. Além disso, as arquiteturas i386
e x86_64
foram mescladas em um x86
unificado em 2.6.24. ( Mais detalhes aqui. ) Agora você precisa procurar em arch/x86/include
em vez de include/asm-i386
.
Aqui estão alguns recursos úteis para hackers do kernel Linux:
- Drivers de dispositivos do Linux (LDD3)
- LWN (notícias sobre o Linux, incluindo muitos artigos técnicos sobre o kernel de um dos autores do LDD)
- LXR para navegar e pesquisar a origem do kernel
- LKML (a lista de discussão do kernel do Linux), estouro de pilha para faça perguntas sobre o kernel e o desenvolvimento do kernel
E também leia este tópico no Unix & amp; Linux , que explica como localizar a implementação de um syscall existente.