SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Como Escrever Módulos
                     Para o Kernel



                                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
●
    Não era monolítico?
●
    Adicionando código a um kernel em execução
●
    Removendo código de um kernel em execução
●
    Símbolos e ligação dinâmica
●
    Prática



1° Workshop de Desenvolvimento TcheLinux    http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
Não era monolítico?
●
    Sim! Continua sendo
●
    Partes não essenciais podem ser carregadas 
    sob­demanda
●
    Geralmente drivers e protocolos
●
    Se fizer alguma coisa errada, trava mesmo



1° Workshop de Desenvolvimento TcheLinux   http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
Adicionando código
               a um kernel em execução
●
    Não se faz! (para os iniciantes)
●
    Faça com cuidado! (para os mais crescidinhos)
●
    Usa esse modelo e pronto (para os 
    experientes)
●
    Quais são os perigos?
●
    Como funciona?
1° Workshop de Desenvolvimento TcheLinux   http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
Removendo código
             de um kernel em execução
●
    Mais perigoso ainda!!!
      –   Races aos montes
●
    Pode estar em uso por aplicações
      –   Como saber?
●
    Pode ter recursos alocados
      –   Como liberar?


1° Workshop de Desenvolvimento TcheLinux   http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
Símbolos e ligação dinâmica
●
    O kernel exporta vários símbolos
      –   Ponteiros para funções
●
    O módulo usa os símbolos do kernel
●
    O módulo exporta seus pontos de entrada
●
    Na carga do módulo, é feita a ligação dinâmica 
    dos símbolos do kernel usados pelo módulo
●
    É chamado o ponto de entrada do módulo
1° Workshop de Desenvolvimento TcheLinux   http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
Prática
●
    Makefile padrão
●
    Quais #includes usar?
●
    Parâmetros pro gcc
●
    Módulo “Hello World!”
●
    Compilando
●
    Carregando/descarregando

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

Contenu connexe

Tendances

Processamento Assíncrono com PHP
Processamento Assíncrono com PHPProcessamento Assíncrono com PHP
Processamento Assíncrono com PHPFernando Fabricio
 
Mercado em computação
Mercado em computaçãoMercado em computação
Mercado em computaçãoFelipe Zampa
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 

Tendances (7)

Processamento Assíncrono com PHP
Processamento Assíncrono com PHPProcessamento Assíncrono com PHP
Processamento Assíncrono com PHP
 
Mercado em computação
Mercado em computaçãoMercado em computação
Mercado em computação
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
Dojo com Processing
Dojo com ProcessingDojo com Processing
Dojo com Processing
 
IDE Falcon C++
IDE Falcon C++IDE Falcon C++
IDE Falcon C++
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Dojo com Arduino
Dojo com ArduinoDojo com Arduino
Dojo com Arduino
 

En vedette

1. relacion medico paciente aspecto quirurgico
1. relacion medico paciente aspecto quirurgico1. relacion medico paciente aspecto quirurgico
1. relacion medico paciente aspecto quirurgicoMocte Salaiza
 
Ubuntu Certified Professional - William Souza
Ubuntu Certified Professional - William SouzaUbuntu Certified Professional - William Souza
Ubuntu Certified Professional - William SouzaTchelinux
 
Economizando recursos com terminais burros - Luiz Eduardo Guaraldo
Economizando recursos com terminais burros  - Luiz Eduardo GuaraldoEconomizando recursos com terminais burros  - Luiz Eduardo Guaraldo
Economizando recursos com terminais burros - Luiz Eduardo GuaraldoTchelinux
 
11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranasMocte Salaiza
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William SouzaTchelinux
 

En vedette (6)

1. relacion medico paciente aspecto quirurgico
1. relacion medico paciente aspecto quirurgico1. relacion medico paciente aspecto quirurgico
1. relacion medico paciente aspecto quirurgico
 
