palestra 2º café com software livre - david jourdain - receita: aprenda a cozinhar seu bolo de...
TRANSCRIPT
![Page 1: Palestra 2º Café com Software Livre - David Jourdain - Receita: Aprenda a cozinhar seu bolo de Kernel](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/1.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/2.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/3.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/4.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/5.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/6.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/7.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/8.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/9.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/10.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/11.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/12.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/13.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/14.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/15.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022032506/55ca40a6bb61eb10518b47d2/html5/thumbnails/16.jpg)
Obrigado pela atenção!PERGUNTAS?
David Jourdain