Pular para o conteúdo principal

Capítulo 2.2 - Kernel Linux

Objetivos de Aprendizagem​

Ao final deste capítulo, você será capaz de:

  • Compreender o papel do Kernel Linux
  • Explicar como o Kernel gerencia os recursos
  • Entender as chamadas de sistema (syscalls)
  • Identificar as interações com o hardware

O que é o Kernel Linux?​

O Kernel Linux é o núcleo do sistema operacional. Ele atua como uma interface entre o hardware e os softwares, gerenciando todos os recursos do sistema.


Papéis do Kernel​

1. Gerenciamento de Processos​

O Kernel cria, agenda e termina processos:

  • Criação: fork(), clone()
  • Escalonamento: Scheduler (CFS - Completely Fair Scheduler)
  • Finalização: exit(), kill()
  • Comunicação: pipes, sockets, sinais

2. Gerenciamento de Memória​

O Kernel gerencia a memória física e virtual:

  • Alocação: malloc() → kmalloc()
  • Memória virtual: Paginação, swap
  • Proteção: Separação dos espaços de memória
  • Cache: Buffer cache, page cache

3. Sistema de Arquivos​

O Kernel gerencia o acesso aos arquivos:

  • VFS: Virtual File System (interface unificada)
  • Suporte a múltiplos FS: ext4, xfs, btrfs, etc.
  • Permissões: Verificação dos direitos de acesso
  • Cache: Melhoria de desempenho

4. Gerenciamento de Rede​

O Kernel gerencia as comunicações de rede:

  • Stack TCP/IP: Implementação dos protocolos
  • Interfaces de rede: eth0, wlan0, etc.
  • Firewall: iptables, netfilter
  • Roteamento: Tabelas de roteamento

5. Gerenciamento de Dispositivos​

O Kernel gerencia os dispositivos de hardware:

  • Drivers: Drivers para cada dispositivo
  • Plug and Play: Detecção automática
  • Gerenciamento de energia: ACPI, suspend/resume
  • Interrupções: Gerenciamento de IRQ

Chamadas de Sistema (Syscalls)​

As aplicações se comunicam com o Kernel através das chamadas de sistema:

Exemplos de chamadas de sistema:

  • open(): Abrir um arquivo
  • read(): Ler de um arquivo
  • write(): Escrever em um arquivo
  • fork(): Criar um processo
  • exec(): Executar um programa
  • socket(): Criar um socket de rede

Arquitetura do Kernel​

O Kernel é organizado em módulos:

Tipos de módulos:

  • Core: Funcionalidades essenciais (sempre carregadas)
  • Modules: Funcionalidades opcionais (carregadas sob demanda)
  • Drivers: Drivers de hardware

Resumo​

Neste capítulo, você aprendeu:

Kernel Linux: Núcleo do sistema, interface hardware/software
Papéis: Gerenciamento de processos, memória, arquivos, rede, dispositivos
Chamadas de sistema: Interface entre aplicações e kernel
Arquitetura: Core + modules + drivers
Módulos: Carregamento dinâmico de funcionalidades


Próximos Passos​

Capítulo 2.3: Gerenciamento de Memória e Swap
Capítulo 2.4: Sistema de Arquivos Virtual (VFS)


Capítulo criado em: Dezembro 2024