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