palestra 2º café com software livre - david jourdain - receita: aprenda a cozinhar seu bolo de...
TRANSCRIPT
Receita: Aprenda a cozinhar seu bolo de Kernel
David Jourdain
Manipulação de Kernel LinuxManipulação de Kernel Linux
- Pré requisitos para manipulação de uma Kernel Linux
- Linux pré-instalado (No exemplo, um Debian-like)
- Arquivo fonte da Kernel (linux source)
- libncurses5-dev; make; gcc
- kernel-package; build-essential; initramfs-tools
- Manipulação da Kernel (make menuconfig)
- Compilação e empacotamento
- Instalação da Kernel
- Mapa da Kernel Linux
Linux SourceLinux Source
Podemos utilizar um “Linux Source” de qualquer origem, desde que o “source”
possua os módulos que sejam compatíveis com o ambiente em uso. Exemplo:
- Ambiente Debian-Like
- Podemos usar “Linux Source” da kernel.org
- Podemos usar “Linux Source” do ubuntu
- Podemos usar “Linux Source” do debian
- Entre outras fontes... (procure fontes confiáveis!!)
LIBNCURSES5-DEVLIBNCURSES5-DEV
Conjunto de bibliotecas de funções da família ncurses (new curses), que
gerenciam programas, extensões, lib's e manuais para programação, sob GNU/GPL.
Oferece um método independente para atualizar caracteres na tela.
MAKEMAKE
O objetivo do utilitário MAKE é determinar automaticamente quais partes de um
grande programa precisam ser recompiladas e executar os comandos para
recompilá-los. O MAKE pode ser utilizado com qualquer linguagem de
programação, cujo compilador possa ser executado com um comando. O MAKE
pode ser usado para descrever qualquer tarefa em que alguns arquivos possam
ser atualizados automaticamente com os outros, sempre que os outros mudarem.
Para usar o MAKE, é necessário escrever um arquivo chamado "makefile", que
descreve as relações entre os arquivos em seu programa, e o estado dos
comandos para atualizar cada arquivo.
GCCGCC
O GCC é o compilador padrão para C, C++, Objective-C, Objective-C++, Ada,
Fortran 95, e Java em todas as arquiteturas. O pacote do GCC também provê
libgcc1, libgcc2 (m68k) e libgcc4 (hppa) que contêm as GCC intrinsics e libstdc+
+6.
KERNEL-PACKAGEKERNEL-PACKAGE
Um pacote Debian de utilitários para construir uma Kernel Linux. Possui arquivos
“.config” pré-configurados para diversas arquiteturas. O comando para compilação
e empacotamento “make-kpkg” está dentro deste pacote.
BUILD-ESSENTIALBUILD-ESSENTIAL
Referencia todos os pacotes essenciais para efetuar a
construção/manipulação/edição de pacotes para Debian's-Like.
INITRAMFS-TOOLSINITRAMFS-TOOLS
Pacote de scripts que facilita a criação de arquivos initrd.
Manipulação de KernelManipulação de Kernel
# make menuconfig
Comando utilizado para abrir o editor gráfico da Kernel.
Compilar Kernel e gerar PacoteCompilar Kernel e gerar Pacote
Após todo o processo de edição, podemos executar o comando abaixo, para
compilar e gerar pacotes de instalação do “fonte” editado (linux-source), da
“imagem” (linux-image) da Kernel e dos “cabeçalhos” (linux-headers) de interação
com a Kernel.
# make-kpkg kernel_image kernel_source kernel_headers
Arquivo initrdArquivo initrd
O arquivo initrd é um bloco de dispositivos somente de leitura. Também é uma
memória RAM virtual que é inicializada pelo gerenciador de boot (grub ou lilo)
antes que a kernel seja inicializada. A kernel então pode usar o conteúdo do initrd
para iniciar o sistema em duas etapas.
Na primeira etapa da inicialização, a kernel inicia-se e monta um sistema de
arquivos raiz inicial, a partir do conteúdo do initrd. Na segunda etapa, os drivers
adicionais e outros módulos são carregados. Depois de carregar os módulos
adicionais, um novo sistema de arquivos root é disponibilizado.
Instalação da KernelInstalação da Kernel
Com os arquivos gerados, podemos instalar a imagem da kernel e os cabeçalhos,
com o seguinte comando:
# dpkg -i kernel*.deb
Criar o arquivo initrd (caso não seja criado na compilação)
# mkinitramfs -o /boot/initrd.img-3.XX.XX /lib/modules/3.XX.XX
Atualizar o gerenciador de boot (no caso, o grub)
# update-grub
Mapa da Kernel LinuxMapa da Kernel Linux
Mas... Eu também gostaria de falar sobreMas... Eu também gostaria de falar sobreoutro assunto: outro assunto:
Sobre a SUA formação!Sobre a SUA formação!
Obrigado pela atenção!PERGUNTAS?
David Jourdain