Operações de inicialização do computador até o carregamento do gerenciador de inicialização

2

Estou aprendendo sobre o desenvolvimento de seu próprio sistema operacional. Estou ciente do que acontece depois que o carregador de inicialização é carregado, desde que eu mesmo o escrevo. No entanto, quais operações acontecem entre pressionar o botão liga / desliga e carregar o carregador de inicialização não são muito claras.

Eu sei que em um nível alto, é isso que acontece:

  • A energia é fornecida à unidade de energia
  • É verificado se há algum problema com a fonte de alimentação (POST)
  • BIOS está carregado
  • O BIOS realiza algumas verificações
  • BIOS carrega o carregador de inicialização

Então, aqui estão as minhas questões:

  • Eu li em algum lugar sobre o sinal RESET sendo constantemente enviado ao processador quando não está ligado. Quando a energia é fornecida, este sinal é interrompido? Isso é verdade ? Se sim, quem fornece esse sinal e a verificação de uma fonte de alimentação adequada é feita antes ou depois que o sinal é interrompido? Se não, o que acontece quando o botão liga / desliga é pressionado?
  • Em resumo, quais são as operações realizadas no POST? Algumas fontes mencionam que o POST é executado por hardware, e outras dizem por BIOS. Isso está correto?
  • Quais são as verificações realizadas pelo BIOS? Eles envolvem apenas a verificação se todos os dispositivos estão configurados corretamente?
  • Eu também tinha lido algo sobre verificação / leitura de um chip CMOS. O que é essa operação e é feita pelo BIOS?

PS: Se esta pergunta não for apropriada para este site, feche-a e aponte-me para o site correto. E se alguém pudesse adicionar outras tags apropriadas, seria útil.

Cygnus
fonte
"quais são as operações executadas no POST?" - Consulte a lista de "códigos de bipes" que as várias versões dos BIOS podem produzir. Esses são os resultados (negativos) de testes específicos realizados durante o POST.
sawdust
suas perguntas muito magras para PC como o comportamento e pc termos, onde há muito mais processadores não-PC (com bootloaders) lá fora do que há de processadores para PC ...
old_timer

Respostas:

4

Depende do computador: o BIOS (com esse nome) é relativamente recente e "o BIOS está carregado" normalmente não é verdadeiro, "o BIOS já está presente" na ROM ou a memória Flash estaria mais próxima da marca nos sistemas que possuem BIOS .

Para responder às perguntas em ordem:

1) RESET não é "constantemente enviado quando não está ligado", exceto RESET, geralmente é um sinal baixo ativo (ou seja, 0V) e essa é a única tensão presente sem energia. Normalmente, a RESET é mantida baixa quando a energia é aplicada e só pode ficar inativa após tempo suficiente para estabilizar a energia.

Os PCs desktop mais recentes podem ter arranjos diferentes, porque possuem uma fonte de alimentação em espera, que pode fazer coisas como acionar o teclado, Ethernet etc. para "acordar sob demanda", mas isso não tem nada a ver com uma inicialização bruta.

2) Normalmente não há um teste separado na fonte de alimentação; diferente de "fornecer volts> mínimo necessário para executar o PC" - este teste permite que o RESET fique inativo e a CPU inicie.

Em alguns sistemas, o RESET persiste até que a pessoa que opera o computador o apague definindo um interruptor. Isso lhes permite carregar o BIOS ou outro programa de inicialização a partir de fita de papel, comutadores, baralho de cartas, o que for; não é muito comum hoje em dia!

3) A CPU começa a buscar e executar instruções em um endereço específico: para processadores ARM Cortex, endereço 0: para outras CPUs, possivelmente outros endereços; o endereço exato é publicado no livro de dados da CPU.

Se o BIOS ou algum outro programa conectado (relógio digital, controlador de máquina de lavar etc.) já não estiver lá, a CPU travará e nada acontecerá.

4) O BIOS executa o autoteste. As verificações podem incluir a medição da tensão da fonte de alimentação, testes de quanta memória existe, a memória funciona etc.; quais periféricos existem; existe um disco rígido? - é uma lista aberta. Se o sistema tiver um chip CMOS, isso provavelmente inclui um relógio alimentado por bateria, de modo que o BIOS define a hora do sistema e pode incluir uma lista de configurações (por exemplo, em qual disco o carregador de inicialização está ativado).

Supondo que exista um disco rígido, com um carregador de inicialização e os testes sejam aprovados, ENTÃO é normal que o BIOS carregue e execute o carregador de inicialização, e seu próprio sistema operacional esteja em funcionamento ...

Brian Drummond
fonte
3
... exceto pela declaração "BIOS (com esse nome) é relativamente recente". Na verdade, esse termo existe desde os dias do CP / M - final da década de 1970. Isso é mais da metade do tempo em que existem computadores eletrônicos de qualquer tipo. E, claro, todos se tornou familiarizado com o termo, com a introdução do IBM PC, em 1980.
Dave Tweed
Obrigado pela resposta detalhada. Quem realiza o teste "voltagem de fornecimento> mínimo necessário para executar o PC"? Estou assumindo que seria a mesma unidade que desativou RESET.
Cygnus
O final dos anos 70 é o que eu quis dizer com "relativamente recente": os computadores sobreviveram mais de 30 anos antes do surgimento da BIOS. E a BIOS teve um papel bastante diferente: sua principal tarefa era a camada de driver de dispositivo entre o CP / M e uma plataforma de hardware específica. Ele permaneceu em operação (como durante a maior parte da era do DOS), prestando serviços ao sistema operacional, em vez de ser (principalmente) ignorado quando o carregador de inicialização iniciou o sistema operacional.
@ Cyygnus: sim, o teste de tensão de alimentação e a lógica de redefinição são frequentemente combinados: pode ser tão simples quanto um amplificador operacional, mas também existem CIs de "supervisor de tensão de alimentação" para esse fim.