Por que um computador deve ter um BIOS?

35

The BIOS software is built into the PC, and is the first code run by a PC when powered on ('boot firmware'). When the PC starts up, the first job for the BIOS is the power-on self-test, which initializes and identifies system devices such as the CPU, RAM, video display card, keyboard and mouse, hard disk drive, optical disc drive and other hardware. The BIOS then locates boot loader software held on a peripheral device (designated as a 'boot device'), such as a hard disk or a CD/DVD, and loads and executes that software, giving it control of the PC.[2] This process is known as booting, or booting up, which is short for bootstrapping.

Quais requisitos determinam que um sistema de computador deve ter um BIOS instalado?

Por que o sistema operacional não pode fazer todo o trabalho da BIOS?

    
por Diogo 29.02.2012 / 14:06

9 respostas

41

Um BIOS é um pedaço de código dependente de hardware armazenado na própria placa-mãe. Cada placa-mãe diferente precisa de um BIOS personalizado escrito para ela, então seria impossível ter um all-in-one genérico BIOS / SO (embora o BIOS seja tecnicamente apenas código armazenado, então poderia teoricamente escrever um sistema operacional para uma placa-mãe em particular). Como você mencionou, o propósito do BIOS é fazer o seguinte:

When the PC starts up, the first job for the BIOS is the power-on self-test, which initializes and identifies system devices such as the CPU, RAM, video display card, keyboard and mouse, hard disk drive, optical disc drive and other hardware.

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ães diferentes com dois controladores SATA diferentes, o BIOS permite que eu escreva um código que funcione com ambos, sem 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 enviar esses comandos para o hardware.

Onde ele realmente obtém as informações do "setor de leitura X" é um programa armazenado contido no BIOS, que geralmente direciona o computador para iniciar a leitura de um gerenciador de inicialização armazenado em um local comum. Esses locais comuns são aceitos por vários desenvolvedores de software e hardware e geralmente fornecidos ao público para permitir mais compatibilidade entre sistemas.

Uma vez estabelecido um nível básico de interface (novamente, interface lógica por meio de software), 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, deve-se notar que o BIOS também é usado para fazer modificações nas configurações de hardware do computador e armazená-las na EEPROM interna (para que o computador se lembre das alterações da próxima vez que você iniciá-lo). No entanto, como afirmei anteriormente, uma vez que o sistema operacional é carregado, 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 a partir de seu sistema operacional, em vez de ter que reinicializar no BIOS. Novamente, isso é muito dependente 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 de software comum para um programa mais avançado ("sistema operacional") assuma o controle da máquina.

    
por 29.02.2012 / 14:35
7

O seu sistema operacional está no seu disco rígido, se você ligar o computador, ele não começará a ler magicamente a partir daquele disco rígido. É o BIOS que carrega o carregador de boot do disco rígido , além de fazer alguns testes e permitir que você defina certas configurações do BIOS.

Seu sistema operacional não pode fazer isso porque está no disco rígido e não na sua ROM.

Assim, você precisa de um BIOS ou de uma tecnologia similar (mas diferente) como o EFI ...

É possível colocar parte do SO na ROM (responsável pelo carregamento do gerenciador de inicialização do sistema operacional) pelo fabricante; no entanto, isso não é amplamente aplicável e há um BIOS ou EFI disponível de qualquer maneira.

    
por 29.02.2012 / 14:18
6

Nenhuma razão lógica real. É mais uma questão de legado e história.

  1. Não é necessário que um computador tenha um BIOS instalado. É legado do IBM PC. Embora isso tenha sido uma boa ideia

  2. Ter o Sistema Operacional fazendo isso não mudaria nada, porque ainda faria algo como o BIOS faz. É claro que o SO 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 sistemas operacionais decide tornar seu BIOS do sistema operacional incompatível com outros sistemas operacionais. Ter fabricantes de BIOS separados dos sistemas operacionais melhora a liberdade sobre o que o software pode executar.

