9.1. Introdução

Inicializar um sistema Linux envolve várias tarefas. O processo precisa montar ambos sistemas de arquivos virtual e real, inicializar dispositivos, verificar sistemas de arquivos para integridade, montar e ativar quaisquer partições ou arquivos de troca, configurar o relógio do sistema, ativar a rede de comunicação, iniciar quaisquer processos de segundo plano exigidos pelo sistema e realizar quaisquer outras tarefas personalizadas especificadas pelo(a) usuário(a). Esse processo precisa estar organizado para garantir que as tarefas sejam realizadas na ordem correta e executadas o mais rápido possível.

9.1.1. System V

System V é o processo clássico de inicialização que tem sido usado em sistemas Unix e semelhantes a Unix, tais como o Linux, desde cerca de 1983. Ele consiste de um aplicativo pequeno, init, que configura processos básicos, tais como login (via getty), e executa um script. Esse script, usualmente chamado de rc, controla a execução de um conjunto de scripts adicionais que realizam as tarefas exigidas para inicializar o sistema.

O aplicativo init é controlado pelo arquivo /etc/inittab e está organizado em níveis de execução que podem ser escolhidos pelo(a) usuário(a). No LFS, eles são usados como segue:

0 — parar
1 — Modo de usuário(a) único(a)
2 — Definível pelo(a) usuário(a)
3 — Modo de multi usuário(a) completo
4 — Definível pelo(a) usuário(a)
5 — Modo de multi usuário(a) completo com gerenciador de tela
6 — reinicializar

O nível de execução padrão usual é 3 ou 5.

Vantagens

  • Sistema estabelecido, bem compreendido.

  • Fácil de personalizar.

Desvantagens

  • Possivelmente seja mais lento inicializar. Um sistema LFS básico de velocidade média toma de 8 a 12 segundos, onde o tempo de inicialização é medido desde a primeira mensagem do núcleo até o prompt de login. A conectividade da rede de comunicação tipicamente é estabelecida cerca de 2 segundos depois do prompt de login.

  • Processamento em série de tarefas de inicialização. Isso está relacionado ao ponto anterior. Um atraso em qualquer processo, tal como uma verificação de sistema de arquivos, atrasará o processo inteiro de inicialização.

  • Não suporta diretamente recursos avançados, como grupos de controle (cgroups) e agendamento de compartilhamento justo por usuário(a).

  • Adicionar scripts exige decisões de sequenciamento estático, manuais.