Quando você liga o micro, o primeiro software que é carregado é o BIOS da placa-mãe, que faz a contagem da memória RAM, realiza uma detecção rápida dos dispositivos instalados e, por fim, carrega o sistema operacional principal a partir do HD, CD-ROM, pendrive, disquete, rede ou outra mídia que estiver disponível. Este procedimento inicial é chamado de POST (Power-on self test).
O POST tem duas funções básicas: detectar o hardware instalado (atribuindo endereços de IRQ, endereços de I/O e outros recursos) e verificar se os componentes básicos (processador, memória, placa de vídeo e circuitos de comunicação) estão funcionando como deveriam. Quando é encontrado algum erro grave, como blocos defeituosos logo nos primeiros endereços da memória RAM, defeitos no processador ou em componentes essenciais do chipset da placa-mãe, o BIOS emite o código de avisos sonoros referente ao problema e paralisa o boot.
Além da função de “dar a partida”, o BIOS oferece uma série de rotinas de acesso ao vídeo, HDs e outros periféricos, que podem ser usados pelo sistema operacional. Hoje em dia, tanto o Windows quanto o Linux acessam o hardware através de drivers especializados, mas na época do MS-DOS as rotinas do BIOS eram importantes.
Chegamos então ao Setup, um programa de configuração para os parâmetros do BIOS. Nos primeiros PCs, o BIOS era um aplicativo separado, que precisava ser carregado através de um disquete de boot, mas a partir dos micros 386 ele passou a fazer parte do BIOS principal.
As opções configuráveis através do Setup variam muito de acordo com o tipo de placa e a que público ela é destinada. Temos desde notebooks, com conjuntos incrivelmente limitados de opções, até placas destinadas a entusiastas, com mais de 20 opções só para ajustar os tempos de acesso da memória.
Assim como todo software, tanto o BIOS quanto muitas vezes o próprio Setup possuem bugs, em muitos casos graves. É normal que qualquer fabricante respeitável disponibilize um conjunto de atualizações para o BIOS de uma placa popular. Em geral, a ausência de atualizações de BIOS disponíveis não é um sinal de que as placas não possuem problemas, mas simplesmente que o fabricante não se dá ao trabalho de corrigi-los.
O BIOS é quase sempre escrito em assembly, muitas vezes com módulos escritos em C. Por ser um programa complexo, que possui diversas camadas de legado, acumuladas desde o PC original, o BIOS de uma placa-mãe típica é um software cada vez mais caro e difícil de se manter.
Existe atualmente cada vez mais pressão em torno do desenvolvimento de um sistema mais elegante, que possa desempenhar as funções dos BIOS atuais de forma menos problemática e abrir espaço para a introdução de novos recursos.
Uma tecnologia já em uso é o EFI (Extensible Firmware Interface), usada em placas-mãe para o Intel Itanium e também nos Macs com processadores Intel. O EFI utiliza uma arquitetura modular, bem mais limpa e eficiente, que permite o uso de módulos personalizados para os dispositivos de cada placa-mãe, mantendo (opcionalmente) compatibilidade com o sistema antigo. No caso dos Macs, esta camada de compatibilidade é desativada (de forma a dificultar a vida de quem pretende instalar Linux ou Windows em dual boot com o MacOS), mas, no caso de placas avulsas, o EFI viria com o modo de compatibilidade ativado, permitindo rodar qualquer sistema.
Existe ainda um projeto para substituir o BIOS da placa-mãe por uma versão compacta do Kernel do Linux, que executa as mesmas funções, mas de uma forma mais confiável e flexível. Você pode obter mais informações sobre ele e sobre as placas suportadas no: http://www.linuxbios.org/.
Continuando, depois de fazer seu trabalho, o BIOS carrega o sistema operacional, lendo o primeiro setor do disco rígido o “Master Boot Record” (MBR), também conhecido como trilha zero ou trilha MBR. No MBR vai o gerenciador de boot, um pequeno software encarregado de dar a partida no sistema operacional. O gerenciador de boot usado no Windows XP e no Vista é chamado de NTLDR, enquanto no Linux o mais usado é o Grub. Na verdade, no MBR mesmo vai apenas um bootstrap, um pequeno software que instrui o BIOS a carregar o executável do gerenciador de boot, armazenado em um ponto específico do HD. O MBR propriamente dito ocupa um único setor do HD (apenas 512 bytes), de modo que não é possível armazenar muita coisa diretamente nele.
Como pode ver, o BIOS não se preocupa em detectar qual sistema operacional está instalado no HD, nem muito menos tentar ler o sistema de arquivos em que ele (o HD) está formatado. Tudo o que ele faz é ler o setor de boot do HD e deixar que o gerenciador de boot faça seu trabalho. Se isso não for possível, ele exibe a fatídica mensagem “No boot device available”, ou similar, e espera que você resolva o problema. 🙂
Na grande maioria dos casos, pressionamos a tecla “Del” durante o início do boot para acessar o Setup. Nos notebooks é usada normalmente a tecla “F2”, mas (embora relativamente raro) existem casos onde a tecla de atalho é “Esc”, “F1”, “F8”, “F10”, “Ins” ou mesmo combinações de teclas, como “Ctrl+Esc”, “Alt+Esc”, “Ctrl+Alt+Esc”, “Ctrl+Alt+Enter” ou “Ctrl+Alt+F2”.
Desde a década de 90, o mercado de desenvolvimento de BIOS é dividido entre a AMI (a mais usada atualmente), a Award e a Phoenix (usada predominantemente em notebooks). Como era de se esperar, cada um dos três utiliza uma interface um pouco diferente para o Setup, mas as opções propriamente ditas dependem mais do fabricantes da placa do que da marca do BIOS. Os notebooks são geralmente os mais pobres em opções, já que são configurações prontas, onde não se espera que você altere muitos componentes ou faça overclock.
Esta é a interface mais tradicional, usada tanto em BIOS da Award quanto da AMI e até mesmo em alguns da Phoenix, onde as opções são divididas em menus. Você navega entre as opções usando as setas, Enter e Esc, e altera as opções dentro das seções pressionando Enter e escolhendo o valor desejado dentro de um submenu com as opções disponíveis:
Durante a década de 1990, a AMI utilizou uma interface gráfica, onde você usava o mouse para navegar entre as opções. Apesar de ser considerada mais fácil por alguns, essa interface acabou não pegando e foi substituída pela interface baseada em abas utilizada atualmente. Nela, você usa as setas para a direita e esquerda para alternar entre as seções, as setas para cima e para baixo (além de Enter e Esc) para navegar entre as opções e acessar os submenus e altera as opções usando as teclas “+” e “-“.
Em ambas as interfaces, você pode salvar e sair usando a tecla F10, ou sair sem salvar pressionando Esc na tela principal. As configurações do Setup são salvas no CMOS, a área de memória volátil dentro do chip com o BIOS. É justamente isso que permite que as configurações sejam apagadas ao mudar a opção do jumper ou ao retirar a bateria, o que permite “destravar” a placa ao tentar um overclock mais extremo ou usar qualquer opção que faça o micro passar a travar durante o POST, sem que você tenha chance de acessar o Setup para restaurar a configuração anterior.
A seção mais básica é a “Main” ou “Standard CMOS Setup”, que permite ajustar o relógio do sistema e conferir a detecção dos HDs. Além de ser ajustado manualmente através do Setup, o relógio do sistema pode ser ajustado via software, o que é feito automaticamente pela maior parte dos programas que acertam o relógio do sistema via internet. De qualquer forma, é sempre importante acertar o relógio ao montar o micro, antes de instalar o sistema operacional.
Existe também a opção “Legacy Diskette A”, usada para indicar se um drive de disquetes está instalado. Use “1.44M, 3.5 in.”, caso tenha um drive instalado, ou “Disabled”, se não tiver nenhum. Apesar de poucos ainda utilizarem drives de disquetes (pelo menos em micros novos) eles ainda são necessários em muitos casos para carregar drivers da porta SATA ou RAID ao instalar o Windows XP. O problema foi resolvido apenas com o Vista, onde os drivers podem ser carregados também a partir de um CD-ROM ou pendrive.