por 29.02.2012 / 14:13
5

Algo é necessário para iniciar o sistema operacional. Se o sistema operacional puder caber em alguma memória não volátil, ele poderá ser iniciado diretamente, mas com sistemas operacionais totalmente caracterizados, como Windows, OSX ou Linux, isso não é possível.

O que é necessário é um pequeno "SO" leve que possa ser carregado na energização que faça as coisas básicas, como memória e acesso ao disco, e que carregue o sistema operacional. Embora isso possa fazer parte do próprio sistema operacional e não de uma entidade separada, há outros motivos pelos quais você pode querer que outro processo seja iniciado primeiro:

  1. Atualizações - se o sistema operacional fosse corrigido dessa forma, seria difícil atualizá-lo se fossem necessários patches de segurança. Isso pode ser feito - atualizações de firmware acontecem o tempo todo em dispositivos como roteadores, etc., mas eles têm sistemas operacionais relativamente simples instalados.
  2. Flexibilidade - um computador é uma máquina de uso geral e o mesmo hardware pode executar vários sistemas operacionais diferentes. Ter um BIOS que carregue o SO a partir do disco significa que você pode escolher qual deles executar - você pode até ir tão longe tendo vários instalados lado a lado.

O processo é conhecido como bootstrapping .

    
por 29.02.2012 / 14:10
4

O conceito PC BIOS é derivado do CP / M, um sistema operacional popular em computadores baseados em barramento Z-80 "S-100" de 8 bits antes do IBM PC assumir o controle.

