Sítio do Piropo

B. Piropo

< Trilha Zero >
Volte de onde veio
05/02/2001

< Partida I: MBR >


Agora, que já sabemos o que são partições,  já podemos discutir o procedimento de partida de um computador, ou “inicialização”. “Inicializar” nada mais é que entregar o controle do micro ao sistema operacional, um programa cuja finalidade é gerir a máquina. Seus arquivos estão armazenados em disco. A carga do sistema operacional é o último passo do procedimento de partida e consiste em ler no disco os arquivos que compõem o sistema e transpô-los para a memória. Para isso é preciso, primeiro, saber em que disco lógico encontrá-los. Depois, é necessário saber em que setores de que trilhas tais arquivos se escondem. Tudo isso é feito por uma série de rotinas de programação encadeadas. A primeira é executada assim que a máquina é ligada. Suas instruções estão gravadas em chips de memória ROM, já que instruções somente podem ser executadas se estiverem armazenadas na memória e a memória RAM está “vazia” no momento em que a máquina é ligada. Estas instruções executam um procedimento denominado POST (de “Power On Self Test, ou autoteste de partida) que localiza e testa cada um dos componentes (por isso são exibidas mensagens na tela sobre vídeo, memória e outros dispositivos, e as luzes do teclado e drives se acendem momentaneamente enquanto eles são testados). Se algo falhar, o procedimento é interrompido e uma mensagem de erro é exibida na tela. Se tudo estiver nos conformes, o processo prossegue. O próximo passo é ler e transpor para a memória o conteúdo do registro mestre de inicialização, ou Master Boot Record (MBR). O MBR é o primeiro setor do disco (físico) de inicialização, ou “disco de boot”. Antigamente o sistema começava sempre verificando a presença de um disquete no drive A, que caso encontrado seria o disco de inicialização. Se não, o disco de inicialização seria o primeiro disco rígido (isso garantia que a máquina pudesse ser inicializada por um disquete em caso de falha do disco rígido). As máquinas modernas permitem escolher o disco de inicialização através do ajuste de uma entrada do setup (geralmente denominada “Boot Sequence”) que determina a ordem em que os discos serão investigados para carregar o sistema operacional. Pode-se dar preferência ao drive A, ao primeiro disco IDE ou ao primeiro disco SCSI. Algumas máquinas permitem ainda carregar o sistema a partir de CD-ROM, drives padrão LS-120 ou Zip e outras ainda permitem determinar a ordem diretamente pelo designador (ou “letra”) do drive (o que oferece um método alternativo de optar por um dentre muitos sistemas operacionais: basta instalar cada um em um drive diferente e, ao ligar a máquina, acionar o setup e ajustar o drive correspondente como disco de inicialização). Pois bem: efetuado o POST, o procedimento de partida consulta o setup (cujos dados estão gravados em um chip de memória denominado CMOS, cujo conteúdo é preservado por uma pequena bateria instalada na placa-mãe que o alimenta mesmo com a máquina desligada) para descobrir qual é o disco de inicialização. Seja qual for, rígido, flexível ou CD-ROM, o MBR será sempre seu primeiro setor, ou seja, o setor um da trilha zero da face zero. Por isso, sabendo qual é o disco de inicialização, é fácil encontrar o MBR e copiar seus 512 bytes na memória RAM. Se nenhum MBR é encontrado, é exibida uma mensagem de erro (em geral “boot disk failure” ou algo parecido) e o procedimento é abortado. O conteúdo de um MBR é padronizado e não depende do sistema operacional (é forçoso que seja assim, do contrário cada máquina somente poderia rodar o sistema operacional determinado pelo MBR de seu disco de inicialização). Seus dois últimos bytes contêm sempre os mesmos valores: os números “AA” e “55” em hexadecimal (sim, no sistema numérico hexadecimal, “A” é um algarismo). Trata-se de uma “assinatura” e a primeira coisa que o procedimento de partida faz após ler o MBR é verificar seus últimos dois bytes. Se não forem AA-55, o MBR foi corrompido (provavelmente por um vírus) e nesse caso é exibida uma mensagem de erro e o procedimento de partida é imediatamente abortado. Se tudo estiver nos conformes, o MBR é copiado para a memória. Ele contém uma rotina de programação e uma tabela. A tabela chama-se Tabela de Partição (Partition Table) e contém os dados sobre as partições do disco. A rotina de programação é usada para ler o conteúdo desta tabela e agir de acordo. Semana que vem veremos como.

B. Piropo