Computadores XXXIX: O aparente mistério do

Transcrição

Computadores XXXIX: O aparente mistério do
Computadores XXXIX: O aparente mistério do “boot”
A9 – Texto 3
Sítio Fórum PCs /Colunas
Coluna: B. Piropo – Publicada em 13/09/2007
http://www.forumpcs.com.br/viewtopic.php?t=219865
Autor: B.Piropo
Alguma vez você já se perguntou o porquê de algumas pessoas se referirem ao
procedimento de inicialização de um computador como “boot”?
Sim, sei, vem do inglês e os americanos fazem uso corrente desta palavra com a mesma
acepção. Mas, em inglês, “boot” quer dizer “bota”, “botina”. E o que têm a ver as botas
com as calças, digo, com o procedimento de inicialização de um micro? Por que “boot”?
Bem, para ser mais específico, ainda em inglês e com o sentido que discutimos, “boot”
é uma abreviação de “bootstrap”, o termo originalmente usado (e que ainda pode ser
encontrado em antigas publicações sobre computadores, se é que as palavras “antigo” e
“computador” podem ser empregadas na mesma frase...). E “bootstrap” é a palavra
inglesa para “cordão da bota”, aquele cordão que serve para amarrar as botinas.
Ficou mais fácil? Ou você ainda acha que nem “boot” nem “bootstrap” têm qualquer
coisa a ver com a inicialização do computador e não faz idéia da razão pela qual estes
termos são usados na acepção citada?
Então deixemos o assunto de lado por um minuto enquanto você pensa sobre a pergunta
seguinte: alguma vez já ouviu falar em um notável cavalheiro chamado Barão de
Münchausen?
Se não ouviu, deveria.
O Barão foi um indivíduo formidável que, segundo reza a lenda (ou melhor: o livro
“Baron Münchhausen's Narrative of his Marvellous Travels” de Rudolf Raspe, que
criou o personagem), viveu na Europa na segunda metade do século XVIII e participou
de histórias saborosas. As mais famosas talvez sejam a que conta como viajou sentado
sobre uma bala de canhão (veja, na foto, obtida em um cartaz de divulgação do filme de
Terry Gilliam sobre o legendário Barão) e a que narra a noite em que, sob uma violenta
nevasca, decidiu pernoitar em um local aparentemente deserto, um imenso campo de
neve onde nada se via exceto uma cruz que assomava da neve e onde amarrou seu
cavalo. Na manhã seguinte acordou sob sol a pino na praça de uma pequena cidade,
cercado de curiosos que perguntavam por que seu cavalo estava amarrado na cruz do
alto da torre da igreja. É que, segundo o bravo Barão, o sol havia derretido toda a neve
fazendo surgir a cidade, sua praça e a igreja, que estavam cobertos na noite anterior.
Tendo vivido dois séculos e meio antes da era dos mensaleiros e aloprados, o Barão de
Münchausen era tido como o Campeão dos Mentirosos (hoje o pobre perderia o título
nos primeiros cinco minutos de qualquer noticiário político). Mas como veio ele parar
nesta coluna sobre memórias?
Figura 1: O Barão de Münchausen e sua inusitada viagem
Bem, é que em uma de suas histórias o Barão conta como atravessou um pântano
mantendo os pés secos: para não pisar no terreno molhado puxou firmemente para cima
com as próprias mãos os cordões de suas botinas (“bootstraps”), elevou-se acima do
terreno e atravessou o trecho molhado sem tocar a água. Uma história que deu origem a
um ditado, em inglês, usado para se referir a alguém que deseja fazer algo impossível de
ser conseguido por seus próprios meios mas teima em fazê-lo sem ajuda: “pull yourself
up by your bootstraps” que, mal traduzido, significa “levantar a si mesmo puxando para
cima os cordões das próprias botinas” (há outras versões para a origem da expressão;
alguns a atribuem a uma frase de James Joyce em “Ulysses”, outros a autores diversos
do século XIX, mas nenhuma delas é tão saborosa quanto a atribuída a Münchausen).
Bem, agora todos entenderam a ligação entre o Barão de Münchausen e seus
“bootstraps”. E os mais argutos perceberam porque ambos entraram nesta coluna.
Pois ocorre que, aparentemente, o procedimento de inicialização de um computador
repete a façanha de Münchausen: consegue pôr-se em marcha carregando na memória
principal programas e sistema operacional por seus próprios meios sem qualquer
intervenção do usuário exceto o apertar de um botão.
Pense bem:
1) um programa é um conjunto de instruções normalmente armazenado em um
meio externo (memória de massa, geralmente um disco rígido ou ótico) que
precisa ser copiado para a memória principal para ser executado (se tem dúvidas,
veja as colunas < http://www.forumpcs.com.br/viewtopic.php?t=146019 > XX e
< http://www.forumpcs.com.br/viewtopic.php?t=146377 > XXI sobre ciclo de
busca e execução);
2) quem executa a operação de copiar na memória principal a seqüência de
instruções que constituem o programa é o sistema operacional já que uma de
suas funções principais e carregar e gerir programas;
3) o sistema operacional, por sua vez, também é um programa (um programa,
digamos, “especial”, porém nem por isso deixa de ser um programa) e, portanto,
para executar suas funções (inclusive a de carregar programas), deve estar
carregado na memória principal;
4) a memória RAM é de natureza volátil, ou seja, quando se desliga a máquina seu
conteúdo é perdido; portanto, ao se ligar a máquina, a memória RAM está
“vazia”, à espera de que o procedimento de inicialização carregue nela o sistema
operacional para começar a funcionar.
Mas se quem carrega programas é o sistema operacional e se o sistema operacional é
um programa, então diga-me lá: durante o procedimento de inicialização, quem carrega
na memória principal o sistema operacional?
Não parece que a máquina está fazendo algo parecido com a façanha do Barão de
Münchausen: sair de sua letargia e levantar-se, puxando para cima os “bootstraps”, os
cordões das próprias botinas?
Pois é por isso que ainda hoje em dia há quem chame o procedimento de inicialização
de “bootstrap” ou, mais freqüentemente, de “boot”.
Agora que já sabe a razão da designação, será que dá para explicar como o
procedimento de inicialização cumpre a tarefa de pôr algo na memória principal usando
para isso instruções que só podem ser executadas se lidas pela UCP da própria memória
principal que, em princípio, deve estar “vazia” quando a máquina é ligada?
Pode, um negócio desses?
Não, não pode. Da mesma forma que não pode o Barão se levantar puxando os cordões
das próprias botinas.
Não obstante a máquina é inicializada.
Como explicar?
Ora, para carregar algo na memória principal é preciso executar instruções lidas desta
própria memória principal. Portanto, a única explicação possível é que ela não está
“vazia” quando a máquina é ligada. Pelo menos uma parte dela deve conter as
instruções que são usadas para dar início ao procedimento de inicialização.
Mas se a memória principal é volátil e perde seus dados quando a máquina é desligada,
como pode conter algo ao se ligar a máquina?
A explicação é simples e todo o mistério desaparece quando voltamos dois parágrafos e
prestamos atenção ao que lá está escrito: “Pelo menos uma parte dela deve conter
instruções...”
Para entendermos como isso é possível e chegarmos à solução do aparente mistério do
“boot” precisamos fazer uma clara distinção entre os conceitos lógico e físico daquilo
que chamamos de “memória principal” e abordar algumas das suas peculiaridades.
O que faremos a partir da próxima coluna.
Coluna anterior: < http://www.forumpcs.com.br/viewtopic.php?t=219053 >
“Computadores XXXVIII: Hierarquia da memória”
Próxima coluna: Em breve