O software BIOS está embutido no PC e é o primeiro código executado por um PC quando ligado ('firmware de inicialização'). Quando o PC é inicializado, o primeiro trabalho do BIOS é o autoteste de inicialização, que inicializa e identifica dispositivos do sistema, como CPU, RAM, placa de vídeo, teclado e mouse, unidade de disco rígido, unidade de disco óptico e outro hardware. O BIOS localiza o software do carregador de inicialização mantido em um dispositivo periférico (designado como 'dispositivo de inicialização'), como um disco rígido ou um CD / DVD, e carrega e executa esse software, dando a ele o controle do PC. [2] Esse processo é conhecido como inicialização ou inicialização, abreviação de bootstrapping.
Quais requisitos determinam que um sistema de computador deve ter um BIOS instalado?
Por que o sistema operacional não pode realmente executar todo o BIOS?
Respostas:
Um BIOS é um pedaço de código dependente de hardware armazenado na própria placa-mãe. Todas as placas-mãe diferentes precisam de um BIOS personalizado, portanto, seria impossível ter um BIOS / OS genérico all-in-one (embora o BIOS seja tecnicamente apenas um código armazenado, para que você possa escrever um sistema operacional para uma placa-mãe em particular) . Como você mencionou, o objetivo do BIOS é fazer o seguinte:
Observe que você ainda pode iniciar um computador sem armazenamento externo - e é por isso que o BIOS é um requisito para um computador. Em outros termos, o BIOS fornece uma interface de software comum para permitir que um programa de computador armazenado se comunique com vários dispositivos de hardware conectados à placa-mãe.
Por exemplo, se eu tiver duas placas-mãe diferentes com dois controladores SATA diferentes, o BIOS permitirá que eu escreva um código que possa funcionar com ambos, sem o meu conhecimento de como a placa-mãe realmente envia comandos para o dispositivo SATA. Eu só tenho que dizer ao computador "leia o setor X deste dispositivo SATA" e o BIOS é responsável por realmente enviar esses comandos para o hardware.
Onde ele realmente obtém as informações do "setor de leitura X" é um programa armazenado no BIOS, que geralmente instrui o computador a iniciar a leitura de um gerenciador de inicialização armazenado em um local comum. Esses locais comuns são acordados por vários desenvolvedores de software e hardware, e geralmente são fornecidos ao público para permitir maior compatibilidade entre sistemas.
Depois que um nível básico de interface (novamente, interface lógica por meio de software) é estabelecido, o próprio sistema operacional cria uma interface comum com seus vários dispositivos de hardware (geralmente usando "drivers de dispositivo"), e o sistema operacional pode controlar o hardware.
Por fim, observe que o BIOS também é usado para fazer modificações nas configurações de hardware do computador e armazená-las na EEPROM integrada (para que seu computador se lembre das alterações na próxima vez em que for inicializado). No entanto, como afirmei anteriormente, uma vez carregado o sistema operacional, ele tem controle total do computador.
Isso permite que os fabricantes de placas-mãe desenvolvam software, permitindo que você faça essas alterações no sistema operacional, em vez de precisar reiniciar o BIOS. Novamente, isso depende muito de hardware e software, mas mostra que toda a interface do computador é relativa. O BIOS é exatamente o que o nome indica - um sistema básico de entrada / saída, para permitir que uma interface comum de software para um programa mais avançado ("sistema operacional") assuma o controle da máquina.
fonte
Seu sistema operacional está no disco rígido; se você ligar o computador, ele não começará a ler magicamente a partir desse disco rígido. É o BIOS que carrega o carregador de inicialização do disco rígido , além de fazer alguns testes e permitir que você defina determinadas configurações do BIOS.
Seu sistema operacional não pode fazer isso porque está no disco rígido e não na sua ROM.
Portanto, você precisa de um BIOS ou de uma tecnologia semelhante (mas diferente) como a EFI ...
É possível colocar parte do sistema operacional na ROM (responsável por carregar o carregador de inicialização do sistema operacional) pelo fabricante; no entanto, isso não é amplamente aplicável e existe um BIOS ou EFI disponível de qualquer maneira.
fonte
Nenhuma razão lógica real. É mais uma questão de legado e história.
Não é necessário que um computador tenha um BIOS instalado. É legado do IBM PC. Embora isso tenha sido uma boa ideia
Ter o sistema operacional fazendo isso realmente não mudaria nada, porque ainda faria algo como o BIOS. É claro que o sistema operacional precisaria estar em uma ROM, não em um dispositivo de E / S. O problema pode surgir para problemas de monopólio quando um construtor de SO decide tornar seu BIOS incompatível com outros SOs. Separar os fabricantes de BIOS dos sistemas operacionais melhora a liberdade sobre o software que pode ser executado.
fonte
É necessário algo para iniciar o sistema operacional. Se o sistema operacional caber em alguma memória não volátil, ele poderá ser iniciado diretamente, mas com sistemas operacionais com todos os recursos, como Windows, OSX ou Linux, isso não é possível.
O que é necessário é um pequeno "SO" leve que possa ser carregado na inicialização que faça as coisas básicas, como acesso à memória e ao disco, e que carregue o sistema operacional. Embora isso possa fazer parte do próprio sistema operacional e não uma entidade separada, há outros motivos pelos quais você pode querer que outro processo inicie primeiro:
O processo é conhecido como inicialização .
fonte
O conceito PC BIOS deriva do CP / M, um sistema operacional popular em computadores de barramento Z-80 "S-100" de 8 bits antes do PC IBM assumir o controle.
O CP / M espera que as funções dependentes de hardware estejam em uma ROM (BIOS). Outra parte, carregada do disco pelo gerenciador de inicialização, era o software que suportava o sistema de arquivos CP / M (BDOS) e, depois, o último processador de comando ou "shell" (CCP). O hardware que o CP / M deveria suportar não era muito: uma unidade de disco, um monitor, uma porta serial ou duas (portas COM ou AUX) que poderiam ter impressoras ou modems conectados.
O BIOS do PC executou uma função básica de inicialização semelhante à do CP / M, e o DOS usou as funções do BIOS para executar entradas e saídas básicas, conforme planejado. Os programadores acabaram ignorando essas funções por serem lentas. Isso levou os fabricantes de clones de PC, em meados dos anos 80, a recriar a plataforma como um todo (fácil como a IBM documentou o PC original muito bem por dentro e por fora), em vez de apenas fornecer um BIOS com interfaces compatíveis, embora eles também precisassem fazer isso.
Neste ponto, podemos dizer que, para um sistema operacional moderno, o BIOS não é realmente necessário além da inicialização do sistema. Contudo ...
A partir do início dos anos 90, a noção de gerenciamento de energia entrou em vigor e o BIOS foi encarregado disso. O APM funciona bem com um sistema operacional de tarefa única, como o DOS, mas não com sistemas operacionais multitarefa verdadeiros, como Windows ou Linux. Nessa época, o 386 estava em pleno vigor, o CPU Intel que suportava multitarefa real. O DOS e o BIOS não foram atualizados em resposta aos novos recursos desta CPU, principalmente porque todas as CPUs Intel ainda serão executadas no modo de compatibilidade de 16 bits herdado para o qual o PC-BIOS original foi projetado. Portanto, os sistemas operacionais modernos praticamente ignoram / ignoram toda a funcionalidade de entrada / saída do BIOS / tipo CP / M, exceto possivelmente nos estágios iniciais de inicialização.
Eventualmente, o ACPI foi desenvolvido, principalmente parte do BIOS, que suportava o gerenciamento de energia e a configuração de coisas específicas da plataforma (geralmente laptop). A ACPI também lida com o estado final de comutação de energia de hibernação, suspensão ou desligamento.
Hoje em dia é a ACPI e sua sucessora, a EFI, que mantém algo como o BIOS uma necessidade dos PCs. O conceito abrangente é que a ACPI seja a interface entre coisas específicas da plataforma ou da placa-mãe e o sistema operacional, para que uma compilação separada do sistema operacional não seja precisa ser feito para todos os tipos diferentes de placas-mãe.
Placas de desenvolvimento que hospedam CPUs ARM executando Linux (assim como hardware de telefone celular) têm esse problema. Normalmente, eles vêm com um firmware apenas do carregador de inicialização, como U-boot, mas praticamente o sistema operacional deve suportar cada placa como uma plataforma separada.
fonte
Em certo sentido, você está certo. O BIOS e o SO fazem parcialmente as mesmas coisas. A separação no BIOS e no SO é apenas para flexibilidade.
O BIOS geralmente é criado por um fabricante de hardware. O hardware deve garantir que uma funcionalidade básica esteja presente, por exemplo, que uma unidade de disco possa ser lida e que seja exibida uma tela básica de diagnóstico e erros. Assim, o nome "Basic Input Output System".
Isso pode ser feito, até certo ponto, sem o conhecimento dos componentes reais realmente presentes no sistema específico, pois todos eles têm que suportar um determinado pequeno padrão de BIOS. Isso permite que os fornecedores criem um sistema completo de forma personalizada. O BIOS apenas precisa fazer o suficiente para iniciar o sistema operacional. Existem algumas convenções sobre onde estão esses pontos de partida, portanto, apenas tente um após o outro. Isso também permite o uso de diferentes sistemas operacionais no mesmo hardware. (há flexibilidade, novamente)
Depois que o sistema operacional (ou pelo menos o gerenciador de inicialização) é encontrado e iniciado pelo BIOS, o próprio BIOS se torna amplamente obsoleto. O sistema operacional moderno usa muito pouco ou nada do BIOS funcionalmente após o carregamento.
Se você quisesse fazer com que o sistema operacional fizesse todo o trabalho, seria necessário colocá-lo em um local onde ele possa ser acessado pelo hardware sem a ajuda preliminar de um software (ROM). Isso pode ser possível para alguns sistemas fechados, nos quais a flexibilidade não é uma preocupação. Se você pensa em criar suporte de hardware em outro hardware, está basicamente criando um tipo de BIOS novamente ...
Outra preocupação é o tamanho e o custo da memória. Os sistemas operacionais com todos os recursos são grandes e a tentativa de obter um sistema operacional de vários gigabytes na ROM é cara, além dos problemas de acompanhamento do patch e da atualização.
Portanto, não, não há motivos técnicos, mas muitos motivos práticos, especialmente para a plataforma de PC flexível.
fonte
Para executar um programa em um PC moderno, você já deve ter um programa em execução que saiba operar o hardware e carregar programas na memória. Esse problema do ovo e da galinha é resolvido com a implantação de um programa básico no próprio hardware.
Esse sistema básico de entrada / saída (BIOS) é muito pequeno e tem escopo muito limitado, mas fornece uma base suficiente para que os carregadores de inicialização de segundo estágio, como GRUB ou NTLDR , possam ser carregados e executados. Esses carregadores de segundo estágio são mais sofisticados que o programa BIOS, o que lhes permite fornecer uma base mais robusta para o sistema operacional adequado para carregar e assumir o controle.
fonte
Se uma CPU tivesse a capacidade de endereçar um disco rígido diretamente, sem depender do BIOS, EFI ou outro código na ROM (ou NVRAM ou o que você tem), então, teoricamente, essa CPU poderia carregar um SO do disco na RAM e começar executando.
Na verdade, teoricamente, essa CPU pode até executar instruções sem carregá-las na RAM. Não há razão teórica para que um computador não possa usar um disco rígido como armazenamento primário. Mas isso seria muito, muito lento.
Isso significaria ter código extra na CPU para acessar o disco e conectar alguns conceitos sobre discos, como tabelas de partição e sistemas de arquivos na CPU. Atualmente, as CPUs são grandes o suficiente para fazer isso, mas não seria uma abordagem muito flexível ou eficiente para projetar uma CPU.
fonte
Não precisa disso!
O que geralmente é chamado de BIOS é um conjunto de três coisas.
fonte