BIOS
Um Sistema Básico de Entrada/Saída, frequentemente referido pelo acrónimo BIOS e também conhecido como System BIOS, ROM BIOS ou PC BIOS, é firmware, gravado em uma memória não volátil, usado para realizar a inicialização do hardware durante o processo de inicialização e para fornecer serviços de tempo de execução para sistemas operacionais e programas. O firmware BIOS vem pré-instalado na memória permanente da placa mãe do computador e é o primeiro software a ser executado quando se liga a máquina. O nome origina do Sistema Básico de Entrada/Saída usado no sistema operacional CP/M em 1975. Originalmente proprietário da IBM PC, o BIOS passou por engenharia reversa por empresas que buscam criar sistemas compatíveis. A interface deste sistema original serve como um padrão de facto.
— Um trecho do cabeçalho do arquivo BDOS.PLM no código-fonte PL/M do CP/M 1.1 ou CP/M 1.2 para Lawrence Livermore Laboratories (LLL) O termo BIOS (Basic Input/Output System) foi criado por Gary Kildall e apareceu pela primeira vez no sistema operacional CP/M em 1974, descrevendo a parte específica da máquina do CP/M carregado durante o tempo de inicialização que fazia interface direta com o hardware. (Uma máquina CP/M geralmente possuía apenas um gerenciador de inicialização simples em sua ROM.) Versões do MS-DOS, PC DOS ou DR-DOS contêm um arquivo chamado, variavelmente, de "IO.SYS", "IBMBIO.COM", "IBMBIO.SYS" ou "DRBIOS.SYS". Esse arquivo é conhecido como "BIOS do DOS" (também conhecido como "Sistema de E/S do DOS") e contém a parte específica de hardware de nível mais baixo do sistema operacional. Juntamente com o hardware básico específico, porém "BIOS de Sistema" independente de sistema operacional, que reside na ROM, ele representa o análogo ao "BIOS do CP/M".
Entre outras funções o papel mais importante do BIOS é o carregamento do sistema operacional. Quando o computador é ligado e o microprocessador tenta executar sua primeira instrução, e ele tem que obtê-la de algum lugar. Não é possível obter essa instrução do sistema operacional, pois esse se localiza no disco rígido, e o microprocessador não pode se comunicar com ele sem que algumas instruções o digam como fazê-lo. É o BIOS o responsável por fornecer essas instruções.
Sequência de funcionamento
Quando o computador é ligado, o BIOS opera na seguinte sequência: Existem pequenos trechos de softwares chamados de Manipuladores de Interrupção que atuam como tradutores entre os componentes de hardware e o sistema operacional. Um exemplo dessa tradução é quando é pressionada uma tecla no teclado, o evento associado ao sinal é enviado para o manipulador de interrupção do teclado que é enviado a CPU que trata e envia esse evento para o sistema operacional. Os drivers de dispositivos são outros trechos de software que identificam e atuam como interface entre os componentes básicos de hardware como o teclado, mouse, disco rígido.
Ao ligar o computador, o primeiro software que você vê a ser lido é o do BIOS. Durante a sequência de inicialização (boot), o BIOS faz uma grande quantidade de operações para deixar o computador pronto a ser usado. Depois de verificar a configuração na CMOS e carregar os manipuladores de interrupção, o BIOS determina se a placa gráfica está operacional. Em seguida, o BIOS verifica se trata de uma primeira inicialização (cold boot) ou de uma reinicialização (reboot). Esta verifica as portas PS/2 ou portas USB à procura de um teclado ou um rato (mouse). Procura igualmente por um barramento PCI (Peripheral Component Interconnect) e, caso encontre algum, verifica todas as placas PCI instaladas. Se o BIOS encontrar algum erro durante o início (POST), haverá uma notificação ao utilizador em forma de bipes e mensagens. Após tudo isto são apresentados detalhes sobre o sistema:
Na época do MS-DOS o BIOS atendia praticamente a todas as chamadas de entrada e saída E/S ou I/O (Input/Output) da máquina, atualmente a conexão é feita através da instalação de drivers e é por meio desses drivers que os sistemas operacionais tem contato direto com os hardwares. Na maioria dos BIOS é possível especificar em qual ordem os dispositivos de armazenamento devem ser carregados. Desta forma é possível, por exemplo, carregar uma distribuição do sistema operacional Linux que funciona diretamente do CD antes do sistema operacional instalado no HD (especificando que o CD deve ser verificado antes do HD). Alguns BIOS também permitem a escolha entre diversos sistemas operacionais instalados, mas isto geralmente é feito com um software de terceiros (boot loader).
Na maioria das placas mãe modernas o BIOS pode ser atualizado, e os fabricantes disponibilizam arquivos para essa finalidade. A atualização pode resolver problemas de funcionamento de periféricos, ou mesmo erros da versão anterior do BIOS. A atualização altera três programas que estão dentro da memória ROM (BIOS, POST, Setup) e é uma operação de risco e requer muito cuidado para não haver danos na placa-mãe. Há vários problemas que podem acontecer nas atualizações, alguns deles são: arquivos corrompidos, falta de informações para a solicitação do software correto, ou ainda a falta de energia elétrica. Se ocorrer algum problema o sistema poderá não iniciar, deixando a placa-mãe muitas vezes inoperante. A atualização ou o upgrade do chip somente deve ser feito quando for realmente necessário. Os principais fabricantes deste firmware são: American Megatrends (AMI), Award, General Software, Insyde Software, e Phoenix Technologies.
Uma das principais diferenças entre a BIOS e o UEFI está na interface visual — o UEFI geralmente apresenta um menu gráfico com suporte a mouse, enquanto a BIOS tradicional possui interface apenas em modo texto. Outra diferença importante é o tipo de tabela de partição utilizada: a BIOS utiliza a tabela MBR (Master Boot Record), que limita o tamanho dos discos rígidos a até 2 TB. Já o UEFI utiliza a tabela GPT (GUID Partition Table), que permite o uso de discos com capacidade superior a 2 TB.
Ao ligar o computador, você precisa pressionar uma tecla específica assim que o logo do fabricante aparecer. Essa tecla varia dependendo da marca do seu computador ou placa-mãe. Veja alguns exemplos comuns: Ao o usuario pressionar algumas vezes a tecla especifica enquanto o computador estiver ligando, ele visualizará essa tela mostrada a direita:


