palestra 2º café com software livre - david jourdain - receita: aprenda a cozinhar seu bolo de...

16
Receita: Aprenda a cozinhar seu bolo de Kernel David Jourdain

Upload: blusolsl

Post on 12-Aug-2015

68 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

Receita: Aprenda a cozinhar seu bolo de Kernel

David Jourdain

Page 2: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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

Page 3: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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!!)

Page 4: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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.

Page 5: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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.

Page 6: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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.

Page 7: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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.

Page 8: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

BUILD-ESSENTIALBUILD-ESSENTIAL

Referencia todos os pacotes essenciais para efetuar a

construção/manipulação/edição de pacotes para Debian's-Like.

Page 9: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

INITRAMFS-TOOLSINITRAMFS-TOOLS

Pacote de scripts que facilita a criação de arquivos initrd.

Page 10: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

Manipulação de KernelManipulação de Kernel

# make menuconfig

Comando utilizado para abrir o editor gráfico da Kernel.

Page 11: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de 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

Page 12: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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.

Page 13: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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

Page 14: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

Mapa da Kernel LinuxMapa da Kernel Linux

Page 15: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

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!

Page 16: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel

Obrigado pela atenção!PERGUNTAS?

David Jourdain