Em sistemas semelhantes a Unix (incluindo Linux, MacOS e BSD), o bloco de inicialização não é uma entidade única e claramente definida da maneira como pode estar em outros sistemas operacionais. Em vez disso, a funcionalidade de um bloco de inicialização é distribuída em vários estágios. Não existe um único "bloco de inicialização" contendo todo o carregador de inicialização.
Aqui está um detalhamento de como a inicialização funciona e o que desempenha o papel de um "bloco de inicialização" em um sistema semelhante ao Unix:
1.
Mestre Registro de Inicialização (MBR) / Tabela de partição GUID (GPT): Este é o primeiro setor no disco rígido. Em sistemas usando MBR, os primeiros 512 bytes contêm um pequeno programa de carregador de inicialização. A função principal deste programa é localizar e carregar o próximo carregador de inicialização do estágio. Os sistemas GPT usam um conceito semelhante, mas a localização e estrutura do carregador de inicialização diferem. Esta seção inicial é o equivalente mais próximo a um "bloco de inicialização", mas é muito pequeno e rudimentar.
2.
carregador de inicialização (por exemplo, Grub, Systemd-Boot, Refind): O carregador MBR ou GPT carrega um programa de carregador de inicialização maior. Esta é a parte crucial. O carregador de inicialização é responsável por:
*
Encontrando o kernel do sistema operacional: Ele procura o disco rígido pela imagem do kernel (geralmente um arquivo compactado que contém o núcleo do sistema operacional).
*
Carregando o kernel na memória: O carregador de bota copia o kernel para a RAM.
*
Passando parâmetros para o kernel: Ele fornece informações como a localização do sistema de arquivos raiz e outras opções de inicialização.
*
Transferindo controle para o kernel: Finalmente, ele salta para o ponto de execução do kernel, iniciando o sistema operacional.
O carregador de inicialização em si geralmente é espalhado por vários setores ou até vários arquivos. Portanto, não há um único "bloco de inicialização" contendo todo o processo.
Em resumo, enquanto o MBR/GPT serve como um bloco inicial mínimo inicial, a funcionalidade verdadeira é espalhada pelo MBR/GPT e o carregador de inicialização maior. O carregador de inicialização lida com a maioria do processo de inicialização e não está confinado a um único bloco. O termo "bloco de inicialização" no contexto de sistemas semelhantes ao UNIX é frequentemente usado frouxamente e refere-se aos estágios iniciais da inicialização em vez de um setor único específico.