Como Colaborar no
    Desenvolvimento do Kernel Linux



                                  Fábio Olivé Leite
             ...
Tópicos
   ●
       O que é o kernel Linux?
   ●
       Como ele é desenvolvido?
   ●
       Sua hierarquia social
   ●
  ...
O que é o kernel Linux?
   ●
       Núcleo do Sistema Operacional
         –   Linux é só o caroço
   ●
       É carregado...
Como ele é desenvolvido?
●
    O processo de desenvolvimento é 
    massivamente distribuído
●
    Funciona 24h por dia
●
...
Sua hierarquia social
   ●
       O time de desenvolvimento é uma 
       MERITOCRACIA
   ●
       A confiança é conquista...
Sua estrutura
●
    Projeto estruturado muito limpo
●
    Interfaces bem definidas entre blocos

      Proc 1             ...
Sua estrutura
  fleite@sleipnir:~/git/linux-2.6
  $ ls
  arch           cscope.out     ipc                                ...
Seu comportamento
●
    Depois do boot, o kernel está sempre:
      –   Atendendo pedidos dos processos
      –   Atendend...
A mítica figura do kernel hacker
●
    “Mamãe, eu quero ser um kernel hacker!”
●
    É complexo, mas nem tanto
      –   P...
Ferramentas para começar
   ●
       Uma máquina com Linux
   ●
       Um bom editor de textos PARA CÓDIGO
   ●
       Com...
Ferramentas para começar
              Uma máquina com Linux
   ●
       O Linux é desenvolvido usando Linux :)
   ●
     ...
Ferramentas para começar
             Um bom editor de CÓDIGO
   ●
       Terminal:
         –   Bom e velho vi (vim!)
   ...
Ferramentas para começar
                   Compilador C
   ●
       O kernel é feito em C e um pouco de 
       Assembly
...
Ferramentas para começar
             git para baixar código fonte
   ●
       O git foi desenvolvido especificamente para...
Ferramentas para começar
             cscope para não se perder
   ●
       O cscope gera uma base de dados que 
       de...
Ferramentas para começar
                    diff e patch
   ●
       diff e patch são os “vovôs” do versionamento 
      ...
Ferramentas para começar
              Programa de email bom
   ●
       Deve­se ter certos cuidados ao enviar 
       pat...
O negócio é começar!

                          Ninguém nasceu sabendo.

            Algumas pessoas resolveram começar.

...
Demonstração / Perguntas




       A única pergunta boba é a não perguntada.




1° Workshop de Desenvolvimento TcheLinux...
Próximos SlideShares
Carregando em…5
×

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

1.088 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.088
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×