Entenda tudo o que acontece durante o processo de inicialização do Linux. Vamos explicar o que acontece no momento em que você pressiona o botão de energia no seu sistema Linux. Porém, possa ser que você nunca tenha percebido, mas muita coisa acontece até que o desktop Linux seja carregado.
Assim, tudo começa com um botão, depois as informações de hardware e por fim suas credenciais. Mas, como dito, cada item tem nome e momento certo para iniciar. Desta forma, todo o processo de inicialização de sistemas Linux estão interligados, e um chama o outro.
Entendendo a inicialização no Linux
Para começar, vamos falar da BIOS. Mas, não se preocupe, BIOS não quer dizer Bicho Ignorante Operando o Sistema, isso coisa de estudante. Mas, piadas a parte, vamos ao que interessa.
O que é BIOS?
- BIOS significa Basic Input/Output System
- Executa algumas verificações de integridade do sistema
- Pesquisas, cargas e executa o programa gerenciador de inicialização.
- Ele procura por carregador de boot no disquete, cd-rom, ou disco rígido. Você pode pressionar uma tecla (normalmente F12 de F2, mas isso depende de seu sistema) durante a inicialização do BIOS para alterar a sequência de inicialização.
- Uma vez que o programa gerenciador de inicialização é detectado e carregado na memória, BIOS dá o controle para ele.
- Assim, em termos simples BIOS carrega e executa o gerenciador de inicialização MBR.
O que é MBR?
- MBR significa Master Boot Record.
- Ele está localizado no 1 º setor do disco de boot. Tipicamente /dev/hda ou /dev/sda
- MBR é inferior a 512 bytes de tamanho. Esta tem três componentes 1) Informação do carregador de inicialização primário em 1 446 bytes 2) info tabela de partição nos próximos 64 bytes 3) mbr verificação de validação nos últimos 2 bytes.
- Ele contém informações sobre GRUB (ou o LILO em sistemas antigos).
- Assim, em termos simples MBR carrega e executa o carregador de boot GRUB.
O que é o GRUB?
- GRUB significa Grand Unified Bootloader.
- Se você tem várias imagens de kernel instalados em seu sistema, você pode escolher qual delas deve ser executada.
- GRUB exibe uma tela inicial, espera por alguns segundos, se você não digite nada, ele carrega a imagem do kernel padrão conforme especificado no arquivo de configuração do GRUB.
- GRUB tem o conhecimento do sistema de arquivos (o mais velho carregador do Linux LILO não entendia sistema de arquivos).
- Arquivo de configuração do GRUB é o /boot/grub/grub.conf (/etc/grub.conf é um link para isso). O seguinte é grub.conf amostra do Ubuntu.#boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Ubuntu (2.6.18-194.el5PAE) root (hd0,0) kernel /boot/vmlinuz-5.X.X-XX.el5PAE ro root=LABEL=/initrd /boot/initrd-x.x.x-x.el5PAE.img
- Como você notar com a informação acima, que contém o kernel e imagem initrd.
- Então, em termos simples, o GRUB apenas carrega e executa o Kernel e imagens initrd.
O que é o Kernel?
- Monta o sistema de arquivos raiz, conforme especificado no “root =” no grub.conf
- Kernel executa a sbin/ programa /init
- Desde o init foi o primeiro programa a ser executado pela Linux Kernel, que tem o ID do processo (PID) de 1 Faça um ‘ps-ef | grep init. E verifique o pid.
- initrd significa disco RAM inicial.
- initrd é usado pelo kernel como sistema de arquivos raiz temporária até kernel é carregado e o sistema de arquivos raiz real é montado. Ele também contém os drivers necessários e compilados, e assim facilta o acesso as partições do disco rígido, e outros hardwares.
O que é o INIT?
- Faz a leitura do arquivo /etc/inittab para decidir o nível de execução do Linux.
- Seguem-se os níveis de execução disponíveis
- 0 – halt
- 1 – Modo de usuário único
- 2 – Multiusuário, sem NFS
- 3 – Modo multiusuário completo
- 4 – não usado
- 5 – X11
- 6 – reinicialização
- Init identifica o initlevel padrão do arquivo /etc/inittab e usa para carregar todos os programas apropriados.
- Executar ‘grep initdefault /etc/inittab’ em seu sistema para identificar o nível de execução padrão
- Se você gosta de correr riscos, você pode definir o nível de execução padrão para 0 ou 6. Desde que você sabe o que 0 e 6 significa.
- Normalmente, você deve definir o nível de execução padrão para 3 ou 5
Programas de Nível de Execução no Linux
- Quando o sistema Linux está inicializando, você pode ver vários serviços de começar. Por exemplo, pode dizer “a partir sendmail …. OK “. Esses são os programas de nível de execução, executados a partir do diretório de nível de execução, conforme definido pelo seu nível de execução.
- Dependendo da sua configuração de nível de inicialização padrão, o sistema irá executar os programas a partir de um dos seguintes diretórios.
- Nível de execução 0 – /etc/rc.d/rc0.d/
- Nível de execução 1 – /etc/rc.d/rc1.d/
- Nível de execução 2 – /etc/rc.d/rc2.d/
- Nível de execução 3 – /etc/rc.d/rc3.d/
- Nível de execução 4 – /etc/rc.d/rc4.d/
- Nível de execução 5 – /etc/rc.d/rc5.d/
- Nível de execução 6 – /etc/rc.d/rc6.d/
- Preste atenção, note que também há links simbólicos disponíveis para estes diretórios em /etc diretamente. Assim, /etc/rc0.d está ligada a /etc/rc.d/rc0.d.
- Sob o /etc/rc.d/rc *. D/ diretórios, você veria os programas que começam com S e K.
- Programas começa com S são usados durante a inicialização. S para a inicialização.
- Programas começa com K são utilizados durante o encerramento. K para matar.
- Há um número ao lado S e K nos nomes dos programas. Esses são o número de sequência em que os programas devem ser iniciados ou mortos.
- Por exemplo, S12syslog é iniciar o deamon syslog, que tem o número de sequência de 12. S80sendmail é iniciar o daemon sendmail, que tem o número de sequência de 80. Assim, o programa syslog será iniciado antes de sendmail.
Agora, você já compreende o que acontece durante o processo de inicialização do Linux. Por mais rápido que pareça, tudo é bem complexo. Mas, complexo para máquinas, nós já conseguimos desvendar este pequeno mistério.
Além disso, você também pode consultar uma lista que preparamos com as melhores distribuições Linux e também, as distribuições Linux para PCs antigos.