===== Nível Básico =====
=== 1. Verificação da Versão do Kernel com `uname` ===
* **uname -r** - Exibe a versão do kernel em execução.
- Exemplo de uso: uname -r
- Descrição: Mostra a versão exata do kernel Linux em execução no sistema, útil para saber qual kernel está ativo.
=== 2. Listagem de Módulos do Kernel com `lsmod` ===
* **lsmod** - Lista todos os módulos do kernel carregados.
- Exemplo de uso: lsmod
- Descrição: Exibe uma lista de todos os módulos do kernel atualmente carregados no sistema, junto com o tamanho de cada módulo e o número de vezes que está em uso.
=== 3. Exibição de Informações de Módulos com `modinfo` ===
* **modinfo** - Exibe informações detalhadas sobre um módulo.
- Exemplo de uso: modinfo e1000
- Descrição: Exibe informações detalhadas sobre o módulo do kernel ''e1000'', incluindo autor, licença, dependências e parâmetros configuráveis.
===== Nível Intermediário =====
=== 1. Carregamento de Módulos do Kernel com `modprobe` ===
* **modprobe** - Carrega um módulo do kernel.
- Exemplo de uso: sudo modprobe e1000
- Descrição: Carrega o módulo do kernel ''e1000'' (driver de rede Intel), tornando-o ativo e disponível para uso no sistema.
=== 2. Remoção de Módulos do Kernel com `rmmod` ===
* **rmmod** - Remove um módulo do kernel.
- Exemplo de uso: sudo rmmod e1000
- Descrição: Remove o módulo do kernel ''e1000'' que está carregado, liberando os recursos associados a ele.
=== 3. Controle de Parâmetros de Módulos com `modprobe` ===
* **modprobe com parâmetros** - Carrega um módulo com parâmetros customizados.
- Exemplo de uso: sudo modprobe e1000 debug=1
- Descrição: Carrega o módulo do kernel ''e1000'' e habilita o modo de depuração passando o parâmetro ''debug=1''. Útil para ajustar o comportamento de módulos.
===== Nível Avançado =====
=== 1. Criação de Módulos do Kernel com Código Fonte ===
* **make modules** - Compila módulos do kernel a partir do código-fonte.
- Exemplo de uso:
cd /usr/src/linux
make modules
- Descrição: Compila todos os módulos do kernel a partir do código-fonte localizado em ''/usr/src/linux'', criando binários dos módulos para serem carregados posteriormente.
=== 2. Gerenciamento de Dependências de Módulos com `depmod` ===
* **depmod** - Atualiza as dependências de módulos do kernel.
- Exemplo de uso: sudo depmod -a
- Descrição: Atualiza as dependências dos módulos do kernel, garantindo que todos os módulos que dependem de outros estejam corretamente configurados para carregar na ordem certa.
=== 3. Configuração de Módulos em Inicialização com `modprobe.d` ===
* **modprobe.d** - Configura módulos para serem carregados na inicialização.
- Exemplo de uso:
sudo nano /etc/modprobe.d/e1000.conf
# Adicione a linha:
options e1000 debug=1
- Descrição: Cria um arquivo de configuração para o módulo ''e1000'' que será lido na inicialização, garantindo que o parâmetro ''debug=1'' seja passado automaticamente sempre que o módulo for carregado.
===== Nível Especializado =====
=== 1. Modificação de Parâmetros de Kernel em Execução com `sysctl` ===
* **sysctl** - Ajusta parâmetros do kernel em tempo real.
- Exemplo de uso: sudo sysctl -w net.ipv4.ip_forward=1
- Descrição: Habilita o redirecionamento de pacotes IPv4 no kernel, útil em ambientes de roteamento de rede. O comando ajusta esse parâmetro dinamicamente, sem precisar reiniciar o sistema.
=== 2. Monitoramento de Eventos do Kernel com `dmesg` ===
* **dmesg** - Exibe logs de eventos e mensagens do kernel.
- Exemplo de uso: dmesg | grep e1000
- Descrição: Filtra e exibe todas as mensagens relacionadas ao módulo ''e1000'', ajudando a depurar problemas relacionados ao driver de rede e monitorar mensagens de erros do kernel.
=== 3. Criação e Inserção de Módulos Personalizados com `insmod` ===
* **insmod** - Insere um módulo do kernel manualmente.
- Exemplo de uso: sudo insmod /path/para/modulo.ko
- Descrição: Insere um módulo personalizado no kernel, útil para testes de desenvolvimento. O módulo deve estar previamente compilado e armazenado no formato ''modulo.ko''.
=== 4. Debugging de Módulos com `ftrace` ===
* **ftrace** - Usa ferramentas de tracing para depuração de módulos.
- Exemplo de uso:
echo function > /sys/kernel/debug/tracing/current_tracer
echo e1000 > /sys/kernel/debug/tracing/set_ftrace_filter
cat /sys/kernel/debug/tracing/trace
- Descrição: Habilita o tracing de funções relacionadas ao módulo ''e1000'', exibindo chamadas detalhadas de funções para depuração em tempo real. Isso é útil para entender o comportamento interno de módulos.