Linux é o kernel do sistema operacional: o software privilegiado que gerencia processadores, memória, dispositivos, processos e abstrações comuns de recursos. Um sistema Linux completo também inclui bibliotecas, utilitários, serviços, shells, software gráfico e políticas da distribuição no espaço do usuário.
Kernel · Lição 1
Visão Geral do Kernel
Aprenda como o kernel Linux intermedeia hardware, recursos, isolamento e solicitações do espaço do usuário.
Recursos de hardware
Processadores executam instruções, a memória armazena o estado ativo e controladores conectam armazenamento, redes, telas, dispositivos de entrada e outros periféricos. O hardware expõe mecanismos específicos da arquitetura e dos dispositivos, não uma interface única e segura para todo aplicativo.
O kernel inicializa e controla esses recursos por código de arquitetura e drivers. Ele trata interrupções, coordenação de DMA, temporizadores e eventos de energia, impondo limites de acesso entre cargas de trabalho.
Qual camada normalmente coordena drivers e interrupções de hardware no Linux?
Responsabilidades do kernel
As principais incluem:
- escalonar threads executáveis nas CPUs
- criar e isolar espaços de endereços virtuais
- impor credenciais, permissões e políticas de segurança dos processos
- fornecer sistemas de arquivos, rede, IPC e interfaces de dispositivos
- tratar sinais, temporizadores e o ciclo de vida dos processos
- alocar, contabilizar e recuperar recursos
O Linux é descrito como kernel monolítico porque serviços centrais e muitos drivers são executados em um único espaço privilegiado de endereços. Também é modular: componentes compatíveis podem ser carregados e removidos como módulos. Uma falha no código privilegiado pode comprometer todo o sistema, tornando atualizações e procedência dos módulos críticas para a segurança.
O que o escalonador do kernel gerencia?
Espaço do usuário
O espaço do usuário contém processos comuns: init e serviços, ferramentas de linha de comando, runtimes, bancos de dados, shells e aplicativos gráficos. O privilégio do hardware impede que eles executem diretamente muitas instruções sensíveis ou acessem qualquer memória do kernel.
Processos solicitam trabalho ao kernel por chamadas de sistema e interfaces como descritores de arquivo, sockets, nós de dispositivo, procfs, sysfs, netlink e mapeamentos de memória. Bibliotecas costumam envolver essas interfaces em APIs de alto nível.
O root do espaço do usuário tem ampla autorização por política, mas normalmente continua em modo de usuário do processador. Identidade do usuário e modo de privilégio da CPU são conceitos diferentes.
Um aplicativo comum pertencente ao root executa todas as instruções em modo kernel?
Limites e abstrações
O kernel apresenta processos virtuais, arquivos, sockets e espaços de endereços em vez de expor diretamente a maquinaria física. Essas abstrações favorecem isolamento e portabilidade, mas não são limites de segurança perfeitos. Namespaces, cgroups, capabilities, módulos de segurança, seccomp e virtualização acrescentam controles especializados.
Ao diagnosticar, pergunte qual camada é responsável: aplicativo, biblioteca, interface de chamada, sistema de arquivos, driver, subsistema do kernel, firmware ou hardware. Evidências da camada errada podem levar a correções incorretas.
O que é uma chamada de sistema?
Use Gerenciar Módulos do Kernel no Linux para observar uma parte modular do kernel em um ambiente controlado.
Lição concluída
Você concluiu Visão Geral do Kernel
Agora você consegue posicionar o kernel entre os recursos físicos e os processos isolados do espaço do usuário.
Relacionar drivers e código de arquitetura ao controle do hardware.
Identificar responsabilidades de escalonamento, memória, segurança, arquivos e rede.
Tratar credenciais root e modo kernel do processador como conceitos distintos.
Localizar a interação usuário-kernel em interfaces controladas de execução.
Salve seu progresso
Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.
Criar uma conta gratuita