*---*---*---*---*---*---*---*---*---*---*
Obtendo o Kernel LinuxQuando você está compilando o seu próprio kernel, você deseja ter a versão estável mais recente. Muitas distribuições fornecem seus próprios pacotes com os códigos-fonte, mas elas raramente são as versão mais recentes do kernel. Os pacotes de distribuições tem a vantagem de ter sido feito para ser compatível com o compilador e outras ferramentas fornecidas pela distribuição (o capítulo 2 explica a importância delas serem compatíveis) mas elas podem acabar não tendo a funcionabilidade e performance que você deseja. Se você quer criar o seu própro ambiente com a versão mais recente do kernel, compilador e outras ferramentas, você será capaz de criar exatamente o que você deseja. Essa capítulo se foca em determinar quais ódigos-fonte do kernel baixar e como obtê-las.
Qual Árvore Usar
No passado, o kernel Linux era separado em somente duas árvores, a versão "development" e a versão "stable". A versão development era indicada por um número ímpar no segundo número da versão, enquanto a versão stable usava números pares. Então, como exemplo, a versão 2.5.25 era um kernel em desenvolvimento, enquanto a versão 2.4.25 é uma versão estável.
Mas depois que a série 2.6 foi criada, os desenvolvedores do kernel decidiram abandonar esse método de ter duas árvores separadas e declararam que todas as versões do kernel 2.6 seriam consideradas "estáveis", não importando a velocidade do desenvolvimento. Os poucos meses entre os principais lançamentos da série 2.6 dariam aos desenvolvedores do kernel tempo para adicionar novas funcionalidades e então estabilizá-las a tempo do próximo lançamento. Além disso, uma ramificação "-stable" foi criada para arrumar bugs das versões e atualizações de segurança para versões passadas do kernel, antes que a próxima versão principal da série 2.6 seja lançada.
Tudo isso é melhor explicado com alguns exemplos, ilustrados na Figura 3.1. A equipe do kernel lançou o kernel 2.6.17 como uma versão estável. Então os desenvolvedores iniciaram o trabalho em novas funcionalidades e iniciaram lançando versões -rc como kernels em desenvolvimento para que as pessoas pudessem ajudar a testar e debugar as mudanças. Após que todos concordaram que a versão em desenvolvimento estava estável o suficiente, ela foi lançada como o kernel 2.6.18. Todo esse ciclo normalmente leva cerca de 2 ou três meses, dependendo de uma variedade de fatores.

Figura 3-1. Ciclo de lançamento do desenvolvimento do kernel.
Enquanto o desenvolvimento de novas funcionalidades estava ocorrendo, a versões estáveis 2.6.17.1, 2.6.17.2 e outras foram lançadas, contendo conserto de bugs e atualizações de segurança.
Se você deseja usar a versão mais recente no seu trabalho, é recomendado que você utilize as versões estáveis do kernel. Se você deseja ajudar os desenvolvedores do kernel a testar as funcionalidades da próxima versão do kernel e fazer um feedback, utilize a versão do kernel em desenvolvimento. Para efeito desse capítulo, assumiremos que você está usando uma versão estável do kernel.
Onde Achar o Código-Fonte do Kernel
Todos os códigos-fonte do kernel Linux podem serem encontrados em um do sites do kernel.org, uma rede mundial de servidores que hospedam o código-fonte do Linux, habilitando qualquer um encontrar um servidor local perto de si. Isso permite que os principais servidores do kernel sejam suscetíveis aos sites que hospedam os códigos-fonte e permite que os usuários baixem os arquivos necessários o mais rápido possível.
O site principal - http://www.kernel.org - mostra todas as versões atuais do kernel de várias árvores diferentes do kernel, como mostrado na Figura 3.2.

Figura 3-2. O site principal do projeto kernel.org
Para baixar a versão estável mais recente do kernel, clique no caracter F na linha da versão do kernel. Isso baixará o código-fonte inteiro da árvore. Ou você pode navegar até a sub-pasta apropriada para ver todas as versões do kernel da série 2.6, http://www.us.kernel.org/pub/linux/kernel/v2.6, como é mostrado na Figura 3-3.
Também é possível baixar o código-fonte do kernel pela linha de comando, utilizando as ferramentas wget e curl, ambas devem vir na sua distribuição Linux.
Para baixar a versão 2.6.17.8 do kernel usando o wget, insira o comando:
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz
--17:44:55-- http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.
tar.gz
=> `linux-2.6.17.8.tar.gz'
Resolving www.kernel.org... 204.152.191.5, 204.152.191.37
Connecting to www.kernel.org|204.152.191.5|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 51,707,742 (49M) [application/x-gzip]
100%[=============================================>] 51,707,742 35.25K/s
ETA 00:00
18:02:48 (47.12 KB/s) - `linux-2.6.17.8.tar.gz' saved [51707742/51707742]

Figura 3-3. A pasta do código-fonte do kernel 2.6
Para baixar usando curl:
$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \
-o linux-2.6.17.8.tar.gz
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 49.3M 100 49.3M 0 0 50298 0 0:17:08 0:17:08 --:--:--
100k
Uma maneira rápida e fácil para ver a versão do kernel mais recente, use a informação disponível em http://www.kernel.org/kdist/finger_banner, ilustrado pela Figura 3-4.
O Que Fazer Com O Código-Fonte
Agora que você baixou o código-fonte do kernel apropriado, onde ele deve ficar? Aconselhamos criar um diretório local na sua pasta home chamada linux para guardar dos os arquivos de códigos-fonte de diferentes versões do kernel:
$ mkdir ~/linux

Figura 3-4. Versão do kernel mais recente
Agora mova o código-fonte para esse diretório:
$ mv ~/linux-2.6.17.8.tar.gz ~/linux
E entre no diretório:
$ cd ~/linux
$ ls
linux-2.6.17.8.tar.gz
Agora que o código-fonte está na pasta correta, descompacte o arquivo:
$ tar -xzvf linux-2.6.17.8.tar.gz
A tela será preenchida com os arquivos que são descompactados e aparecerá seguinte no diretório linux/:
$ ls
linux-2.6.17.8.tar.gz
linux-2;6;17.8/
*---*---*---*---*---*---*---*---*---*---*
PDF em inglês - Chapter 3: Retrieving the Kernel Source
*---*---*---*---*---*---*---*---*---*---*
Qualquer correção, crítica & derivados, nos comentários por favor. Agradecido.