SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Como ajudar no desenvolvimento
       do kernel Linux?



           Fábio Olivé Leite
        fabio.olive@gmail.com
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
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
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
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”
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
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
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
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
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
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
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!
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
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
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
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
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
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)
Obrigado!




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

Weitere ähnliche Inhalte

Was ist angesagt?

Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerStefan Teixeira
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneosFernando Ike
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting dockerRafael Gomes
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerStefan Teixeira
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeRoberto Hashioka
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Mario Guedes
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema OperacionalAnderson Favaro
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Análise de Código Malicioso no Linux
Análise de Código Malicioso no LinuxAnálise de Código Malicioso no Linux
Análise de Código Malicioso no Linuxcrimesciberneticos
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsFernando Mercês
 

Was ist angesagt? (20)

Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
 
Android Fat Binaries
Android Fat BinariesAndroid Fat Binaries
Android Fat Binaries
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Troubleshooting docker
Troubleshooting dockerTroubleshooting docker
Troubleshooting docker
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
TDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de DockerTDC 2015 POA - O Fantástico Mundo de Docker
TDC 2015 POA - O Fantástico Mundo de Docker
 
Orquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e ComposeOrquestrando Docker Containers: Machine, Swarm e Compose
Orquestrando Docker Containers: Machine, Swarm e Compose
 
Gentoo
GentooGentoo
Gentoo
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Linux básico
Linux básicoLinux básico
Linux básico
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!Turbinando o seu sistema com Redis!
Turbinando o seu sistema com Redis!
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Análise de Código Malicioso no Linux
Análise de Código Malicioso no LinuxAnálise de Código Malicioso no Linux
Análise de Código Malicioso no Linux
 
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux SystemsLinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
LinuxCon 2010: Tutorial - Reverse Engineering on GNU/Linux Systems
 

Andere mochten auch

Destruíção das zonas costeiras
Destruíção das zonas costeirasDestruíção das zonas costeiras
Destruíção das zonas costeirasTiago Pinto
 
Actividade 1 dia 3 nov
Actividade 1 dia 3 novActividade 1 dia 3 nov
Actividade 1 dia 3 novruigalvao
 
Instruções de montagem - Rotoport
Instruções de montagem - RotoportInstruções de montagem - Rotoport
Instruções de montagem - Rotoportrotoport
 
Com gostinho de saúde
Com gostinho de saúdeCom gostinho de saúde
Com gostinho de saúdenica100284
 
37panccronica 1216204848378669-8
37panccronica 1216204848378669-837panccronica 1216204848378669-8
37panccronica 1216204848378669-8Mocte Salaiza
 
Painel fotovoltaico
Painel fotovoltaicoPainel fotovoltaico
Painel fotovoltaicolaranjiiz7
 
P.t republica
P.t republicaP.t republica
P.t republicaruigalvao
 
04.decreto n 5.626-2005
04.decreto n 5.626-200504.decreto n 5.626-2005
04.decreto n 5.626-2005rosana bastos
 
João destro slide
João destro slideJoão destro slide
João destro slideWebgenium
 
Cadastre Information System - Esri EUE 2011, Lisboa - Portugal
Cadastre Information System - Esri EUE 2011, Lisboa - PortugalCadastre Information System - Esri EUE 2011, Lisboa - Portugal
Cadastre Information System - Esri EUE 2011, Lisboa - PortugalFernando Gil
 
synthesis and spectral studies on cardanol based polyurethanes
synthesis and spectral studies on cardanol based polyurethanessynthesis and spectral studies on cardanol based polyurethanes
synthesis and spectral studies on cardanol based polyurethanesINFOGAIN PUBLICATION
 
A minha família, Domingos, 6ºE
A minha família, Domingos, 6ºEA minha família, Domingos, 6ºE
A minha família, Domingos, 6ºEguest638962
 
4. tratamiento de la tuberculosis 1
4. tratamiento de la tuberculosis 14. tratamiento de la tuberculosis 1
4. tratamiento de la tuberculosis 1Mocte Salaiza
 
Miomatosis uterina[2]
Miomatosis uterina[2]Miomatosis uterina[2]
Miomatosis uterina[2]Mocte Salaiza
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBTony Alexander Hild
 

Andere mochten auch (20)

Destruíção das zonas costeiras
Destruíção das zonas costeirasDestruíção das zonas costeiras
Destruíção das zonas costeiras
 
Actividade 1 dia 3 nov
Actividade 1 dia 3 novActividade 1 dia 3 nov
Actividade 1 dia 3 nov
 
Inteligências
InteligênciasInteligências
Inteligências
 
Instruções de montagem - Rotoport
Instruções de montagem - RotoportInstruções de montagem - Rotoport
Instruções de montagem - Rotoport
 
Com gostinho de saúde
Com gostinho de saúdeCom gostinho de saúde
Com gostinho de saúde
 
37panccronica 1216204848378669-8
37panccronica 1216204848378669-837panccronica 1216204848378669-8
37panccronica 1216204848378669-8
 
Hcv hg vppt
Hcv hg vpptHcv hg vppt
Hcv hg vppt
 