Ubuntu Certified Professional - William Souza
Ubuntu Certified Professional - William SouzaUbuntu Certified Professional - William Souza
Ubuntu Certified Professional - William Souza
 
Economizando recursos com terminais burros - Luiz Eduardo Guaraldo
Economizando recursos com terminais burros  - Luiz Eduardo GuaraldoEconomizando recursos com terminais burros  - Luiz Eduardo Guaraldo
Economizando recursos com terminais burros - Luiz Eduardo Guaraldo
 
11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas
 
Regulamento quadrilhas 2010
Regulamento quadrilhas 2010Regulamento quadrilhas 2010
Regulamento quadrilhas 2010
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William Souza
 

Similaire à Como Escrever Módulos Para o Kernel - 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
 
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
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteTchelinux
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcadaRodrigo Almeida
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoEmbarcados
 
Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Gaddiel Lemos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisEmanoel Lopes
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar pythonLourenço Junior
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Tchelinux
 
Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Marcos Marcolin
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
 
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015André Curvello
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfLuanaBatista74
 
Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAbdulSacur2
 
Prog shell
Prog shellProg shell
Prog shellTiago
 
Tópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxTópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxJadna Almeida
 

Similaire à Como Escrever Módulos Para o Kernel - 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
 
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
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Introdução à programação embarcada
Introdução à programação embarcadaIntrodução à programação embarcada
Introdução à programação embarcada
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcado
 
Detalhamento entrega linux4.0
Detalhamento entrega linux4.0Detalhamento entrega linux4.0
Detalhamento entrega linux4.0
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aprenda a programar python
Aprenda a programar pythonAprenda a programar python
Aprenda a programar python
 
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...
 
Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!Novidades PHP 7.4 e 8.0!
Novidades PHP 7.4 e 8.0!
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
 
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
 
Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptx
 
Hello World usando c#.net
Hello World usando c#.netHello World usando c#.net
Hello World usando c#.net
 
Prog shell
Prog shellProg shell
Prog shell
 
Workshop.pptx
Workshop.pptxWorkshop.pptx
Workshop.pptx
 
Tópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptxTópicos em Sistemas de Informação e Web I.pptx
Tópicos em Sistemas de Informação e Web I.pptx
 
Minicurso GNU/Linux
Minicurso GNU/LinuxMinicurso GNU/Linux
Minicurso GNU/Linux
 

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

Plus de 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 Escrever Módulos Para o Kernel - Fábio Olivé Leite

  • 1. Como Escrever Módulos Para o Kernel 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 ● Não era monolítico? ● Adicionando código a um kernel em execução ● Removendo código de um kernel em execução ● Símbolos e ligação dinâmica ● Prática 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 3. Não era monolítico? ● Sim! Continua sendo ● Partes não essenciais podem ser carregadas  sob­demanda ● Geralmente drivers e protocolos ● Se fizer alguma coisa errada, trava mesmo 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 4. Adicionando código a um kernel em execução ● Não se faz! (para os iniciantes) ● Faça com cuidado! (para os mais crescidinhos) ● Usa esse modelo e pronto (para os  experientes) ● Quais são os perigos? ● Como funciona? 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 5. Removendo código de um kernel em execução ● Mais perigoso ainda!!! – Races aos montes ● Pode estar em uso por aplicações – Como saber? ● Pode ter recursos alocados – Como liberar? 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 6. Símbolos e ligação dinâmica ● O kernel exporta vários símbolos – Ponteiros para funções ● O módulo usa os símbolos do kernel ● O módulo exporta seus pontos de entrada ● Na carga do módulo, é feita a ligação dinâmica  dos símbolos do kernel usados pelo módulo ● É chamado o ponto de entrada do módulo 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 7. Prática ● Makefile padrão ● Quais #includes usar? ● Parâmetros pro gcc ● Módulo “Hello World!” ● Compilando ● Carregando/descarregando 1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org 31/03/2007 – FTEC – Porto Alegre
  • 8. 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