Prévia do material em texto
INICIALIZAÇÃO DO SISTEMA OPERACIONAL: O BOOTSTRAP (CARGA INICIAL) Prof.: André Moura. Adaptado de ENGLANDER, I. Inicialização do sistema operacional: o bootstrap – carga inicial. In: ______. A arquitetura de hardware computacional, software de sistema e comunicação em rede: uma abordagem da tecnologia da informação. 4. ed. Rio de Janeiro: LTC-Gen, 2011, p. 481-483. Minha Biblioteca. Já aprendemos que, quando o computador é ligado, o conteúdo da RAM é desconhecido. Também aprendemos que é necessário existir um programa na memória para que ele possa ser executado pela CPU. Então, se, para o computador ser inicializado, é necessário um programa na memória e se o conteúdo da memória é desconhecido, como resolver esse dilema? Como deixar o sistema computacional em condições de funcionamento? De uma maneira geral, acontece o seguinte: 1. A carga do programa inicial e a de funcionamento do sistema computacional ocorrem por meio de um programa de bootstrap (carga inicial) que se encontra gravado permanentemente (costuma vir de fábrica) em uma memória que é somente para leitura (ROM). 2. Assim que a máquina é ligada, o bootstrap começa a ser executado. 3. O bootstrap contém um carregador de programa que, automaticamente, vai buscar um programa específico em um dispositivo de armazenamento secundário (memória auxiliar, normalmente um disco rígido), carregá-lo na memória principal (RAM) e transferir o controle para ele. Esse processo é conhecido como bootstrapping (autocarregamento), também conhecido como booting do computador. O programa que o bootstrap carrega deve ser predeterminado e encontrado na memória secundária em uma posição conhecida. Geralmente se encontra em uma trilha e setor específicos em um disco rígido. O bootstrap também pode ser ajustado para inicializar o computador a partir de outro dispositivo e também de outro computador, desde que o sistema esteja conectado a uma rede. Na IBM esse processo é chamado de carregamento do programa inicial, ou IPL (initial program load). 4. O programa carregado pelo bootstrap contém o kernel do sistema operacional. O bootstrap costuma ser executado em dois ou mais estágios de carregamento. Isso ocorre para permitir um aumento na flexibilidade da localização do kernel e para manter pequeno o programa de bootstrap. Quando o procedimento de booting é concluído, o kernel está carregado e o computador está pronto para operação normal. 2 Os serviços residentes no sistema operacional estão disponíveis e prontos para ser utilizados. Os comandos já podem ser usados pelo usuário e novos programas serem carregados na memória e utilizados. 5. Veja uma representação resumida proposta por Englander (2011), conforme figura 1 a seguir: 6. Veja um exemplo de inicialização do bootstrap em um computador pessoal (PC): 6.1 O carregador de bootstrap do PC está localizado permanentemente na BIOS (basic input/output system ou sistema básico de entrada e saída) do sistema, em uma memória somente de leitura (ROM) e que faz parte do computador. 6.2 Quando o computador é ligado ou reinicializado, o controle é transferido para o primeiro endereço do programa carregador de bootstrap. 6.3 Logo no início do bootstrap é realizado um teste completo dos componentes do computador. O teste faz uma verificação dos componentes do sistema para saber se estão ativos e funcionando adequadamente. Verifica a presença de monitor, disco rígido e teclado. 3 Confere as instruções em ROM à procura de erros, utilizando a função checksum. Verifica a RAM, carregando dados em cada posição e lendo-os de volta. Reinicializa os registros de segmento, o ponteiro de instruções, os sinalizadores e várias linhas de endereço. Os resultados desses testes aparecem na tela do monitor. 6.4 Após os testes, o carregador de bootstrap determina qual dos discos é o disco do sistema. A localização é uma configuração que fica armazenada de forma permanente em memória, podendo ser modificada pelo usuário no momento da inicialização. A inicialização também pode ser feita de várias maneiras, incluindo disco rígido, CD e DVD e outros dispositivos conectáveis por meio de uma porta USB. 6.5 O disco de sistema contém um setor conhecido como registro de boot e seu conteúdo é carregado em seguida. 6.6 O registro de boot assume o controle. Ele contém um carregador adequado aos requisitos de entrada e saída para o disco em particular. Como exemplo, para alguns Windows, o registro de boot carrega: i. Uma sequência de arquivos, incluindo o kernel e o programa executivo, NTOSKRNL.EXE. ii. O registro. iii. A interface de hardware. iv. Várias bibliotecas de kernel, subsistema e API. v. Diversos outros componentes. Os itens carregados são baseados nas entradas no registro e o usuário tem pouco controle nesse processo enquanto ele está em andamento. 6.7 Um programa de logon, o WINLOGON.EXE, é iniciado. O usuário estando autorizado e o logon no sistema obtendo sucesso, o kernel vai configurar os parâmetros do usuário definidos no registro, a GUI do Windows será mostrada e o controle do sistema será entregue ao usuário. Uma vez entendido como que o sistema operacional assume o controle de um sistema computacional, também podemos inferir que os procedimentos computacionais básicos se equivalem, independentemente do tamanho do computador. Assim, um boot em um computador de grande porte da IBM é bem parecido com o boot em um PC. Mantendo as características e proporções, o IPL 4 (initial program load) em um computador de grande porte da IBM funciona de forma análoga ao procedimento de bootstrap do PC.