Aula de Sistemas Operacionais Abertos e Mobile

Bem-vindo ao Guia Interativo!

Esta aplicação transforma o conteúdo da aula sobre `systemd` e configuração de rede em uma experiência de aprendizado interativa. Navegue pelas seções usando o menu lateral para explorar os conceitos fundamentais, comparar ferramentas e simular configurações práticas. O objetivo é fornecer uma forma clara e engajadora de compreender o gerenciamento moderno de sistemas Linux.

Objetivos da Aula

  • Compreender o papel do `systemd`.
  • Utilizar `systemctl` para gerenciar serviços.
  • Analisar e criar arquivos de unidade.
  • Configurar rede com `systemd-networkd`.
  • Configurar rede com `NetworkManager`.
  • Configurar acesso via proxy.

Como Usar

Use o menu à esquerda para navegar. Em cada seção, você encontrará explicações, exemplos de código e elementos interativos. Procure pelos botões nos blocos de código para simular diferentes cenários. Há também um botão para copiar comandos facilmente. Explore e experimente!

A Evolução: System V `init` vs. `systemd`

Para entender a importância do `systemd`, é útil compará-lo com seu predecessor, o System V `init`. O `systemd` não é apenas uma substituição, mas uma mudança de paradigma, focada em paralelismo e gerenciamento declarativo.

System V `init` (Tradicional)

  • ▶️ **Execução Sequencial:** Scripts em `/etc/init.d/` rodam um após o outro, seguindo uma ordem rígida definida por links simbólicos nos diretórios `rc.d`. Isso cria um gargalo no boot.
  • 🔗 **Dependências Manuais:** O gerenciamento de dependências é complexo e baseado em convenções de nomes de scripts, sendo frágil e propenso a erros.
  • 📉 **Monitoramento Limitado:** Não possui um mecanismo nativo para monitorar processos. Se um serviço falhar, ele não será reiniciado a menos que uma ferramenta externa seja usada.

`systemd` (Moderno)

  • ⚡ **Paralelização Agressiva:** Utiliza ativação por socket e D-Bus. Serviços são iniciados apenas quando necessários e em paralelo, com base em suas dependências explícitas, acelerando drasticamente o boot.
  • 🧩 **Dependências Declarativas:** As dependências são claramente definidas nos arquivos de unidade (`Requires`, `Wants`, `After`, `Before`), permitindo que o `systemd` construa uma árvore de transações para otimizar a inicialização.
  • 🔄 **Gerenciamento Robusto:** Monitora o ciclo de vida dos processos usando cgroups. Pode reiniciar serviços automaticamente em caso de falha, com políticas configuráveis (`Restart=on-failure`).