Pular para o conteúdo principal

Capítulo 1.4 - Arquitetura de Alto Nível

Objetivos de Aprendizagem​

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

  • Compreender a estrutura de um sistema Linux
  • Identificar os componentes do Kernel
  • Identificar os componentes do Espaço do Usuário
  • Entender a comunicação entre os componentes

Introdução​

Um sistema Linux é organizado em várias camadas que trabalham juntas. Compreender essa arquitetura é essencial para dominar o Linux.


Visão Geral de um Sistema​

Estrutura Básica​

Dois espaços principais:

  1. Espaço do Usuário: Aplicativos e programas do usuário
  2. Espaço do Kernel: Gerenciamento do sistema e do hardware

Espaço do Usuário (User Space)​

Aplicativos​

Programas que você utiliza:

  • Navegadores web
  • Editores de texto
  • Ferramentas de desenvolvimento
  • Jogos, etc.

Shell​

Interface de linha de comando:

  • Bash: Shell padrão na maioria das distribuições
  • Zsh: Shell moderno e poderoso
  • Fish: Shell amigável

Bibliotecas​

Funções compartilhadas:

  • libc: Biblioteca C padrão
  • Outras: Bibliotecas especializadas

Serviços​

Programas em segundo plano:

  • systemd: Gerenciador de serviços
  • cron: Agendamento de tarefas
  • sshd: Servidor SSH

Espaço do Kernel (Kernel Space)​

Kernel Linux​

O núcleo do sistema:

  • Gerenciamento de Processos: Criação, escalonamento, finalização
  • Gerenciamento de Memória: Alocação, swap, proteção
  • Sistema de Arquivos: VFS, gerenciamento de arquivos
  • Gerenciamento de Rede: Stack TCP/IP, interfaces
  • Gerenciamento de Dispositivos: Drivers de hardware

Chamadas de Sistema (Syscalls)​

Interface entre User Space e Kernel Space:

  • open(), read(), write(): Arquivos
  • fork(), exec(): Processos
  • socket(), bind(): Rede
  • mmap(): Memória

Comunicação Entre Camadas​

Fluxo Típico​


Componentes de Hardware​

CPU​

  • Execução de instruções
  • Gerenciamento de processos
  • Escalonamento (scheduler)

Memória RAM​

  • Armazenamento temporário
  • Dados e código em execução
  • Cache do sistema

Disco Rígido​

  • Armazenamento persistente
  • Sistema de arquivos
  • Swap (extensão da RAM)

Rede​

  • Interfaces de rede
  • Comunicação com outros sistemas
  • Protocolos de rede

Separação User/Kernel Space​

Por que essa Separação?​

Segurança:

  • Aplicativos não podem acessar diretamente o hardware
  • Proteção contra erros
  • Isolamento de processos

Estabilidade:

  • Erro em um aplicativo não afeta o kernel
  • O sistema permanece estável mesmo se um app travar

Performance:

  • Kernel otimizado para o hardware
  • Aplicativos podem ser menos otimizados

Resumo​

Neste capítulo, você aprendeu:

Arquitetura: User Space + Kernel Space + Hardware
User Space: Aplicativos, Shell, Bibliotecas, Serviços
Kernel Space: Kernel Linux, Chamadas de Sistema, Gerenciamento de recursos
Comunicação: Via chamadas de sistema (syscalls)
Separação: Segurança, estabilidade, performance
Hardware: CPU, RAM, Disco, Rede


Próximos Passos​

Capítulo 1.5: Conceitos Fundamentais
Capítulo 1.6: Instalação e Primeiros Passos


Capítulo criado em: Dezembro 2024