Como funcionam os sistemas operacionais Multiboot?

0

Eu li que o computador carrega um sistema operacional pesquisando os primeiros 512 KB de cada dispositivo conectado. Se esse espaço de memória atua como um setor de inicialização, ele começa a carregar o espaço de memória após ele.

De acordo com este artigo: link

Vários sistemas operacionais existentes no mesmo disco rígido executam "encadeamento". Agora, se todos eles estiverem no mesmo disco rígido, como a máquina saberá depois de quantos saltos encontrará outro setor de inicialização? E o que está encadeando

    
por kneelb4darth 09.12.2015 / 18:59

2 respostas

1

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.

    
por 09.12.2015 / 19:38
1

I read that the computer loads an OS by searching every attached device's first 512 KB.

Quase correto. Hardware de estilo PC lê o primeiro setor, que é de 512 bytes. (não kilobytes).

If that space acts as a boot sector, it starts to load the space after it.

Também quase correto. O firmware clássico da placa-mãe continha algo chamado BIOS. Quando o PC ligado que seria executado. Uma de suas tarefas era entregar o controle para outro dispositio (por exemplo, para um drive de disquete).

Versões mais avançadas não suportavam apenas um único dispositivo, mas checavam vários dispositivos e passavam para o próximo no caso de um deles não fornecer uma solução de inicialização. Por exemplo. ele poderia tentar inicializar a partir de um disquete, e se isso falhar, tente inicializar a partir de um CD, e se ele falhar, tente inicializar a partir do primeiro disco rígido. (onde primeiro também é interessante se você tiver vários discos).

Na maioria das vezes, ele leria o primeiro setor de um disco rígido. E um disco rígido normalmente tinha um esquema de particionamento (MBR para PC compatível com IBM) e algum código de inicialização. Em seguida, seguiria uma cadeia de carregadores.

Por exemplo firmware carregaria um único setor de inicialização e iniciaria o código.

O código lido desse setor entenderia mais sobre o disco e carregaria um programa maior. (repita, se necessário, com mais etapas).

Multiple OS existing on same hard disk perform "chaining".

O sistema operacional não executa o encadeamento. Mas se um dos seus estágios posteriores for um programa de boot loader avançado (por exemplo, grub), então ele pode solicitar a entrada do usuário e, dependendo dele, pode continuar de maneiras diferentes. Por exemplo. ele poderia carregar um kernel linux e carregar & inicie o NTloader.

    
por 09.12.2015 / 19:36