Como Escrever Módulos
                     Para o Kernel



                                Fábio Olivé Leite
            ...
Tópicos
●
    Não era monolítico?
●
    Adicionando código a um kernel em execução
●
    Removendo código de um kernel em ...
Não era monolítico?
●
    Sim! Continua sendo
●
    Partes não essenciais podem ser carregadas 
    sob­demanda
●
    Gera...
Adicionando código
               a um kernel em execução
●
    Não se faz! (para os iniciantes)
●
    Faça com cuidado! (...
Removendo código
             de um kernel em execução
●
    Mais perigoso ainda!!!
      –   Races aos montes
●
    Pode ...
Símbolos e ligação dinâmica
●
    O kernel exporta vários símbolos
      –   Ponteiros para funções
●
    O módulo usa os ...
Prática
●
    Makefile padrão
●
    Quais #includes usar?
●
    Parâmetros pro gcc
●
    Módulo “Hello World!”
●
    Compi...
Demonstração / Perguntas




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




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

Como Escrever Módulos Para o Kernel - Fábio Olivé Leite

1.013 visualizações

Publicada em

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

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

Como Escrever Módulos Para o Kernel - Fábio Olivé Leite

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

×