CP / M espera que funções dependentes de hardware estejam em uma ROM (BIOS). Outra parte, carregada do disco pelo bootloader, era o software que suportava o sistema de arquivos CP / M (BDOS) e, em seguida, durava o processador de comandos ou "shell" (CCP). O hardware que o CP / M deveria suportar não era muito: uma unidade de disco, uma tela, 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 bootstrapping similar a como o CP / M fez, e o DOS usou as funções do BIOS para executar entradas e saídas básicas, como pretendido. Os programadores acabaram ignorando essas funções, pois eram lentas. Isso levou os fabricantes de PCs clone em meados dos anos 80 a recriar a plataforma como um todo (assim 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 tivessem que fazer isso. / p>

Neste ponto, podemos dizer que, para um sistema operacional moderno, o BIOS não é realmente necessário além de inicializar o sistema. No entanto ...

A partir do início dos anos 90, a noção de gerenciamento de energia foi ativada e o BIOS foi encarregado disso. O APM funciona bem com um SO de tarefa única, como o DOS, mas não com verdadeiros sistemas operacionais multitarefa, como o Windows ou o Linux. Por volta dessa época, o 386 estava em pleno vigor, o processador Intel que suportava multitarefa real. O DOS e o BIOS não foram atualizados em resposta aos novos recursos desse processador, principalmente porque todos os processadores da Intel ainda serão executados no modo legacy de compatibilidade de 16 bits para o qual o PC-BIOS original foi projetado. Portanto, os sistemas operacionais modernos praticamente ignoram / ignoram toda a funcionalidade de entrada / saída semelhante ao CP / M do BIOS, exceto, possivelmente, durante os primeiros estágios de inicialização.

Eventualmente, o ACPI foi desenvolvido, principalmente parte do BIOS, que suportava o gerenciamento de energia e a configuração de itens específicos da plataforma (geralmente de laptop). A ACPI também lida com o estado final de comutação de energia do modo de hibernação, suspensão ou desligamento.

Hoje em dia é ACPI e seu sucessor, EFI, que mantém algo como o BIOS uma necessidade do PC O conceito abrangente é para ACPI ser a interface entre as coisas plataforma ou placa-mãe específica e o sistema operacional, então uma versão separada do sistema operacional não precisa ser feito para cada tipo diferente de placa-mãe.

As placas de desenvolvimento que abrigam CPUs ARM rodando Linux (assim como hardware de telefone celular) têm esse problema. Normalmente, eles vêm com um firmware somente de bootloader, como U-boot, mas praticamente o sistema operacional deve suportar cada placa como uma plataforma separada.

    
por 08.10.2013 / 23:19
3

De certa forma, você está certo. BIOS e OS, em parte, fazem 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 mostrada uma exibição básica para diagnósticos e erros. Assim, o nome "Basic Input Output System".

Isso pode ser feito, até certo ponto, sem conhecimento adicional dos componentes reais realmente presentes no sistema específico, uma vez que todos eles têm que suportar um certo padrão pequeno do BIOS. Isso permite que os fornecedores personalizem um sistema completo. O BIOS só tem que fazer o suficiente para iniciar o sistema operacional. Existem algumas convenções para onde esses pontos de partida são, então ele tenta um após o outro. Isso também permite o uso de diferentes sistemas operacionais no mesmo hardware. (há flexibilidade, novamente)

Uma vez que o sistema operacional (ou pelo menos o bootloader) é encontrado e iniciado pelo BIOS, o próprio BIOS torna-se obsoleto. O sistema operacional moderno usa muito pouco ou nada do BIOS funcionalmente após o carregamento.

Se você quisesse que o sistema operacional fizesse todo o trabalho, teria que colocar o sistema operacional em um local onde ele pudesse 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 construir suporte de hardware em algum outro hardware, você está basicamente construindo uma espécie de BIOS novamente ...

Outra preocupação é o tamanho e custo da memória. Os sistemas operacionais com todos os recursos são grandes e a tentativa de obter um sistema operacional com vários gigabytes na ROM é cara, além dos problemas subsequentes de atualização e atualização.

Portanto, não há motivos técnicos, mas muitos práticos, especialmente para a plataforma de PC flexível.

    
por 29.02.2012 / 15:03
3

Para executar um programa em um PC moderno, você já deve ter um programa em execução para começar a saber como operar o hardware e carregar programas na memória. Este problema da galinha e do ovo é resolvido implantando um programa básico no próprio hardware.

Esse sistema básico de entrada / saída (BIOS) é muito pequeno e tem um escopo muito limitado, mas fornece uma base suficiente para os gerenciadores de inicialização de segundo estágio, como GRUB ou NTLDR , podem ser carregados e executados. Esses carregadores de segundo estágio são mais sofisticados que o programa BIOS, o que permite que eles forneçam uma base mais robusta para o sistema operacional adequado para carregar e assumir o controle.

    
por 29.02.2012 / 20:20
1

Se uma CPU tivesse a capacidade de endereçar um disco rígido diretamente, sem confiar no BIOS, EFI ou outro código na ROM (ou NVRAM ou o que você tem), então, teoricamente, tal CPU poderia carregar um SO do disco para RAM e comece a executá-lo.

Na verdade, em teoria, tal CPU poderia 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 um código extra na CPU para acessar o disco e vincular alguns conceitos sobre discos, como tabelas de partição e sistemas de arquivos, à CPU. As CPUs atualmente são grandes o suficiente para fazer isso, mas não seria uma abordagem muito flexível ou eficiente para projetar uma CPU.

    
por 09.10.2013 / 00:05
-1

Não precisa disso!

O que é frequentemente chamado de BIOS é um conjunto de três coisas.

  • Um gerenciador de partida
  • Uma ferramenta de configuração: agora praticamente obsoleta, exceto a ordem de inicialização e o relógio. A maior parte do restante deve ser automática ou definida pelo fabricante.
  • O BIOS: uma biblioteca de rotinas de saída de entrada para ajudar o sistema operacional a se comunicar com o hardware. Infelizmente, a BIOS é de 16 bits, desatualizada e não pode ser usada por sistemas operacionais modernos, portanto é amplamente ignorada.
por 01.03.2012 / 11:46

Tags