Cgroups no Linux
Gabarito: letra E. Cgroups (control groups) é um recurso do kernel Linux que permite limitar, contabilizar e isolar o uso de recursos como CPU, memória e I/O de rede por processos ou grupos de processos — exatamente o que a alternativa E descreve. É a base para o isolamento de recursos em contêineres (Docker, LXC, Kubernetes).
Cgroups é um mecanismo do kernel Linux que agrupa processos e aplica limites de recursos a cada grupo. Ele é usado por ferramentas de contêineres (como Docker e LXC) para garantir que um contêiner não consuma mais CPU, memória ou banda de rede do que o permitido, e também para monitorar o uso. A ideia central é controlar a quantidade de recursos que um processo (ou grupo de processos) pode utilizar, evitando que um único processo ou contêiner monopolize o sistema.
Na prática, o administrador cria um cgroup, define limites (por exemplo, máximo de 512 MB de memória, 50% de CPU, 1 Gbps de rede) e associa processos a ele. O kernel então impõe esses limites automaticamente. Isso é diferente de virtualização: enquanto uma máquina virtual emula hardware completo (com um hipervisor), um contêiner compartilha o kernel do host, mas usa cgroups para isolar e limitar recursos, e namespaces para isolar processos, rede, sistema de arquivos etc.
A pegadinha desta questão é confundir cgroups com outras tecnologias: virtualização (hipervisor), emulação de arquitetura, compartilhamento de arquivos em rede ou administração centralizada de usuários. Todas essas são funções de outras ferramentas, não de cgroups. A banca explora justamente essa confusão entre isolamento de recursos (cgroups) e isolamento de ambiente (máquinas virtuais) ou serviços de rede (Samba, LDAP).
Guarde a distinção: cgroups = limitar recursos; namespaces = isolar visão do sistema; hipervisor = emular hardware; Samba = compartilhar arquivos com Windows; LDAP/AD = centralizar autenticação. É nessa fronteira que as alternativas se dividem.
Alternativa A — ❌ Incorreta
Acessar arquivos compartilhados em computadores Windows via rede é função do Samba (protocolo SMB/CIFS), não de cgroups. Cgroups não lida com compartilhamento de arquivos em rede; ele atua no gerenciamento de recursos do próprio kernel.
Alternativa B — ❌ Incorreta
Executar máquinas virtuais como um hipervisor tipo 2 é função de softwares como VirtualBox ou VMware Workstation, que rodam sobre um sistema operacional hospedeiro. Cgroups não virtualiza hardware; ele apenas limita recursos de processos no kernel.
Alternativa C — ❌ Incorreta
Centralizar a administração de usuários e senhas na rede é função de LDAP ou Active Directory, não de cgroups. Cgroups não tem relação com autenticação ou gerenciamento de contas.
Alternativa D — ❌ Incorreta
Emular o conjunto de instruções da arquitetura ARM em servidores x86 é feito por emuladores como QEMU (em modo de emulação), não por cgroups. Cgroups não emula hardware; ele apenas controla o uso de recursos de processos nativos.
Alternativa E — ✅ Correta ⟵ GABARITO
Cgroups (control groups) é exatamente o mecanismo do kernel Linux que limita a quantidade de memória, CPU e banda de rede que um processo pode usar. É a definição canônica do recurso, e é por isso que ferramentas de contêineres (Docker, LXC) o utilizam para garantir isolamento e limites de recursos entre contêineres.
Gabarito: letra E