SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteTchelinux
 
Introdução ao GNU/Linux
Introdução ao GNU/LinuxIntrodução ao GNU/Linux
Introdução ao GNU/LinuxRobson Vaamonde
 
Instalando latex guia_rapido
Instalando latex guia_rapidoInstalando latex guia_rapido
Instalando latex guia_rapidoRegis da Silva
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Curso de Introdução ao Software Livre - Aula de 29/10/2009
Curso de Introdução ao Software Livre - Aula de 29/10/2009Curso de Introdução ao Software Livre - Aula de 29/10/2009
Curso de Introdução ao Software Livre - Aula de 29/10/2009Antônio Arapiraca
 
Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Gaddiel Lemos
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasLuiz Arthur
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkFlávio Lisboa
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Tchelinux
 
Monitoramento funcional e não funcional em containers
Monitoramento funcional e não funcional em containersMonitoramento funcional e não funcional em containers
Monitoramento funcional e não funcional em containersRenan Petronilho Sant Anna
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 

Was ist angesagt? (20)

Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé LeiteComo Escrever Módulos Para o Kernel - Fábio Olivé Leite
Como Escrever Módulos Para o Kernel - Fábio Olivé Leite
 
Introdução ao GNU/Linux
Introdução ao GNU/LinuxIntrodução ao GNU/Linux
Introdução ao GNU/Linux
 
Instalando latex guia_rapido
Instalando latex guia_rapidoInstalando latex guia_rapido
Instalando latex guia_rapido
 
Tutorial latex 2011
Tutorial latex 2011Tutorial latex 2011
Tutorial latex 2011
 
ZFS Filesystem
ZFS FilesystemZFS Filesystem
ZFS Filesystem
 
GNU/Linux - uma alternativa
GNU/Linux - uma alternativaGNU/Linux - uma alternativa
GNU/Linux - uma alternativa
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Seminario linux
Seminario linuxSeminario linux
Seminario linux
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Curso de Introdução ao Software Livre - Aula de 29/10/2009
Curso de Introdução ao Software Livre - Aula de 29/10/2009Curso de Introdução ao Software Livre - Aula de 29/10/2009
Curso de Introdução ao Software Livre - Aula de 29/10/2009
 
A Catedral e o Bazar
A Catedral e o BazarA Catedral e o Bazar
A Catedral e o Bazar
 
Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Detalhamento entrega linux4.0
Detalhamento entrega linux4.0
 
Sistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando ProgramasSistemas Operacionais - Gnu/Linux Instalando Programas
Sistemas Operacionais - Gnu/Linux Instalando Programas
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Monitoramento funcional e não funcional em containers
Monitoramento funcional e não funcional em containersMonitoramento funcional e não funcional em containers
Monitoramento funcional e não funcional em containers
 
Cygwin
CygwinCygwin
Cygwin
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 

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

Como Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteComo Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteTchelinux
 
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
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisEmanoel Lopes
 
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
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
Prog shell
Prog shellProg shell
Prog shellTiago
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1Leo Amorim
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
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
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema OperacionalAnderson Favaro
 
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
 
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
 
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...Sandro Suffert
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-trackMarcio Pereira
 

Ähnlich wie Como Colaborar no Desenvolvimento do Kernel Linux - Fábio Olivé Leite (20)

Como Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé LeiteComo Funciona o Kernel Linux - Fábio Olivé Leite
Como Funciona o Kernel Linux - Fábio Olivé Leite
 
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...
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
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
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Prog shell
Prog shellProg shell
Prog shell
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
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
 
Gentoo - Sistema Operacional
Gentoo - Sistema OperacionalGentoo - Sistema Operacional
Gentoo - Sistema Operacional
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
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
 
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
 
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...Iccyber2012   sandro suffert apura - jacomo picolini teamcymru - desafio fore...
Iccyber2012 sandro suffert apura - jacomo picolini teamcymru - desafio fore...
 
Entendendo os pacotes DEB
Entendendo os pacotes DEBEntendendo os pacotes DEB
Entendendo os pacotes DEB
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 
37064834 curso-back-track
37064834 curso-back-track37064834 curso-back-track
37064834 curso-back-track
 

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

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...
 
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
 
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é?
 

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

  • 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