Your SlideShare is downloading. ×
Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite

839
views

Published on

Published in: Technology, News & Politics

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
839
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Como Colaborar no Desenvolvimento do Kernel Linux Fábio Olivé Leite fabio.olive@gmail.com 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 2. Tópicos ● O que é o kernel Linux? ● Como ele é desenvolvido? ● Sua hierarquia social ● Sua estrutura ● Seu comportamento ● A mítica figura do kernel hacker ● Ferramentas para começar 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 3. O que é o kernel Linux? ● Núcleo do Sistema Operacional – Linux é só o caroço ● É carregado pelo boot loader, inicializa o  hardware, e inicia o primeiro processo ● Funciona geralmente em benefício dos  processos, por trás dos panos ● Gnome, KDE, X, login, vi, nada é kernel 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 4. Como ele é desenvolvido? ● O processo de desenvolvimento é  massivamente distribuído ● Funciona 24h por dia ● Primariamente via emails em listas de  discussão e patches ● Peer review intenso 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 5. Sua hierarquia social ● O time de desenvolvimento é uma  MERITOCRACIA ● A confiança é conquistada aos poucos,  baseada em quesitos TÉCNICOS ● As diversas áreas do kernel possuem  pessoas responsáveis ● Todos são “casca grossa” 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 6. Sua estrutura ● Projeto estruturado muito limpo ● Interfaces bem definidas entre blocos Proc 1 Proc 2 Proc 1 Chamadas de Sistema Protocolos de Rede Sistemas de arquivos Processos Seriais Rede Bloco Memória Hardware 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 7. Sua estrutura fleite@sleipnir:~/git/linux-2.6 $ ls arch cscope.out ipc net block cscope.po.out Kbuild README COPYING Documentation kernel REPORTING-BUGS CREDITS drivers lib scripts crypto fs MAINTAINERS security cscope.files include Makefile sound cscope.in.out init mm usr $ ls net 802 dccp Kconfig nonet.c tipc ... bluetooth ipv4 netfilter sctp xfrm bridge ipv6 netlabel socket.c compat.c ipx netlink sunrpc core irda netrom sysctl_net.c 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 8. Seu comportamento ● Depois do boot, o kernel está sempre: – Atendendo pedidos dos processos – Atendendo pedidos do hardware ● Nunca fica esperando ● Redes e disco influenciam memória, que  influencia rede e disco; tudo é interligado 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 9. A mítica figura do kernel hacker ● “Mamãe, eu quero ser um kernel hacker!” ● É complexo, mas nem tanto – Pode­se começar pequeno, e isto também tem um  valor inestimável (kernel janitors) ● Antes de mais nada, entender de arquitetura de  computadores, pois o kernel gerencia o  hardware 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 10. Ferramentas para começar ● Uma máquina com Linux ● Um bom editor de textos PARA CÓDIGO ● Compilador C ● git para baixar o código fonte ● cscope para não se perder ● diff e patch ● Programa de e­mail bom 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 11. Ferramentas para começar Uma máquina com Linux ● O Linux é desenvolvido usando Linux :) ● Para mexer no kernel, é necessário uma  máquina bem configurada e funcionando – Se der problema, pelo menos tu sabes que foi  numa mexida no kernel – Mexer no kernel tem o poder de estragar todo o  resto 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 12. Ferramentas para começar Um bom editor de CÓDIGO ● Terminal: – Bom e velho vi (vim!) – EMACS ● Gráficos – Gnome: gedit – KDE: kate, kwrite ● CSCOPE! 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 13. Ferramentas para começar Compilador C ● O kernel é feito em C e um pouco de  Assembly ● Basta instalar os pacotes de  desenvolvimento da sua distro – Talvez já estejam instalados ● GCCismos 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 14. Ferramentas para começar git para baixar código fonte ● O git foi desenvolvido especificamente para  versionar o código do kernel, de acordo com  as suas necessidades específicas ● “stupid content tracker” ● Cada repositório é completo ● Suporta vários modelos de desenvolvimento 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 15. Ferramentas para começar cscope para não se perder ● O cscope gera uma base de dados que  descreve todos os símbolos presentes em  um programa em C ● Esta base pode ser usada pelos editores de  código para navegar entre arquivos e através  das funções facilmente 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 16. Ferramentas para começar diff e patch ● diff e patch são os “vovôs” do versionamento  de código ● Ainda são usados diariamente ● diff calcula a diferença entre dois arquivos de  texto (código fonte é texto) ● patch aplica as modificações contidas num  arquivo gerado pelo diff 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 17. Ferramentas para começar Programa de email bom ● Deve­se ter certos cuidados ao enviar  patches (diffs) por email ● A forma padrão de envio de patches é por  email, auxiliado pelo git ● Principais pontos a cuidar – Tabs e espaços – Quebras de linha 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 18. O negócio é começar! Ninguém nasceu sabendo. Algumas pessoas resolveram começar. Ever tried. Ever failed. No matter. Try again. Fail again. Fail better. (Samuel Beckett) 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 19. Demonstração / Perguntas A única pergunta boba é a não perguntada. 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre