Boot é o termo em inglês para o processo de inicialização do computador, que carrega o sistema operacional quando a
máquina é ligada,
neste artigo, descreverei os tipos de Boot no
Linux e suas etapas.
- Boot Manual e Automático:
- Boot Automático: O sistema executa tudo por sua conta.
- Boot Manual: O sistema executa até um determinado ponto e passa o controle para um operador do sistema antes da maioria dos
scripts serem
executados.
Neste momento, o sistema está em modo monousuário. Este modo é utilizado somente se houver algum problema no sistema.
- Etapas do processo de inicialização:
- Carga e inicialização do kernel;
- Detecção e inicialização de dispositivos;
- Criação e inicialização processos espontâneos;
- Intervenção do operador (somente no modo manual);
- Execução dos scripts de inicialização do sistema;
- Operação multiusuário.
Carga e Inicialização do kernel
O
kernel é um programa, e a primeira tarefa do Boot é alocar o kernel na memória para executá-lo. O caminho para
localizar este
programa é: “/vmlinux”, ou: “/boot/vmlinux”.
Durante o primeiro processo, a memória RAM carrega um pequeno programa de Boot procedente do disco. Este programa é responsável
para organizar
o kernel e fazer seu carregamento.
O kernel efetua alguns testes para verificar quanto de memória está disponível. Neste ponto, o kernel reserva um pouco de memória
para algumas
estruturas de dados internas.
O kernel imprime na tela a quantidade de memória RAM disponível para o usuário.
Detecção e Inicialização de Dispositivos
Uma das principais tarefas do kernel, é verificar o ambiente da máquina e localizar os dispositivos.
Ao criar um kernel, você informa quais dispositivos ele deve encontrar. Quando o kernel é executado, ele tenta localizar e executar estes
dispositivos.
A cada dispositivo encontrado, o kernel imprime uma linha criptografada.
Embora alguns dispositivos não sejam localizados completamente, o kernel do Linux faz um verificação sondando o barramento em
busca de novos
dispositivos.
Os dispositivos que não respondem à sondagem são desabilitados, se algum dispositivo for conectado após este procedimento, o mesmo
pode ser
carregado ou habilitado durante a execução.
Processos do Sistema
Após a inicialização básica do kernel, são criados processo espontâneos (Fork), no Linux não existe nenhum 'PID 0' visível (INIT é o PID
1).
O INIT, este é acompanhado de vários processos que manipulam a memória tipo: kilushd, kupdate, kpiod, e kswapd.
Destes, somente INIT é realmente um processo, os demais são partes do kernel que por razões de escalonamento, são arrumados para
se parecerem
um processo.
Depois dos processos serem criados, o papel do kernel no Boot está completado, no entanto, nenhum processo para Login foi criado e
nenhum
Daemon foi inicializado. Todas estas tarefas serão tratadas pelo processo INIT.
Intervenção do Operador
Se o sistema for iniciado no modo monousuário, o processo INIT recebe uma Flag notificando que ele deve executar o Sulogin, que e um
Login mais
radical, que executa quase todos os comandos Shell.
Nas distribuições
openSUSE e
Debian, só existe uma partição Raiz montada, por isso, para utilizar os
comando essenciais e
os programas em: “/bin /sbin”, ou: “/etc”, estas partições devem ser montadas e verificadas com o comando
fsck,
que deve ser
executado manualmente.
Daemons não executa no modo monousuário, por isso, serviços que precisam de processos servidor, não funcionaram normalmente.
- Execução dos scripts de inicialização do sistema:
No momento que ele estiver pronto para executar os Scripts de inicialização, ele é reconhecidamente Linux. Os Scripts de inicialização
são
simplesmente Scripts Shell selecionados e executados por INIT através de um Algoritmo.
- Operação multiusuário:
Depois dos Scripts serem inicializados, o sistema está completamente operacional, mas não há nenhum processo de gerenciamento de
Login. Então, o
INIT é responsável por criar os processos Getty, responsável pelo Login e tornando o Linux multiusuário.
O processo INIT também cria os processos para Logins gráficos
XDM e
GDM.
Previamente publicado em:
http://tas-3110.blogspot.com - Boot
no
Linux