Your SlideShare is downloading. ×
0
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite

1,059

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,059
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
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 ajudar no desenvolvimento do kernel Linux? Fábio Olivé Leite fabio.olive@gmail.com
  • 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
  • 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
  • 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
  • 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”
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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!
  • 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
  • 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
  • 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
  • 16. Ferramentas para começar diff e patch ● diff e patch são os “ vovôs” d o 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
  • 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
  • 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)
  • 19. Obrigado! A única pergunta boba é a não perguntada.

×