Pular para o conteúdo principal

Lab 2.1 - Inspeção do Kernel e Processos do Sistema

Objetivos​

Ao final deste lab, você será capaz de:

  • Inspecionar o kernel Linux
  • Verificar os processos do sistema
  • Examinar o systemd e os serviços
  • Compreender a estrutura dos processos

Pré-requisitos​

  • Sistema Linux funcional (Ubuntu/Debian recomendado)
  • Acesso root ou sudo
  • Terminal aberto

Exercício 1: Informações sobre o Kernel​

Etapa 1: Versão do Kernel​

# Ver a versão do kernel
uname -a

# Somente a versão
uname -r

# Informações detalhadas
cat /proc/version

Pergunta: Qual versão do kernel você está usando?

Etapa 2: Módulos do Kernel​

# Ver os módulos carregados
lsmod

# Ver detalhes de um módulo
modinfo nome-modulo

# Ver módulos relacionados a uma palavra-chave
lsmod | grep network

Etapa 3: Parâmetros do Kernel​

# Ver os parâmetros sysctl
sysctl -a

# Ver um parâmetro específico
sysctl kernel.version

# Ver os parâmetros de rede
sysctl net.ipv4

Exercício 2: Processos do Sistema​

Etapa 1: Processo Init (PID 1)​

# Ver o processo init
ps -p 1

# Detalhes do processo
ps -p 1 -o pid,ppid,cmd,etime

# Ver o tipo de init
systemctl --version

Pergunta: Qual sistema de init você está usando? (systemd, SysVinit, etc.)

Etapa 2: Processos do Sistema​

# Ver todos os processos
ps aux

# Ver a árvore de processos
pstree

# Com PID
pstree -p

# Ver somente os processos do sistema
ps aux | grep -E '\[.*\]'

Etapa 3: Processos por Usuário​

# Processos do root
ps -u root

# Processos do seu usuário
ps -u $USER

# Contar os processos
ps aux | wc -l

Exercício 3: systemd e Serviços​

Etapa 1: Estado do systemd​

# Ver a versão do systemd
systemctl --version

# Ver o estado do systemd
systemctl status

# Ver as unidades ativas
systemctl list-units --type=service --state=running

Etapa 2: Serviços do Sistema​

# Ver todos os serviços
systemctl list-units --type=service

# Serviços ativos
systemctl list-units --type=service --state=active

# Serviços com falha
systemctl list-units --type=service --state=failed

Etapa 3: Detalhes de um Serviço​

# Estado de um serviço (ex: sshd)
systemctl status sshd

# Ver os logs
journalctl -u sshd

# Últimas linhas
journalctl -u sshd -n 50

Exercício 4: Exploração do /proc​

Etapa 1: Informações do Sistema​

# Informações da CPU
cat /proc/cpuinfo

# Informações de memória
cat /proc/meminfo

# Informações do sistema
cat /proc/loadavg

Etapa 2: Processos em /proc​

# Ver os processos
ls /proc/ | grep -E '^[0-9]+$'

# Informações sobre um processo (substituir PID)
cat /proc/1/status

# Arquivos abertos por um processo
ls -l /proc/1/fd/

Etapa 3: Informações de Rede​

# Conexões de rede
cat /proc/net/sockstat

# Estatísticas de rede
cat /proc/net/dev

Exercício 5: Análise Avançada​

Etapa 1: Uso de Recursos​

# Processos no topo
top -bn1 | head -20

# Com htop (se instalado)
htop

# Uso de CPU por processo
ps aux --sort=-%cpu | head -10

# Uso de memória por processo
ps aux --sort=-%mem | head -10

Etapa 2: Árvore de Processos​

# Árvore completa
pstree -a

# Com usuários
pstree -u

# Limitar a profundidade
pstree -L 2

Etapa 3: Processos Zumbi​

# Ver os processos zumbi
ps aux | grep -w Z

# Contar os zumbis
ps aux | grep -w Z | wc -l

Exercício 6: Monitoramento em Tempo Real​

Etapa 1: top​

# Iniciar top
top

# Comandos no top:
# - 'q': Sair
# - 'k': Matar um processo
# - 'r': Alterar prioridade (renice) de um processo
# - 'f': Alterar as colunas exibidas

Etapa 2: htop (se disponível)​

# Instalar htop
sudo apt install htop

# Iniciar
htop

# Mais interativo que o top

Etapa 3: Script de Monitoramento​

# Criar um script simples
cat > monitor.sh << 'EOF'
#!/bin/bash
echo "=== Kernel ==="
uname -a
echo
echo "=== Load Average ==="
uptime
echo
echo "=== Top 5 CPU ==="
ps aux --sort=-%cpu | head -6
echo
echo "=== Top 5 Memory ==="
ps aux --sort=-%mem | head -6
EOF

chmod +x monitor.sh
./monitor.sh

Verificação​

Checklist​

Verifique se você consegue:

  • Ver a versão do kernel
  • Listar os módulos carregados
  • Identificar o processo init (PID 1)
  • Ver os processos do sistema
  • Usar systemctl para ver os serviços
  • Explorar /proc para informações do sistema
  • Usar top/htop para monitoramento

Perguntas para Reflexão​

  1. Qual é o papel do processo PID 1?

    • Ele é o pai de todos os processos
    • Ele gerencia processos órfãos
    • Ele inicializa o sistema
  2. Qual é a diferença entre ps e top?

    • ps mostra um instantâneo
    • top mostra em tempo real
  3. Por que o /proc é importante?

    • Interface para o kernel
    • Informações em tempo real
    • Não são arquivos reais, tudo é virtual

Próximos Passos​

  • Lab 2.2: Análise da Gestão de Memória
  • Lab 2.3: Monitoramento Avançado do Sistema
  • Capítulo 2.3: Gestão de Memória e Swap

Lab criado em: Dezembro 2024