Agora o Kernel
Linux vem com a compressão
xz e sua extensão é ".tar.xz".
O comando para descompactá-lo, é:
# tar -x --xz -f linux-3.x.x.tar.xz
Talvez seja preciso instalar os pacotes "xz-lzma", "xzdec", "xzoom", "xz-utils", "xzgv", e "xzip". Alguns desses pacotes servem para descompactar arquivos com imagens, mas instale todos.
Para uma configuração bem feita, é necessário obter anteriormente algumas informações do seu hardware. Uma das formas é invadindo o diretório
/proc:
# cat /proc/cpuinfo # Processador
# cat /proc/meminfo  
# Memória
# man proc  
# No manual você vê o nome dos arquivos para usar nos comandos
Nós vamos configurar, de forma básica, alguns parâmetros e incrementar outros. Ao compilar seu kernel, seja insistente, após praticar umas 3 ou 4 vezes você, estará "tampinha" em configuração e compilação de qualquer kernel.
Comandos de configuração do kernel:
# make config #Modo texto
# make menuconfig  
#Modo texto em cor, radiolists e diálogos (ncurses)
# make xconfig #Modo gráfico X Windows (Qt)
# make gconfig  
#Modo gráfico X windows (GTK+)
# make nconfig #Menus de texto aprimorados baseados em cor
# make oldconfig  
#Configuração com base no conteúdo do arquivo /.config existente do kernel anterior
# make silentoldconfig #Como acima, mas evita congestionar a tela com perguntas já respondidas. Além disso, atualiza as dependências
# make defconfig #Cria um arquivo /.config usando o valor padrão a partir de "arch/$ARCH /configs/${PLATFORM}_defconfig", dependendo da arquitetura
# make ${PLATAFORM}_defconfig #Cria um arquivo /.config, usando o valor padrão "arch/$ARCH/configs/${PLATAFORM}_defconfig". Use make help para obter uma lista de todas as plataformas disponíveis para sua arquitetura
# make allyesconfig #Cria um arquivo /.config definindo valores "y", tanto quanto possível
# make allmodconfig #Cria um arquivo /.config definindo valores para "m", tanto quanto possível
# make allnoconfig #Cria um arquivo /.config definindo valores para "n", tanto quanto possível
# make randconfig #Cria um arquivo /.config definindo valores aleatórios
É aconselhável utilizar o
make menuconfig, pois o
make config é modo texto, e passa por todas as opções de configuração do kernel onde você vai digitando "y" (yes) ou "n" (no). Caso queira testar para estudo, digite
make config e vá lendo as opções em inglês. Para sair, é só digitar
Ctrl+C.
Obs.: para utilizar as opções gráficas, talvez você tenha que conseguir e instalar as bibliotecas necessárias.
A janela do menuconfig é simples de navegar:
- Para entrar em qualquer opção, use <ENTER>;
- Para navegar nas opções, use as setas de direção;
- Para selecionar, use a barra de espaços;
- Para sair, pressione a tecla <ESC> duas vezes seguidas: <ESC> <ESC>.
Para maiores informações sobre cada opção, é só selecioná-la com a seta de direção e pressionar as teclas
Shift e
? (ponto de interrogação) que aparecerá uma janelinha com as informações (em inglês). Para sair, dê ENTER.
Opções de compilação:
- [ * ] Habilitado (built-in)
- [ ] Não está habilitado
- [ M ] Habilitado (Módulo)
Com a opção
built-in (embutido) habilitada, o módulo será incorporado ao kernel na compilação (passará a fazer parte do kernel) e será carregado toda vez na inicialização junto com o kernel, ou seja, o módulo deixará de funcionar como módulo.
Este é o comportamento modular do kernel Linux: você pode escolher se quer incorporar um módulo ao kernel (isso fará a imagem do kernel ficar maior) ou se quer que o módulo continue como módulo, sendo suas funções carregadas na memória somente quando um programa relativo ao módulo for usado.
Os programas essenciais devem ter os módulos relativos a ele habilitados como built-in. Para saber quais módulos incorporar, depende da finalidade (servidor web, DHCP, DNS, desktop, etc) e do uso específico da máquina.
Por exemplo, mesmo usando a máquina como desktop, você pode ser um Web Designer e usar bastantes programas que trabalham com imagens e vídeos, ter uma placa de vídeo potente e memória disponível suficiente, daí você pode compilar o kernel com os módulos necessários incorporados uma vez, que o uso é constante.
* Importante: verifique a opção "Enable loadable module support" ou "Loadable module support", ou similar, e habilite "Forced module loading" ou "Kernel module loader", ou similar. Se estas opções não estiverem como built-in, poderá ter problemas com o seu sistema.
Na opção "File systems", os sistemas de arquivos usados pelas partições da sua instalação deverão, obrigatoriamente, sempre ser configurado como built-in <*>. Os demais sistemas recomendam-se deixar como módulo <M>. Isto é, obrigatório ao se configurar o kernel em toda e qualquer distribuição
GNU/Linux.
A seguir, para encerrar, algumas sugestões para configuração do Kernel Linux.
Após entrar no
menuconfig:
# make menuconfig #Entra nas configurações do kernel
Para alterar de "M" para "*", e vice-versa, é só pressionar a barra de espaços.
Vá em "Processor type and features", e marque (barra de espaços) a opção que corresponde ao processador da máquina.
Mais abaixo, vá em "Timer frequency". Se a sua instalação for do tipo servidor, marque a opção "100 HZ" (isso melhorará o tempo de resposta do servidor para as requisições). Para Desktop, deixe como está.
Retorne ao menu principal.
Vá em: Networking support → Networking options → Network packet filtering framework (netfilter) → IP: netfilter configuration
Verifique se "IPv4 connection tracking support (required for NAT)" está marcada.
Mais abaixo, marque as opções:
- IPv4 NAT
- MASQUERADE target support
- NETMAP target support
- REDIRECT target support
Volte ao menu principal.
Vá em "File Systems", marque os sistemas de arquivo utilizados no particionamento da instalação com: "*"
Mais abaixo, vá em "Native language support" e marque com "*" as opções:
- Codepage 860 (Portuguese)
- ASCII (United...)
- NLS 8859-1 (Latin 1, ...)
- NLS UTF-8
Retorne ao menu principal dando EXIT. Após o último EXIT, aparecerá a janela "Do you wish...", deixe como: "Yes" e tecle EnTER.
Após, é só seguir com os comandos de compilação de acordo com a sua distribuição.
Você pode encontrar mais informações sobre como utilizar as ferramentas de configuração do kernel Linux, entrando no arquivo correspondente ao kernel, por exemplo: "linux-3.8.3".
E indo em: Documentation → kbuild → kconfig.txt
Ou, pode acessar o mesmo arquivo após criar o link simbólico.
Nascimento do Linux
Nos links abaixo, você encontra as três mensagens iniciais (com tradução) de Linus Benedict Torvalds.
A data mais aceita para o nascimento do Linux, é 25 de agosto de 1991.
Referências