quarta-feira, setembro 08, 2010

Aula 3 de Sistemas Operacionais Abertos

Livro do Robert Love, LKD, capítulo 2


Obtendo o código-fonte do Kernel Linux


  • Usando git


    • Não é a maneira mais fácil, e deve ser usada apenas por aqueles que querem acompanhar as modificações, ou trabalhar na fronteira do desenvolvimento. É a versão de hoje do kernel. CUIDADO COM FIREWALLS MAL CONFIGURADOS.


    • $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


  • Código-fonte da sua distribuição.


    • É o método recomendado para nós
    • Ubuntu 10.04: kernel 2.6.32.XX, onde XX depende do quão atualizado está o seu sistema.
    • Instale o pacote linux-source.
    • Um arquivo zipado (.bz2) será colocado na pasta /usr/src/ , chamado linux-source.tar.bz2. Copie este arquivo para a sua pasta pessoal (o seu home) e descompacte-o. Será criada uma pasta linux-source

A árvore do Kernel e suas pastas.

O kernel contém muitas pastas. Algumas delas serão vistas aqui, verifique as outras no livro.

Pasta                                                Descrição
arch                                                  Código dependente da arquitetura (x86, ARM, MIPS,...)
Documentation                                  Documentação
drivers                                              Drivers em geral (a maior pasta)
include                                              Kernel headers, arquivos .h do kernel, veja manual de C.
init                                                    inicialização do kernel
kernel                                               subsistemas principais
mm                                                   gerenciamento de memória
net                                                    subsistema de rede





Compilando o Kernel

Antes de compilar o kernel, precisamos configurá-lo. Queremos o suporte a funcionalidade de gerencia de memória A ou B ? Queremos o driver de placa de áudio X ou Y ? Podemos configurar estas opções antes de compilar o kernel. Há ferramentas que ajudam nesta compilação.

Por exemplo, digitando o comando (na pasta onde você colocou o kernel, já descompactado)

make menuconfig

É oferecido a você um menu de opções de configuração do kernel, que você pode navegar facilmente, escolhendo as opções que mais lhe agradam.
Se você não sabe nada, e está apenas começando, pode gerar uma configuração default (padrão) para a sua plataforma, que será detectada automaticamente, usando o comando:

make defconfig

Este comando cria a configuração padrão. Esta configuração é guardada num arquivo chamado .config (note que arquivos começando por . no Linux são ocultos. Para vê-los, va no menu do gerenciador de arquivos e marque ver arquivos ocultos). Você pode editar esta configuração diretamente neste arquivo texto, e salvá-lo com este nome. Após, rode o comando:

make oldconfig

Para que o arquivo editado a mão por você seja interpretado e validado. Está configurado o kernel, pronto para compilação, usando o comando:

make

Vá tomar um chá, café ou chimarrão enquanto espera.

Instale o kernel

Em x86, com grub2, você precisa copiar ua imagem do kernel recém-compilado para uma pasta do sistema, editar o arquivo de configuração do grub (o bootloader, programa que faz a inicialização), colocando as informações do seu kernel lá.

Tarefa: Compile o kernel no seu computador, na sua casa.


Nenhum comentário: