A inicialização

Switches e cabos usados para o programa de ENIAC (1946)

Existem muitos métodos diferentes disponíveis para carregar um curto período inicial do programa em um computador. Estes métodos chegam de simples entrada física para meios removíveis que podem conter programas mais complexos.

pré-circuito integrado-ROM examplesEdit

os primeiros computadores computadorizados

os primeiros computadores nos anos 1940 e 1950 foram um dos esforços de engenharia de tipo único que poderia levar semanas para programar e carregar programas foi um dos muitos problemas que tiveram de ser resolvidos. Um computador antigo, ENIAC, não tinha nenhum programa armazenado na memória, mas foi criado para cada problema por uma configuração de cabos interconectados. Bootstrapping não se aplica a ENIAC, cuja configuração de hardware estava pronta para resolver problemas assim que o poder foi aplicado.

O sistema EDSAC, o segundo computador de programa armazenado a ser construído, usou Interruptores de passo para transferir um programa fixo para a memória quando seu botão de início foi pressionado. O programa armazenado neste dispositivo, que David Wheeler completou no final de 1948, carregou mais instruções da fita perfurada e, em seguida, executou-os.

First commercial computersEdit

The first programmable computers for commercial sale, such as the UNIVAC I and the IBM 701 included features to make their operation simpler. Eles tipicamente incluíam instruções que realizavam uma operação completa de entrada ou saída. A mesma lógica de hardware poderia ser usada para carregar o conteúdo de uma placa de punch (as mais típicas) ou outros meios de entrada, como um tambor magnético ou fita magnética, que continha um programa de bootstrap pressionando um único botão. Este conceito de inicialização foi chamado de uma variedade de nomes para computadores IBM dos anos 1950 e início dos anos 1960, mas IBM usou o termo “carga de programa inicial” com o Stretch IBM 7030 e mais tarde o usou para suas linhas de mainframe, começando com o System/360 em 1964.

Initial program load cartão perfurado para o IBM 1130 (1965)

O IBM 701 computador (1952-1956) tinha uma “Carga” botão que iniciou a leitura da primeira palavra de 36 bits na memória principal de um soco cartão em um leitor de cartão, uma fita magnética em uma unidade de fita ou em um cilindro magnético unidade, dependendo da posição da Carga Seletor. A meia-palavra esquerda de 18 bits foi então executada como uma instrução, que normalmente lê palavras adicionais na memória. O programa de inicialização carregado foi então executado, que, por sua vez, carregou um programa maior desse meio para a memória sem mais ajuda do operador humano. O termo “boot” tem sido usado neste sentido desde pelo menos 1958.

IBM System/3 console da década de 1970.

outros computadores IBM da época tinham características semelhantes. Por exemplo, o sistema IBM 1401 (C. 1958) usou um leitor de cartões para carregar um programa a partir de um cartão perfurado. Os 80 caracteres armazenados no cartão perfurado foram lidos em locais de memória 001 a 080, em seguida, o computador iria ramificar para o local de memória 001 para ler a sua primeira instrução armazenada. Esta instrução foi sempre a mesma: mover a informação nestes primeiros 80 locais de memória para uma área de montagem onde a informação em cartões perfurados 2, 3, 4, e assim por diante, poderia ser combinada para formar o programa armazenado. Uma vez que esta informação foi movida para a área de montagem, a máquina iria ramificar para uma instrução no local 080 (ler um cartão) e o próximo cartão seria lido e sua informação processada.

outro exemplo foi o IBM 650 (1953), uma máquina decimal, que tinha um grupo de dez Interruptores de 10 posições em seu painel de operador que eram endereçáveis como uma palavra de memória (endereço 8000) e poderia ser executado como uma instrução. Assim, a definição de parâmetros para 7004000400 e pressionando o botão apropriado iria ler o primeiro cartão no leitor de cartão para a memória (op código de 70), começando no endereço 400 e, em seguida, saltar para 400 para começar a executar o programa no cartão.

os concorrentes da IBM também ofereceram carga de um único botão.

  • O CDC 6600 (C. 1964) teve um painel de início morto com 144 Interruptores de comutação; o interruptor de início morto entrou 12 palavras dos interruptores de comutação para a memória do processador periférico (PP) 0 e iniciou a sequência de carga. PP 0 carregou o código necessário em sua própria memória e, em seguida, inicializou os outros PPs.
  • O GE 645 (c. 1965) tinha um “SISTEMA de BOOTLOAD” botão que, quando pressionado, causou um dos de e/S, controladores de carregar uma versão de 64-programa word na memória de um diodo de memória só de leitura e entregar uma interrupção para causar esse programa para iniciar a execução.
  • O primeiro modelo do PDP-10 tinha uma “LEITURA NO” botão que, quando pressionado, redefinir o processador e iniciou uma operação de e/S em um dispositivo especificado pelos parâmetros no painel de controle, a leitura de uma palavra de 36 bits dando um endereço de destino e contagem, para posterior palavra diz; quando a leitura concluída, o processador começou a executar a leitura do código na saltando para a última palavra lidos.

uma variação notável disto é encontrado nos Burroughs B1700 onde não há nem uma ROM de bootstrap nem uma operação IPL hardwire. Em vez disso, depois que o sistema é reinicializado, ele lê e executa opcodes sequencialmente a partir de uma unidade de fita montada no painel frontal; isso configura um carregador de boot em RAM que é então executado. No entanto, como isso faz poucas suposições sobre o sistema, ele também pode ser usado para carregar fitas de diagnóstico (rotina de teste de manutenção) que exibem um código inteligível no painel frontal, mesmo em casos de falha de CPU bruta.

IBM System / 360 and successorsEdit

In the IBM System / 360 and its successors, including the current z / Architecture machines, the boot process is known as Initial Program Load (IPL).

IBM cunhou este termo para o 7030 (Stretch), reviveu-o para o projeto do sistema/360, e continua a usá-lo nesses ambientes hoje. No sistema/360 processadores, um IPL é iniciado pelo operador do computador, selecionando o endereço do dispositivo de três dígitos hexadecimal (CUU; C=endereço do Canal I/O, UU=unidade de controle e endereço do dispositivo) seguido por pressionar o botão de carga. No high end System / 360 models, a maioria dos sistemas / 370 e alguns sistemas posteriores, as funções dos switches e do botão de carga são simuladas usando áreas selecionáveis na tela de uma consola gráfica, muitas vezes um dispositivo IBM 2250-like ou um dispositivo IBM 3270-like. Por exemplo, no modelo 158 do sistema/370, a sequência de teclado 0-7-X (zero, sete e X, nessa ordem) resulta em um IPL a partir do endereço do dispositivo que foi introduzido na área de entrada. O Amdahl 470V / 6 e CPUs relacionadas suportavam quatro dígitos hexadecimais nos CPUs que tinham a unidade opcional do segundo canal instalada, para um total de 32 canais. Mais tarde, a IBM também suportaria mais de 16 canais.

A função IPL no sistema / 360 e seus sucessores, e seus compatíveis, tais como Amdahl, lê 24 bytes de um dispositivo especificado pelo operador para o armazenamento principal começando no endereço real zero. O segundo e terceiro grupos de oito bytes são tratados como palavras de comando de canal (CCWs) para continuar carregando o programa de inicialização (o primeiro CCW é sempre simulado pela CPU e consiste de um comando IPL Lido, 02h, com o comando de encadeamento e supressão de indicação de comprimento incorreto sendo aplicada). Quando os comandos de canal I / O estão completos, o primeiro grupo de oito bytes é então carregado na Palavra de Estado do programa do processador (PSW) e o programa de inicialização começa a execução no local designado por esse PSW. O IPL dispositivo é geralmente uma unidade de disco, daí a especial importância das 02h tipo de leitura de comando, mas exatamente o mesmo procedimento também é utilizado para IPL a partir de outras entradas-tipo de dispositivos, tais como unidades de fita, ou até mesmo os leitores de cartão, de forma independente do dispositivo, permitindo, por exemplo, a instalação de um sistema operacional em um novo computador a partir de um sistema operacional distribuição inicial de fita magnética. Para os controladores de disco, o comando 02h também faz com que o dispositivo selecionado procure o cilindro 0000h, a cabeça 0000h, simulando um cilindro de busca e o comando head 07h, e para procurar o registro 01h, simulando um ID de busca igual comando, 31h; as buscas não são simuladas por Controladores de fita e cartão, como para estas classes de dispositivo um comando 02h é simplesmente um comando de leitura sequencial, não um comando IPL de leitura.

O disco, fita ou cartão de deck deve conter um programa especial para carregar o sistema operacional real ou utilitário autônomo para o armazenamento principal, e para esse fim específico “do IPL Texto” é colocado no disco pela autônomo DASDI (de Armazenamento de Acesso Direto Dispositivo de Inicialização) é um programa ou um programa equivalente em execução em um sistema operacional, por exemplo, ICKDSF, mas IPL-capaz de fitas e baralhos de cartas são normalmente distribuídos com este “IPL Texto” já está presente.

MinicomputersEdit

PDP-8/E painel frontal mostrando os parâmetros utilizados para carregar o programa de bootstrap

Minicomputadores, começando com a Digital equipment Corporation (DEC) PDP-5 e o PDP-8 (1965) projeto simplificado usando a CPU para auxiliar a entrada e saída de operações. Isso salvou o custo, mas tornou o arranque mais complicado do que pressionar um único botão. Os minicomputadores tipicamente tinham alguma forma de alternar em programas curtos, manipulando um conjunto de interruptores no painel frontal. Uma vez que os primeiros minicomputadores usaram a memória do núcleo magnético, que não perdeu a sua informação quando a energia estava desligada, estes carregadores bootstrap permaneceriam no lugar a menos que fossem apagados. Apagamento às vezes aconteceu acidentalmente quando um erro de programa causou um loop que cobriu toda a memória.

outros minicomputadores com tal forma simples de inicialização incluem a série HP 2100 de Hewlett-Packard (meados da década de 1960), o general de dados original Nova (1969), e PDP-11 de DEC (1970).

DEC mais tarde adicionou uma matriz de díodos opcional apenas memória para o PDP-11 que armazenou um programa bootstrap de até 32 palavras (64 bytes). Consistia de uma placa de circuito impresso, o M792, que conectava o Unibus e segurava uma matriz de 32 por 16 díodos semicondutores. Com todos os 512 díodos no lugar, a memória continha todos os bits” um”; o cartão foi programado cortando cada díodo cujo bit era “zero”. DEC também vendeu versões do cartão, a série BM792-Yx, pré-programado para muitos dispositivos de entrada padrão, simplesmente omitindo os díodos não necessários.

seguindo a abordagem mais antiga, o PDP-1 anterior tem um carregador de hardware, tal que um operador só precisa empurrar o interruptor “carga” para instruir o leitor de fita de papel para carregar um programa diretamente na memória principal. Os Dados Gerais de Supernova usado no painel frontal muda para causar o computador para carregar automaticamente instruções na memória de um dispositivo especificado pelo painel frontal de dados de opções e, em seguida, saltar para o código carregado; a Nova 800 e 1200 havia um interruptor que carregar um programa na memória principal de um especial de memória só de leitura e saltou para ela.

o primeiro programa a ser executado no processo de arranque, O carregador de arranque, iria ler para a memória principal ou o carregador de arranque de segunda fase (muitas vezes chamado de Carregador binário) que poderia ler fita de papel com checksum ou o sistema operacional a partir de um meio de armazenamento externo. Pseudocode para o carregador de arranque pode ser tão simples como as seguintes oito instruções:

  1. Definir o registo P 9
  2. Verifique a fita de papel de leitor de pronto
  3. Se não estiver pronto, o salto para 2
  4. Ler um byte da fita de papel do leitor para o acumulador
  5. Loja do acumulador para o endereço de em P register
  6. Se o fim da fita, saltar para 9
  7. Incrementar o registo P
  8. Saltar para 2

