| Abstract |
Este guia apresenta detalhes sobre a configuração, compilação, atualização e resolução de problemas para o kernel de sistemas baseados em processadores ix86. |
Você deveria ler este documento? Bem, veja se você apresenta um dos seguintes sintomas:
``Putz! Este pacote treco-46.5.6 diz que precisa da versão 3.8.193 do kernel e eu ainda tô na versão 1.0.9!''
Existe um driver de dispositivo em um dos novos kernels que você simplesmente tem de ter
Você realmente não faz a menor idéia de como compilar um kernel
``Estas coisas nos LEIAMEs e READMEs são realmente tudo o que há para se saber?''
Você veio, você tentou, mas não funcionou
Você precisa de algo pro pessoal que insiste em pedir que você instale um kernel para eles
Alguns dos exemplos neste documento assumem que você tem a versão GNU dos programas tar, find e xargs. Estes são bem populares e não devem lhe causar problemas. Também é assumido que você conhece a estrutura do sistema de arquivos de seu sistema; se você não a conhece, é muito importante que você mantenha uma cópia escrita da saída do comando mount, quando executado durante a operação normal do sistema (ou uma listagem do /etc/fstab, se você conseguir interpretá-la). Esta informação é importante e não muda, a não ser quando você reparticiona seu disco rígido, acrescenta um disco novo, reinstala seu sistema, ou faz algo parecida.
A última versão de kernel de ``produção'' na época em que o original em inglês deste documento foi escrito era a 2.2.9. À época de sua tradução para o português brasileiro, esta versão era a 2.4.18, estando os trabalhos de desenvolvimento já sobre a 2.5.8. Isto significa que as referências e exemplos originais correspondem à 2.2.9, mas a equipe de tradutores tentou manter atuais todos os tópicos aqui tratados cujas mudanças fossem de nosso conhecimento.
Embora, assim como a equipe de tradução, o autor do original em inglês tenha tentado manter este documento tão independente de versão quanto possível, o kernel está sempre evoluindo, de modo que se você estiver trabalhando com uma versão mais nova, ela inevitavelmente terá algumas diferenças. Isto não deve causar grandes problemas, mas pode criar alguma confusão.
Uma atenção especial foi dada a este primeiro capítulo, que era um tanto ``seco'' no original, não entrando em detalhes sobre as versões ``prepatch'', ``-ac'' e ``-dj''.
Há duas linhas de versões dos fontes do kernel do Linux, as de ``produção'' (ou ``estável'') e de ``desenvolvimento'' (ou ``beta''). Versões de produção são as que têm ``minor numbers'' pares (aquele número após o primeiro ponto do número de versão). Por exemplo, 2.0.x, 2.2.x ou 2.4.x. Estes kernels são considerados mais estáveis e devem conter menos bugs à época em que são lançados. Os kernels de desenvolvimento (2.1.x, 2.3.x, 2.5.x, etc) devem ser vistos como kernels de teste, para os que desejam testar novos e possivelmente problemáticos kernels.
Algum tempo atrás, as versões 1.3.x (portanto versões de desenvolvimento) foram bastante populares em servidores de produção. Isto pode se dever tanto a uma certo desconhecimento generalizado desta política de produção versus desenvolvimento quanto à excepcional e talvez até inesperada estabilidade daquela série de kernels. Porém, você pode não ter tanta sorte no futuro se continuar a utilizar kernels de desenvolvimento. Você foi avisado.
Mas os números de versão não contam toda a história. Há ainda as versões prepatch, equivalentes no jargão Linux às versões alpha de qualquer outro software; elas podem ser encontradas nos diretórios de testes (``testing'') nos servidores de FTP e repositórios mundo afora. Estas devem ser aplicadas utilizando-se o utilitário patch(1) ao código fonte da versão completa anterior. Os diretórios ``testing'' ou ``incr'' contém patches gerados automaticamente de um prepatch para o outro.
Estas versões prepatch geralmente não são muito testadas e podem até conter erros de compilação, nem chegando a ser capazes de gerar um kernel. Use por sua própria conta e risco. Se você usa uma destas e encontra um problema, veja a seção ``Reporting Linux Kernel Bugs'' em www.kernel.org.
Quando se trata de modificações feitas sobre uma série já ultrapassada, ao invés de ``prepatch'', usa-se o termo ``release candidate'' (candidata a lançamento), que dá origem a números de versão como 2.2.21-rc3. Note que, estando hoje as versões estáveis oficiais na faixa 2.4.x, qualquer modificação feita à série 2.2.x receberá o sufixo -rcX até que possa ser considerada lançada, quando então perde este sufixo. Há ainda as ``dissidências''. Tudo o que dissemos acima se aplica tanto às versões ``oficiais'' quanto a versões alteradas por terceiros. As mais famosas são as versões ``-ac'' e ``-dj''.
As -ac são as lançadas por Alan Cox, notório conhecedor do kernel do Linux, e contém suas modificações sobre a última versão estável do kernel oficial. Muitas de suas modificações eventualmente acabaram sendo incorporadas na versão oficial. Suas versões podem ser encontradas em www.kernel.org/pub/linux/kernel/people/alan.
As versões -dj são análogas às -ac, mas são modificações feitas sobre alguma dentre as últimas versões beta do kernel oficial. Lançadas por David Jones, elas podem ser encontradas sob a forma de patches contendo as diferenças em relação às versões beta oficiais em www.kernel.org/pub/linux/kernel/people/davej/patches.
Tanto as versões -ac quanto as -dj devem ser consideradas de natureza experimental: embora algumas sejam bastante estáveis, outras contém bugs muito sérios.
Para complicar mais a história, há as diferentes distribuições de Linux, feitas por companhias que, por vezes, geram suas próprias modificações no kernel, normalmente usando convenções semelhantes para seus números de versão. Abaixo você encontra alguns exemplos de números de versão de fontes de kernel, juntamente com a maneira como devem ser interpretados:
Tabela 1. Versões do Kernel
| Versão | Interpretação |
|---|---|
| 2.4.18 | Versão estável do kernel oficial |
| 2.4.19-pre6 | Modificação oficial ainda não lançada sobre uma versão estável oficial |
| 2.5.7 | Versão de testes oficialmente lançada para os desenvolvedores |
| 2.5.8-pre2 | Modificação oficial ainda não lançada sobre uma versão de desenvolvimento oficial |
| 2.2.21-rc3 | Modificação oficial ainda não lançada sobre uma versão estável, mas ultrapassada, do kernel oficial |
| 2.2.20 | Versão estável do kernel oficial |
| 2.4.19-pre5-ac3 | Modificação feita por Alan Cox sobre uma versão de testes de uma série estável do kernel oficial |
| 2.5.7-dj3 | Modificação feita por David Jones sobre uma versão de desenvolvimento do kernel oficial |
O texto escrito desta forma pode ser algo que aparece em sua tela, um nome de arquivo, ou algo que pode ser digitado literalmente, tal como um comando ou opções para um comando (se você estiver lendo isto num arquivo texto sem formatação, não verá diferença alguma). Comandos e outras entradas a serem digitadas literalmente em seu sistema estarão devidamente marcados entre aspas (como `aqui').
Oportunamente, não temos na língua portuguesa um pequeno problema que se tem na língua inglesa: o dilema sobre a colocação da pontuação final de uma frase dentro ou fora das aspas. O autor do original em inglês optou por colocá-la fora das aspas. Como esta já é a convenção adotada em nossa língua, não temos de escolher entre a correção gramatical e a clareza para o leitor. Assim, quando descrevermos o comando para ir ao diretório acima, você terá a certeza de que deve digitar exatamente duas vezes o ponto final, como em: ``cd ..''.
| Próxima | ||
| Passos Rápidos - Compilação do Kernel |