< Trilha Zero >
|
|
|
15/01/2001
|
< Botinas > |
Em inglês, o processo de inicialização de um computador denomina-se boot, uma palavra que significa botina e parece não fazer sentido nesse contexto. No entanto há uma razão para que ela seja usada. Para compreendê-la há que se entender que aquele procedimento contém em si mesmo uma contradição aparentemente intransponível, resultante da combinação de três fatores. O primeiro deriva de uma constatação elementar: tudo que um computador faz é efeito de um programa e isso inclui, necessariamente, o procedimento de inicialização. Logo, se máquina está sendo inicializada, um programa está sendo executado. O segundo é conseqüência do fato de que programas somente podem ser executados se as instruções que o compõem estiverem alojadas na memória principal. Programas consistem em um conjunto de instruções encadeadas que são interpretadas e executadas seqüencialmente pela UCP (Unidade Central de Processamento) que deve, obrigatoriamente, lê-las uma a uma na memória principal. É verdade que o código executável, o conjunto de instruções que compõe um programa, pode ser armazenado em disco sob a forma de um arquivo executável. Mas este arquivo não pode ser executado diretamente do disco: é preciso antes transpô-lo para a memória principal (a isso se chama carregar o programa; quando você clica sobre o ícone de um programa para executá-lo, dá início a um complexo encadeamento de ações que começa com a leitura de seu código executável no disco para copiá-lo na memória). O terceiro fator deve-se a uma característica da memória RAM (Random Access Memory) usada como memória principal de nossos computadores: ela é volátil. Seus circuitos dependem da eletricidade para preservar seu conteúdo e, ao se desligar o micro, a memória se esvazia completamente. Entendeu agora a contradição? Quando a máquina é ligada a memória está vazia. A inicialização é feita por um programa, que só pode rodar se estiver na memória. E só quem pode carregar um programa é outro programa que deveria então já estar na memória. Que, porém, estava vazia... Em inglês, para se referir a algo assim, usa-se o ditado elevar-se pelos cordões das botinas (pulling yourself up by the bootstraps). A idéia é alguém se abaixar, segurar nos cordões de suas próprias botinas, puxá-los para cima e, com isso, levitar. Aparentemente é mais ou menos o que a máquina faz em seu processo de inicialização. Um procedimento que, devido ao ditado, no início da era dos computadores era conhecido por bootstrap e depois foi simplificado para boot. É claro que não há mistério algum. A decepcionante verdade é que nem toda a memória principal consiste de memória RAM: há uma pequena parte dela formada por chips (circuitos integrados) de memória ROM (Read Only Memory, ou memória apenas de leitura). Esses chips preservam seu conteúdo quando a máquina é desligada mas em contrapartida não podem ser alterados (e, portanto, não podem ser usados no restante da memória principal, cujo conteúdo deve ser dinâmico). Neles é gravado o programa de inicialização e um conjunto de rotinas (trechos de programas) que permitem acessar o hardware. Esse conjunto denomina-se BIOS (Basic Input/Output System, ou sistema básico de entrada/saída). Quando se liga a máquina, a primeira instrução lida e executada pela CPU fica justamente em um dos endereços ocupados pela memória ROM e dá a partida no procedimento de inicialização (ou de boot). Esse procedimento, primeiro, testa os principais componentes da máquina (e exibe alguns resultados na tela, como por exemplo o teste da memória RAM). Depois, carrega o sistema operacional. Ora, vimos na semana passada que o sistema operacional é um programa. Vimos hoje que programas podem estar armazenados em disco, mas não podem ser executados a partir dele. Portanto, a carga do sistema operacional consiste em ler no disco os arquivos que o compõem e transpô-los para a memória. Ora, para isso é preciso, primeiro, saber em que disco encontrá-los (computadores podem ter diversos discos, flexíveis ou rígidos, e o sistema operacional pode estar em muitos deles especialmente em uma máquina onde se pode escolher o sistema que se quer rodar). Depois, é necessário saber em que setores de que trilhas tais arquivos se escondem. E, pelo menos nos primeiros estágios, seja qual for o sistema operacional a ser carregado, tudo isso tem que ser feito usando apenas as limitadas rotinas do BIOS gravadas em memória ROM. Isto sim, é um feito e tanto. Que discutiremos semana que vem. B. Piropo |