Depois que o controle chega ao kernel Linux, ele inicializa gerenciamento de memória, escalonamento, interrupções, drivers incorporados, estruturas de segurança e outros subsistemas centrais. Em seguida, interpreta a linha de comando e se prepara para iniciar o primeiro processo do espaço do usuário.
Inicializar o Sistema · Lição 4
Processo de Inicialização: Kernel
Aprenda como o kernel Linux usa o espaço inicial do usuário para alcançar a raiz real e iniciar o PID 1.
Por que existe o espaço inicial do usuário
Às vezes, um sistema de arquivos raiz simples pode ser montado com drivers incorporados ao kernel. Sistemas mais complexos precisam de módulos e ferramentas antes que a raiz real possa ser alcançada. Exemplos:
- módulos do controlador de armazenamento ou sistema de arquivos
- desbloqueio de uma raiz criptografada
- montagem de LVM ou RAID
- configuração de rede para uma raiz remota
- descoberta de dispositivos e resolução de identificadores persistentes
Um initramfs reúne esses componentes em um ambiente inicial do espaço do usuário fornecido junto com o kernel.
Que problema um initramfs costuma resolver?
Initramfs e initrd legado
Um initramfs moderno normalmente consiste em um ou mais arquivos cpio, muitas vezes comprimidos, que o kernel descompacta em seu sistema de arquivos raiz inicial. O kernel executa o programa /init desse ambiente.
Um initrd legado é, conceitualmente, uma imagem de sistema de arquivos carregada em um dispositivo de bloco baseado em RAM e montada. Os termos são usados de modo impreciso em nomes de arquivo e comandos; examine as ferramentas reais em vez de deduzir o formato apenas pelo nome.
O initramfs deve corresponder ao kernel e ao projeto de boot. Módulos ausentes, identificadores antigos ou ferramentas de criptografia e LVM omitidas podem tornar um kernel novo incapaz de iniciar, mesmo que sua imagem seja válida.
Como um initramfs moderno costuma ser apresentado ao kernel?
Chegada à raiz real
O espaço inicial interpreta parâmetros como root=, espera pelos dispositivos, ativa camadas de armazenamento e monta a raiz pretendida. Depois, usa uma operação de troca de raiz para tornar esse sistema de arquivos o novo / e liberar o ambiente temporário quando possível.
A solicitação inicial ro pode permitir verificações de consistência e uma inicialização controlada, mas a sequência exata depende da distribuição. Verificações de sistema de arquivos são operações do espaço do usuário, e o initramfs ou o sistema init posterior pode remontar a raiz para leitura e escrita quando permitido.
O que acontece depois que o espaço inicial monta com êxito a raiz real pretendida?
Inicialização do PID 1
O kernel executa o programa init configurado, normalmente acessado por um caminho como /sbin/init ou escolhido com init=. Esse processo recebe o PID 1 e assume a responsabilidade pelo principal ambiente de serviços do espaço do usuário.
Se nenhum programa init utilizável puder ser executado, o kernel não consegue chegar a um sistema normal e costuma relatar falha ou panic. Investigue a primeira camada que falhou: kernel e linha de comando, conteúdo do initramfs, descoberta e montagem da raiz ou execução do PID 1.
Qual é a última grande transferência do kernel nessa etapa simplificada?
Lição concluída
Você concluiu Processo de Inicialização: Kernel
Agora você consegue acompanhar o boot do kernel pelo espaço inicial até o PID 1.
Separar a inicialização incorporada ao kernel dos módulos iniciais carregáveis.
Relacionar initramfs a uma raiz temporária baseada em cpio e a
/init.Acompanhar a montagem do armazenamento e a troca para a raiz real.
Identificar a execução do PID 1 como transferência ao espaço do usuário.
Salve seu progresso
Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.
Criar uma conta gratuita