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