Um exemplo relacionado é baseado em um carregador para um Nicolet Instrumento Corporation minicomputador da década de 1970, usando a fita de papel de leitor-soco unidade em um Teletipo Modelo 33 ASR telex. Os bytes do seu carregador de segunda fase são lidos a partir de fita de papel em ordem inversa.

  1. Set the P register to 106
  2. Check paper tape reader ready
  3. If not ready, jump to 2
  4. Read a byte from paper tape reader to accumulator
  5. Store accumulator to address in P register
  6. Decrement the P register

  7. Jump to 2

O comprimento do segundo stage loader é tal que o byte final sobrepõe localização 7. Após a instrução no local 6 executar, o local 7 inicia a execução do carregador de segunda fase. O carregador da segunda etapa, em seguida, espera pela fita muito mais longa que contém o sistema operacional para ser colocado no leitor de fita. A diferença entre o carregador de boot e o carregador de segunda fase é a adição de verificar o código para capturar erros de leitura de fita de papel, uma ocorrência frequente com custo relativamente baixo, hardware “part-time-duty”, como o modelo Teletype 33 ASR. (Friden Flexowriters were far more reliable, but also comparatively costly.)

iniciando o primeiro microcomputadorsedit

os primeiros microcomputadores, como o Altair 8800 (lançado primeiro em 1975) e uma máquina ainda anterior, similar (baseado na CPU Intel 8008) não tinha hardware de inicialização como tal. Quando iniciado,a CPU veria a memória que conteria o código executável contendo apenas zeros—memória binária foi limpa ao reiniciar. Os painéis dianteiros dessas máquinas carregavam comutadores para introduzir endereços e dados, um switch por bit da palavra de memória do computador e barramento de endereço. Adições simples ao hardware permitiram que um local de memória de cada vez fosse carregado a partir desses switches para armazenar o código de bootstrap. Enquanto isso, a CPU foi impedida de tentar executar o conteúdo de memória. Uma vez carregado correctamente, a CPU foi activada para executar o código de inicialização. Este processo foi tedioso e teve que ser livre de erros.

de circuito Integrado de memória só de leitura eraEdit

Um Intel 2708 EPROM “chip” em uma placa de circuito.

o processo de arranque para minicomputadores e microcomputadores foi revolucionado pela introdução de memória de leitura de circuito integrado (ROM), com suas muitas variantes, incluindo ROMs programados por máscara, ROM programáveis (PROM), ROM programáveis apagáveis programáveis (EPROM), e memória flash. Estes permitiram que os programas de inicialização de firmware fossem incluídos como parte do computador. A introdução de um ROM (externo) estava em um elaborador italiano de comutação de telefones, chamado Gruppi Speciali, patenteado em 1975 por Alberto Ciaramella, um pesquisador da CSELT. Gruppi Speciali foi, a partir de 1975, uma máquina totalmente de um botão iniciando no sistema operacional a partir de uma memória ROM composta de semicondutores, não de núcleos ferrite. Embora o dispositivo ROM não tenha sido incorporado nativamente no computador do Gruppi Speciali, devido ao design da máquina, ele também permitiu o arranque de ROM de um botão em máquinas não projetadas para isso (portanto, este “dispositivo bootstrap” era independente de arquitetura), por exemplo, o PDP-11. Armazenar o estado da máquina após o switch-off também estava no lugar, que era Outra característica crítica no concurso de comutação de telefone.

Normalmente, cada microprocessador, depois de um reset ou poder-na condição, realizar um processo de arranque, que normalmente tem a forma de “iniciar a execução do código que é encontrado começando em um endereço específico” ou “olhar para um multibyte código em um endereço específico e ir para o lugar indicado para começar a execução”. Um sistema construído usando esse microprocessador terá o ROM permanente ocupando esses locais especiais de modo que o sistema sempre começa a operar sem a assistência do operador. Por exemplo, processadores Intel x86 sempre começam por executar as instruções começando em F000:FFF0, enquanto para o processador MOS 6502, a inicialização começa por ler um endereço Vetor de dois bytes em $FFFD (MS byte) e $FFFC (LS byte) e pulando para esse local para executar o código bootstrap.Apple Inc.o primeiro Computador da Apple 1, introduzido em 1976, apresentava chips de PROM que eliminavam a necessidade de um painel frontal para o processo de arranque (como foi o caso do Altair 8800) em um computador comercial. De acordo com o anúncio da Apple, “Chega de interruptores, Chega de luzes … o firmware no PROMS permite-lhe introduzir, mostrar e depurar programas (todos em hex) a partir do teclado.”

