I read that the computer loads an OS by searching every attached device's first 512 KB.
O BIOS do PC faz isso - e não necessariamente atinge todos os dispositivos conectados, apenas os que ele sabe ler e que está configurado para ler as configurações.
PCs com o novo padrão UEFI podem carregar um arquivo diretamente de uma partição EFI em um disco rígido. Tradicionalmente, o BIOS não entende sistemas de arquivos como NTFS ou FAT, mas o UEFI é um pouco mais inteligente e pode realmente ler arquivos de um dispositivo.
No caso do BIOS, o que é carregado nunca é um sistema operacional completo, mas um pequeno programa que é um bootloader do primeiro estágio . Este primeiro estágio de bootloader pode carregar um sistema operacional completo, mas realmente apenas no caso do DOS ou outro sistema operacional muito simples.
O que acontece normalmente é que o bootloader do primeiro estágio continua e carrega um bootloader de segundo estágio, que pode ser o antigo NT / XP NTLDR
, o bootloader do Windows Vista +winload.exe
ou GRUB.
Bootloaders (segundo estágio e acima) podem fazer mais do que o BIOS, então eles lêem um arquivo de configuração ou dados e podem apresentar um menu de qual sistema operacional inicializar. O bootloader é sobrescrito assim que o sistema operacional é carregado.
> O encadeamento é onde um gerenciador de inicialização chama outro gerenciador de inicialização. Como o Windows só inicializa com seu próprio gerenciador de inicialização, se você tiver o GRUB instalado, o que o GRUB faz para carregar o Windows é que ele vai em frente e apenas carrega o primeiro estágio de bootloader que o BIOS teria carregado de qualquer maneira. Isso é armazenado no primeiro setor de sua partição, acredito. O mesmo é feito com o DOS.
Não é necessário se o GRUB puder inicializar o SO diretamente, o que pode para qualquer Linux. O Linux não se importa muito com o modo como ele e seu initramdisk entram na memória, ao contrário de outros sistemas operacionais.
A UEFI pode carregar um SO diretamente, mas o Windows não suporta esse AFAIK, portanto, os sistemas UEFI carregam diretamente winload.exe
e o executam.
Outros gerenciadores de inicialização não PC, como o U-Boot (algo que seu roteador doméstico pode executar), entendem os sistemas de arquivos FAT e Linux e carregam diretamente o Linux a partir deles, e então iniciam o SO diretamente.