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.
cpu
bootloader
Cygnus
fonte
fonte
Respostas:
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 ...
fonte