AS FUNÇÕES DO USO DO TWITTER PELOS POLÍTICOS DO ESTADO DO PIAUÍ
AS FUNÇÕES DO USO DO TWITTER PELOS POLÍTICOS DO ESTADO DO PIAUÍ AS FUNÇÕES DO USO DO TWITTER PELOS POLÍTICOS DO ESTADO DO PIAUÍ
AS FUNÇÕES DO USO DO TWITTER PELOS POLÍTICOS DO ESTADO DO PIAUÍ
 
Painel fotovoltaico
Painel fotovoltaicoPainel fotovoltaico
Painel fotovoltaico
 
Cefalosporinas
CefalosporinasCefalosporinas
Cefalosporinas
 
P.t republica
P.t republicaP.t republica
P.t republica
 
04.decreto n 5.626-2005
04.decreto n 5.626-200504.decreto n 5.626-2005
04.decreto n 5.626-2005
 
João destro slide
João destro slideJoão destro slide
João destro slide
 
Vih infección
Vih infecciónVih infección
Vih infección
 
Cadastre Information System - Esri EUE 2011, Lisboa - Portugal
Cadastre Information System - Esri EUE 2011, Lisboa - PortugalCadastre Information System - Esri EUE 2011, Lisboa - Portugal
Cadastre Information System - Esri EUE 2011, Lisboa - Portugal
 
synthesis and spectral studies on cardanol based polyurethanes
synthesis and spectral studies on cardanol based polyurethanessynthesis and spectral studies on cardanol based polyurethanes
synthesis and spectral studies on cardanol based polyurethanes
 
A minha família, Domingos, 6ºE
A minha família, Domingos, 6ºEA minha família, Domingos, 6ºE
A minha família, Domingos, 6ºE
 
4. tratamiento de la tuberculosis 1
4. tratamiento de la tuberculosis 14. tratamiento de la tuberculosis 1
4. tratamiento de la tuberculosis 1
 
Miomatosis uterina[2]
Miomatosis uterina[2]Miomatosis uterina[2]
Miomatosis uterina[2]
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEB
 

Ähnlich wie Como ajudar no desenvolvimento do kernel Linux

Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Tchelinux
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux DayFábio Albuquerque
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafTchelinux
 
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPALinux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPAMarcelo Veiga Neves
 
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesDesenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesTchelinux
 
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Marcelo Veiga Neves
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Engenharia Reversa para Principiantes
Engenharia Reversa para PrincipiantesEngenharia Reversa para Principiantes
Engenharia Reversa para PrincipiantesWanderley Caloni
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 RemarksRicardo Katz
 
Fortes Papo Developer
Fortes Papo DeveloperFortes Papo Developer
Fortes Papo DeveloperJosé Araújo
 
Entendendo a linkedição em C++
Entendendo a linkedição em C++Entendendo a linkedição em C++
Entendendo a linkedição em C++Rodrigo Strauss
 
1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux EmbarcadoDiego Sueiro
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazTchelinux
 

Ähnlich wie Como ajudar no desenvolvimento do kernel Linux (20)

Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Semana da computacao - Linux Day
Semana da computacao - Linux DaySemana da computacao - Linux Day
Semana da computacao - Linux Day
 
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling LandgrafDesenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilling Landgraf
 
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPALinux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
Linux em Sistemas Embarcados - SACTA 2010 - UNIPAMPA
 
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga NevesDesenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
Desenvolvendo Sistemas de Linux Embarcado - Marcelo Veiga Neves
 
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
Desenvolvendo Sistemas de Linux Embarcado - Tchelinux 2009
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Lab so-abertos-unidade8
Lab so-abertos-unidade8Lab so-abertos-unidade8
Lab so-abertos-unidade8
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Engenharia Reversa para Principiantes
Engenharia Reversa para PrincipiantesEngenharia Reversa para Principiantes
Engenharia Reversa para Principiantes
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Kubecon EU 2019 Remarks
Kubecon EU 2019 RemarksKubecon EU 2019 Remarks
Kubecon EU 2019 Remarks
 
Fortes Papo Developer
Fortes Papo DeveloperFortes Papo Developer
Fortes Papo Developer
 
Apostila
ApostilaApostila
Apostila
 
Apostila Linux Educacional 3.0
Apostila Linux Educacional 3.0Apostila Linux Educacional 3.0
Apostila Linux Educacional 3.0
 
Entendendo a linkedição em C++
Entendendo a linkedição em C++Entendendo a linkedição em C++
Entendendo a linkedição em C++
 
1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado1º IoT Day - O que é Linux Embarcado
1º IoT Day - O que é Linux Embarcado
 
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes VazNovidades no OpenBSD 4.3 - Leonardo Menezes Vaz
Novidades no OpenBSD 4.3 - Leonardo Menezes Vaz
 

Mehr von Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Tchelinux
 

Mehr von Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 
Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.Desenvolvendo Jogos com pygame.
Desenvolvendo Jogos com pygame.
 

Como ajudar no desenvolvimento do kernel Linux

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