devido à despesa da memória apenas de leitura na época, a série Apple II iniciou seus sistemas operacionais de disco usando uma série de pequenos passos incrementais, cada um passando o controle para a próxima fase do processo de inicialização gradualmente mais complexo. (Ver Apple DOS: Carregador de arranque). Porque tão pouco do sistema operacional de disco dependia de ROM, o hardware também era extremamente flexível e suportava uma ampla gama de mecanismos personalizados de proteção de cópia de disco. (See Software Cracking: History.)

alguns sistemas operacionais, mais notavelmente sistemas Macintosh pré-1995 da Apple, estão tão intimamente entrelaçados com seu hardware que é impossível inicializar nativamente um sistema operacional diferente do padrão. Este é o extremo oposto do cenário usando switches mencionados acima; é altamente inflexível, mas relativamente à prova de erro e infalível, desde que todo o hardware esteja funcionando normalmente. Uma solução comum em tais situações é projetar um carregador de boot que funciona como um programa pertencente ao so padrão que sequestra o sistema e carrega o SO alternativo. Esta técnica foi usada pela Apple para sua implementação a/UX Unix e copiada por vários sistemas operacionais freeware e BeOS Personal Edition 5.algumas máquinas, como o microcomputador Atari ST, eram “instantâneas”, com o sistema operacional executando a partir de uma ROM. A recuperação do SO da loja secundária ou terciária foi assim eliminada como uma das operações características para inicialização. Para permitir que personalizações do sistema, acessórios e outros softwares de suporte sejam carregados automaticamente, a unidade de disquetes da Atari foi lida para componentes adicionais durante o processo de boot. Houve um tempo-limite que deu tempo para inserir manualmente uma disquete enquanto o sistema buscava os componentes extras. Isto poderia ser evitado inserindo um disco em branco. O hardware Atari ST também foi projetado para que o slot de cartucho pudesse fornecer execução de programa nativo para fins de jogos como um holdover do legado de Atari fazendo jogos eletrônicos; inserindo o cartucho GCR Spectre com o sistema Macintosh ROM no slot de jogo e ativando o Atari, ele poderia “nativamente boot” o sistema operacional Macintosh em vez de os próprios TOS Atari.

O computador pessoal da IBM incluía firmware baseado em ROM chamado BIOS; uma das funções desse firmware era realizar um auto-teste de energia quando a máquina era alimentada, e, em seguida, para ler software a partir de um dispositivo de boot e executá-lo. Firmware compatível com a BIOS no computador pessoal da IBM é usado em computadores compatíveis com IBM PC. A interface de Firmware extensível foi desenvolvida pela Intel, originalmente para máquinas baseadas em Itanium, e mais tarde também foi usada como uma alternativa à BIOS em máquinas baseadas em x86, incluindo Macs Apple usando processadores Intel.

estações de trabalho Unix originalmente tinham firmware baseado em ROM específico pelo fornecedor. Sun Microsystems mais tarde desenvolveu OpenBoot, mais tarde conhecido como Open Firmware, que incorporou um quarto interpretador, com grande parte do firmware sendo escrito em Forth. Foi padronizado pelo IEEE como padrão IEEE 1275-1994; firmware que implementa esse padrão foi usado em Macs baseados em PowerPC e algumas outras máquinas baseadas em PowerPC, bem como os próprios computadores baseados em SPARC da Sun. A especificação avançada de computação RISC definiu outro padrão de firmware, que foi implementado em algumas máquinas baseadas em MIPS e Alfa e estações de trabalho baseadas em SGI Visual Workstation x86.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *