# BootX

BootX é um gerenciador de inicialização baseado em software projetado e desenvolvido pela Apple para uso na linha de computadores Macintosh da empresa. O BootX é usado para preparar o computador para o uso, carregando todos os drivers de dispositivo necessários e iniciando o Mac OS X, por meio da inicialização do kernel em todos os Macintoshes PowerPC que executam o sistema operacional Mac OS X 10.2 ou versões posteriores.
Usando o BootROM, um chip de computador de memória somente de leitura (ROM) que contém o Open Firmware, um bootsplash gráfico é mostrado brevemente, em todos os computadores Macintosh compatíveis, como um logotipo cinza da Apple com um cursor giratório que aparece durante a sequência de inicialização.
O programa está disponível gratuitamente como parte do sistema operacional Darwin sob a licença de fonte pública da Apple, de código aberto. O BootX foi substituído por outro gerenciador de inicialização, quase idêntico, chamado de boot.efi, e uma ROM de interface extensível de firmware, no lançamento do Mac baseado em Intel.

## História

Macintoshes mais antigos que datam de 1983 até 1998 utilizavam um bootloader básico; o bootloader era unicamente um chip de computador de memória somente de leitura (ROM) variando em tamanhos de até 4 megabytes (MBs), que continham o código para inicializar o computador e executar o Mac OS. Isto era conhecido como Macintosh Toolbox, ou Old World ROM, e difere muito do design do Macintosh moderno, que geralmente usa um disco rígido de grande capacidade para armazenar o sistema operacional. Este bootloader foi usado em todos os computadores Macintosh até meados de 1998.
Com o advento da série iMac dos Macintoshes, o firmware foi atualizado. O tamanho da ROM foi reduzido para 1 MB, chamado BootROM, e o restante da ROM foi movido para o arquivo Mac OS ROM na System Folder, armazenado no disco rígido. Esta ROM usava uma implementação completa do padrão Open Firmware (contido no BootROM) e foi chamada de New World ROM.
Em 2001, com o lançamento do Mac OS X 10.0, o arquivo Mac OS ROM foi substituído pelo arquivo bootloader BootX. Em 2002, com o lançamento do Mac OS X 10.2, a histórica imagem inicial do "Happy Mac" foi substituída por um logotipo de maçã cinza. Ao introduzir o Intel Mac em 2006, o BootROM foi substituído pela ROM quase idêntica Extensible Firmware Interface (embora a Apple ainda a chame de BootROM) e o arquivo boot.efi.

## Características

Para tornar o bootloader atraente para outros desenvolvedores de sistema operacional, a Apple adicionou recursos para permitir flexibilidade no processo de inicialização, como boot de rede usando TFTP e carregar o kernel formatado em Mach-O e Executable and Linkable Format (ELF). O BootX também pode inicializar a partir de volumes formatados em Hierarchical File System (HFS), HFS+, Sistema de arquivos Unix (UFS) e ext2.
O bootloader pode ser manipulado na inicialização pressionando várias combinações de teclas para alterar o processo de inicialização. Essas funções incluem o Modo Detalhado, obtido mantendo pressionado a combinação ⌘ Command + V, que substitui o logotipo da Apple padrão com informações baseadas em texto sobre o processo de inicialização, e um modo de usuário único, obtido pressionando a combinação ⌘ Command + S, que, dependendo do sistema operacional, pode inicializar em uma versão mais básica em linha de comando ou baseada em texto do sistema operacional, para facilitar a manutenção e ação de recuperação. A ROM também pode ser configurada para exigir uma senha para acessar essas funções técnicas usando a interface Open Firmware.

## Processo de inicialização

Em Macintoshes baseados em PowerPC, o processo de inicialização começa com a ativação da BootROM, a ROM básica do Macintosh, que realiza um power-on self-test para testar o hardware essencial para a inicialização. Ao passar neste teste, o som de inicialização é reproduzido e o controle do computador é passado para o Open Firmware. O Open Firmware inicializa a memória de acesso aleatório, a unidade de gerenciamento de memória (MMU) e o hardware necessário para a operação da ROM. O Open Firmware então verifica as configurações, armazenadas na memória não volátil de acesso aleatório (NVRAM), e constrói uma lista de todos os dispositivos em uma árvore de dispositivos reunindo suas informações armazenadas no FCode, um bytecode independente.
Na conclusão desta tarefa, o BootX assume o processo de inicialização configurando o teclado e o monitor, solicitando e reservando memória para vários fins e verificando se várias combinações de teclas estão sendo pressionadas. Após a conclusão desse processo, o BootX exibe o logotipo cinza da Apple, gira o cursor giratório de espera e prossegue para carregar o kernel e algumas extensões do kernel e iniciar o kernel.