Eu acho que você está perguntando como a instalação inicial do Unix foi realizada. Muitos computadores naquela época foram projetados para rodar o Unix, e vieram com o sistema operacional pré-instalado no disco rígido ou em disquetes. A instalação foi apenas uma questão de fornecer um disco com o conteúdo adequado.
Mas você pode estar perguntando, por que meios o sistema instala o sistema operacional na memória quando é inicializado?
Aqui está um exemplo. O AT & T 3B1, também conhecido como "Unix PC", tinha uma ROM que continha um programa de bootstrap, nos endereços 800000-BFFFFF. Quando o sistema é resetado, sua CPU do Motoroloa 68010 carrega o ponteiro da pilha de 000000-2, carrega o contador de programa de 000004-6 e pula. Durante uma reinicialização, o hardware força o bit 23 do endereço, mapeando efetivamente a ROM para a memória principal, para que o sistema esteja realmente executando o programa na ROM. Esse programa na ROM inicializa os diferentes componentes de hardware, executa alguns diagnósticos e carrega o sistema operacional de um disquete ou disco carregando e executando um bloco de inicialização. O código no bootblock iria carregar o kernel e começar a executar init
, da mesma forma que o sistema moderno faz.
(Mais informações nos manuais, ver espelho de Philip Pemberton Emulador AT & T 3B1 )
Você poderia, teoricamente, usar esse conhecimento para instalar algo diferente do Unix em uma máquina como essa. Mas nem sempre havia uma camada de abstração de hardware como a BIOS em um PC, então o programa que foi inicializado tinha que ser mais strongmente acoplado ao hardware.