# História do hardware

O hardware do computador é um componente essencial no processo de cálculo e armazenamento de dados pois ele é necessário para o processamento e compartilhamento de dados. O primeiro computador que se tem notícia é literalmente duro. Os Fenícios armazenavam peças cerâmicas representando coisas como estoque e grãos em vasilhames, que não eram usados apenas pelo mercador mas pelos contadores e oficiais do governo.
Este texto apresenta os fatos mais significativos no desenvolvimento do hardware do computador.

## Primeiros dispositivos para facilitar o cálculo

A Humanidade tem utilizado dispositivos para auxiliar a computação há milênios. Um exemplo é o dispositivo para estabelecer a igualdade pelo peso: as clássicas balanças, posteriormente utilizadas para simbolizar a igualdade na justiça. Um dispositivo mais orientado à aritmética é o ábaco mostrado na figura ao lado.

## Primeiras calculadoras mecânicas

Em 1623 Wilhelm Schickard construiu a primeira calculadora mecânica e assim, tornou-se o pai da era da computação. Como sua máquina utilizava técnicas como engrenagens inicialmente desenvolvidas para relógios, ela foi também chamada de "relógio calculador". Ela foi colocada em uso prático por seu amigo Johannes Kepler, que revolucionou a astronomia.
A máquina de Blaise Pascal (a Pascalina, 1642) e Gottfried Wilhelm von Leibniz (1670) se seguiram.
Leibniz descreveu também o código binário, um ingrediente central de todos os computadores modernos. Entretanto, até 1940, muitos projetos (incluindo a máquina de Babbage do século XIX e mesmo o ENIAC de 1945) foram baseados no sistema decimal, mais difícil de implementar.
John Napier notou que a multiplicação e a divisão de números poderia ser feita pela adição e subtração, respectivamente, de logaritmos destes números. Como números reais podem ser representados pelas distâncias ou '"intervalos"' em uma linha, uma simples operação de translação ou movimentação de dois pedaços de madeira, corretamente marcados com intervalos logaritmos ou lineares, foi utilizada como a régua de cálculo por gerações de engenheiros e outros profissionais de ciências exatas, até a invenção da calculadora de bolso . Assim os engenheiros do programa Apollo para enviar o homem à lua fizeram seus cálculos em réguas de cálculo.

## Leitores de cartões perfurados 1801-1940

Em 1801, Joseph-Marie Jacquard desenvolveu uma máquina têxtil em que o padrão de saída era controlado por cartões perfurados. O conjunto de cartões poderia ser alterado sem alterar a estrutura da máquina têxtil. Este foi um marco na programação.
Em 1890 o censo dos Estados Unidos utilizou cartões perfurados e máquinas de ordenação desenhadas por Herman Hollerith para controlar os dados do censo da década conforme previsto na constituição. A companhia de Hollerith tornou-se posteriormente o núcleo da IBM.
No século XX, a eletricidade foi utilizada pela primeira vez em máquinas de calcular e ordenar. Em 1940, W.J. Eckert do Thomas J. Watson Astronomical Computing Bureau da Universidade Columbia publicou o artigo Método dos cartões perfurados na computação científica que era suficientemente avançado para resolver equações diferenciais, multiplicar e dividir números de ponto flutuante, baseado unicamente em cartões perfurados e mesas de conexão similares às utilizadas por operadores de telefonia. Os cálculos astronômicos representaram o estado da arte na computação.

## Primeiros projetos de máquinas programáveis 1835-1900s

A característica que define um "Computador Universal" é a "programabilidade" que permite ao computador emular qualquer outra máquina de calcular alterando a sequência de instruções armazenadas. Em 1835 Charles Babbage descreve sua Máquina Analítica. Esta máquina tratava-se de um projeto de um computador programável de propósito geral, empregando cartões perfurados para entrada e uma máquina de vapor para fornecer energia. Enquanto os projetos estavam provavelmente corretos, conflitos com o artesão que construía as partes, e o fim do financiamento do governo, tornaram impossível a sua construção. Ada Lovelace, filha de Lord Byron, traduziu e adicionou anotações ao Desenho da Máquina Analítica de L. F. Manabrea. Ela se tornou uma parceira bem próxima de Babbage. Alguns reivindicam que ela é a primeira programadora de computadores do mundo, entretanto essa reivindicação e a validade de suas outras contribuições são disputadas por muitos. A reconstrução da Máquina Diferencial está em operação desde 1991 no Museu de Ciências de Londres, ela trabalha como Babbage projetou e mostra que ele estava certo na teoria e permite a produção de partes da precisão requerida. Babbage falhou porque seus desenhos eram muito ambiciosos, ele teve problemas com relações de trabalho, e era politicamente inapto.

## Outros tipos limitados de computação mecânica 1800s-1900s

No início do século XX as primeiras calculadoras mecânicas, caixas registradoras e máquinas de cálculo em geral foram redesenhadas para utilizar motores elétricos, com a posição das engrenagens representando o estado de uma variável. Pessoas eram empregadas com o cargo de "computador", e utilizavam calculadoras para avaliar expressões. Durante o Projeto Manhattan, o futuro prêmio Nobel Richard Feynman foi o supervisor de uma sala cheia de computadores humanos, muitos deles mulheres, que entendiam as equações diferenciais que estavam sendo solucionadas para a guerra. Mesmo o renomado Stanislaw Marcin Ulam foi encarregado de trabalhar na tradução da matemática em um modelo computacional aproximado da bomba de hidrogênio, depois da guerra.
Durante a Segunda Guerra Mundial, Os planos de Curt Herzstark para uma calculadora mecânica de bolso literalmente salvaram sua vida. Veja: Cliff Stoll, Scientific American "290", no. 1, pp. 92–99. (Janeiro 2004)

## Computadores analógicos, pré 1940

Antes da segunda guerra, computadores mecânicos e elétricos computadores analógicos foram considerados o 'estado da arte', e muitos pensavam que eles eram o futuro da computação. Computadores analógicos utilizam variações contínuas de variáveis físicas, como voltagem e corrente, ou a velocidade de rotação de um dispositivo, para representar as quantidades sendo processadas. Um exemplo ingênuo de tal máquina é o Integrator aquático construído em 1936. Ao contrário dos computadores digitais modernos, computadores analógicos não são muito flexíveis, e precisavam ser reconfigurados (reprogramados) manualmente para trocar o problema em que iriam trabalhar. Computadores analógicos tinham uma vantagem frente aos primeiros computadores digitais pois eram capazes de resolver problemas mais complexos. Desde que os programas de computador não eram ainda muito populares nesta época (apesar do trabalho pioneiro de Babbage), As soluções eram freqüentemente hard-coded na forma de gráficos e nomogramas, que podiam representar, por exemplo, uma '"analogia"' da solução de problemas como a distribuição de pressão e temperatura em um sistema de aquecimento. Mas à medida que os computadores digitais se tornavam mais rápidos e com mais memória (e.g., RAM ou armazenamento interno), eles praticamente substituíram inteiramente os computadores analógicos, e a profissão de '"programador"' surgiu.

## Primeira geração dos computadores digitais 1940

A era da computação moderna começou com uma corrida de desenvolvimento antes e durante a Segunda Guerra Mundial, com circuitos eletrônicos, relés, capacitores e válvulas substituindo seus equivalentes mecânicos e o cálculo digital substituindo o cálculo analógico. Os computadores projetados e construídos nesta época foram chamados computadores de 'primeira geração'. Estes computadores eram normalmente construídos manualmente usando circuitos contendo relés e válvulas, e freqüentemente utilizavam cartões perfurados para a entrada e como a memória de armazenamento principal (não volátil). A memória temporária ou memória de trabalho, era fornecida por linhas de retardo acústicas (que utilizam a propagação do som no tempo como um meio para armazenar dados) ou por tubos de Williams (que utilizam a habilidade dos tubos de raios catódicos da televisão para armazenar dados). Em 1954, memórias de núcleo magnético rapidamente substituíram outras formas de armazenamento temporário, e dominaram até a metade da década de 1970.
Em 1936 Konrad Zuse iniciou a construção das primeiras calculadoras 'Z-series', calculadoras com memória e programáveis (inicialmente de forma limitada). A calculadora de Zuse totalmente mecânica, mas ainda utilizando o sistema binário foi finalizada em 1938, entretanto, nunca funcionou com confiabilidade por problemas de precisão em suas peças.
Em 1937, Claude Shannon finalizou sua tese de mestrado no MIT que implementava Álgebra booleana utilizando relés e chaves pela primeira vez na história. Intitulada Uma análise simbólica de relés e circuitos de comutação, A tese de Shannon forneceu as bases para o desenho prático de circuitos digitais.
A máquina seguinte de Zuse, o Z3, foi finalizado em 1941. Ela era baseada em relés telefônicos e funcionou satisfatoriamente. O Z3 passou a ser o primeiro computador programável. Em vários aspectos ele era muito semelhante às máquinas modernas, sendo pioneiro em vários avanços, como o uso de aritmética binária, e números de ponto flutuante. A troca do sistema decimal, mais difícil de implementar (utilizado no projeto de Charles Babbage) pelo simples sistema binário tornou a máquina de Zuse mais fácil de construir e potencialmente mais confiável, com a tecnologia disponível naquele tempo. Esta é algumas vezes vista como a principal razão do sucesso de Zuse onde Babbage falhou, entretanto, muitas das máquinas de hoje continuam a ter instruções de ajuste decimal, a aritmética decimal é ainda essencial para aplicações comerciais e financeiras e hardware para cálculos de ponto-flutuante decimais vem sendo adicionado em muitas novas máquinas (O sistema binário continua sendo utilizado em praticamente todas as máquinas).
Os Programas eram armazenados no Z3 em filmes perfurados. Desvios condicionais não existiam, mas na década de 1990 teóricos demonstraram que o Z3 ainda era um computador universal (ignorando sua limitação no seu espaço de armazenamento físico). Em duas patentes de 1937, Konrad Zuse antecipou que as instruções da máquina poderiam ser armazenadas no mesmo espaço de armazenamento utilizado para os dados - A primeira ideia do que viria a ser conhecida como a arquitetura de Von Neumann e que seria implementada no EDSAC britânico (1949). Zuse ainda projetou a primeira linguagem de alto nível, o (Plankalkül), em 1945, apesar desta não ser formalmente publicada até 1971, foi implementada pela primeira vez em 2000 pela universidade de Berlin—cinco anos após a morte de Zuse.
Zuse sofreu dramáticas derrotas e perdeu muitos anos durante a Segunda Guerra Mundial quando os bombardeamentos ingleses e americanos destruíram as suas primeiras máquinas. Aparentemente seu trabalho permaneceu em grande parte desconhecida para os engenheiros americanos e britânicos por muito tempo, no entanto pelo menos a IBM estava a par do seu trabalho e financiou sua companhia após a guerra 1946 em troca de permissões em suas patentes.
Em 1940, a calculadora de número complexos, para aritmética de números complexos baseada em relés, foi construída. Foi a primeira máquina a ser acessada remotamente via linha telefônica. Em 1938 John Atanasoff e Clifford Berry da Universidade do Estado de Iowa desenvolveram o Atanasoff–Berry Computer (ABC), um computador com um propósito especial: resolver sistemas de equações lineares, e que empregava capacitores para sua memória. A máquina ABC não era programável, mas era um computador em outros aspectos.
Durante a Segunda Guerra Mundial, os ingleses fizeram esforços significativos em Bletchley Park para quebrar a comunicação militar alemã. O principal sistema de criptografia germânico era feito através de uma máquina codificadora (o Enigma com vária variantes) foi atacado com bombas especialmente projetadas que ajudaram a encontrar possíveis chaves para o Enigma, depois que outras técnicas não tiveram sucesso. Os alemães também desenvolveram uma série de sistemas cifradores (chamados cifradores '"Fish"' pelos ingleses e cifradores de Lorenz pelos alemães) que eram um pouco diferentes do Enigma. Como parte do ataque contra este cifradores, o professor Max Newman e seus colegas (incluindo Alan Turing) ajudaram a projetar o Colossus. O Colossus Mk I foi feito em um curto período de tempo por Tommy Flowers no centro de pesquisa dos correios em Dollis Hill, Londres e então enviado para Bletchley Park.
O Colossus foi o primeiro dispositivo de computação totalmente eletrônico. Ele utilizava apenas válvulas e não possuía relés. Ele tinha uma fita de papel como entrada e era capaz de fazer desvios condicionais. Nove Colossus Mk II foram construídos (O Mk I foi convertido para Mk II totalizando dez máquinas). Detalhes de sua existência, projeto e uso foram mantidos em segredo até a década de 1970. Dizem que Winston Churchill ordenou pessoalmente a destruição dos computadores em peças não maiores que uma mão humana. Devido a este segredo estes computadores não foram incluídos em muitas histórias da computação. Uma cópia reconstruída de uma das máquinas Colossus existe hoje em exposição em Bletchley Park.
O trabalho de Turing antes da Guerra teve uma grande influência na teoria da computação, e após a Guerra ele projetou, construiu e programou alguns dos primeiros computadores no National Physical Laboratory na Universidade de Manchester. Seu artigo de 1936 incluía uma reformulação dos resultados de 1931 de Kurt Gödel além de uma descrição do que agora é chamado de máquina de Turing, um dispositivo puramente teórico inventado para formalizar a noção da execução de algoritmos, substituindo a complicada linguagem universal de Gödel baseada em aritmética. Computadores modernos têm a capacidade de execução equivalente a uma máquina de Turing universal), exceto por sua memória finita. Esta limitação na memória é algumas vezes vista como uma fronteira que separa computadores de propósito geral dos computadores de propósito especial anteriores.
George Stibitz e colaboradores no Laboratório Bell em Nova Iorque produziram vários computadores baseados em relés no final da década de 1930 e início da década de 1940, mas foram concebidos principalmente para o controle do sistema de telefonia. Seus esforços foram um antecedente de outra máquina eletromecânica americana.
O Harvard Mark I (oficialmente, o Calculador Controlado por Sequência) foi um computador de propósito geral eletro-mecânico construído com o financiamento da IBM e com a assistência de alguns funcionários da IBM sob a direção de um matemático de Harvard Howard Aiken. Seu projeto foi influenciado pela máquina analítica. Ele era uma máquina decimal que utilizava rodas de armazenamento em chaves rotativas juntamente com relés. Ele era programado por cartões perfurados, e continha várias calculadoras trabalhando em paralelo. Modelos posteriores continham vários leitores de fita de papel e a máquina podia trocar de leitor dependendo de uma condição. O Desenvolvimento começou em 1939 no laboratório Endicott da IBM; o Mark I foi transferido para a Universidade de Harvard e começou a operar em maio de 1944.
O ENIAC (Electronic Numerical Integrator and Computer), freqüentemente chamado o primeiro computador eletrônico de propósito-geral, validou publicamente o uso da eletrônica para a computação em larga escala. Isto foi crucial para o desenvolvimento da computação moderna, inicialmente devido à enorme vantagem em velocidade e depois pelo potencial de miniaturização. Construído sob a direção de John Mauchly e J. Presper Eckert, ele era 1.000 vezes mais rápido que seus contemporâneos. O desenvolvimento e construção do ENIAC iniciou em 1941 e entrou em operação completa 1945. Quando seu projeto foi proposto, muitos pesquisadores acreditavam que milhares de delicadas válvulas iriam queimar com uma freqüência tal que o ENIAC estaria freqüentemente desligado para reparos e não teria uso prático. Ele foi, entretanto, capaz de fazer 100.000 cálculos simples por segundo por horas entre as falhas nas válvulas.
`Programar' o ENIAC, entretanto, significava modificar a sua fiação interna - podemos dizer que isto nem se qualifica como programação, de outro modo qualquer tipo de reconstrução de algum computador limitado pode ser visto como programação. Vários anos depois, entretanto, ele se tornou capaz de executar programas armazenados em uma tabela de funções na memória.
Todas as máquinas daquela data ainda deixavam de possuir o que passou a ser conhecido como a arquitetura de von Neumann: seus programas não eram armazenados no mesmo 'espaço' de memória que os dados e assim os programas não podiam ser manipulados como os dados.
A primeira máquina com a arquitetura von Neumann foi o Manchester "Baby" ou Máquina Experimental em pequena escala, construída na Universidade de Manchester em 1948; ela foi seguida pelo Manchester Mark I em 1949 que funcionava como um sistema completo utilizando o tubo de Williams para a memória e introduziu o uso de registradores de índice. O outro candidato ao título de "primeiro computador com programas armazenados de forma digital" foi o EDSAC, projetado e construído na Universidade de Cambridge. Operacional menos de um ano depois do Manchester "Baby", ele era capaz de resolver problemas reais. O EDSAC foi inspirado nos planos do EDVAC, o sucessor do ENIAC; estes planos existiam na época que o ENIAC ficou operacional. Ao contrário do ENIAC, que utilizava processamento paralelo, O EDVAC utilizava uma única unidade de processamento. Seu desenho era simples e foi o primeiro a ser implementado em cada nova onda de miniaturização, e aumento de confiabilidade. Muitos consideram o Manchester Mark I / EDSAC / EDVAC os pais dos quais derivaram a arquitetura de todos os computadores correntes.
O primeiro computador universal programável na Europa foi criado por um time de cientistas sob a direção de Segrey Alekseevich Lebedev do Instituto de Eletrotecnologia de Kiev, União Soviética (hoje Ucrânia). O computador MESM (МЭСМ, Pequena máquina eletrônica de cálculo) tornou-se operacional em 1950. Ele tinha cerca de 6.000 válvulas e consumia 25 kW de potência. Ele podia fazer aproximadamente 3.000 operações por segundo.
A máquina da Universidade de Manchester tornou-se o protótipo do Ferranti Mark I. O primeiro Ferranti Mark I foi entregue à Universidade em fevereiro de 1951, e no mínimo nove outros foram vendidos entre 1951 e 1957.
Em junho de 1951, o UNIVAC I (Universal Automatic Computer) foi entregue para o departamento de censo dos Estados Unidos da América. Mesmo tendo sido fabricado por Remington Rand, a máquina é freqüentemente chamada indevidamente de "IBM UNIVAC". Remington Rand vendeu 46 máquinas por mais de US$1 milhão cada. O UNIVAC foi o primeiro computador 'produzido em massa'; todos os predecessores foram feitos em pequena escala. Ele utilizava 5.200 válvulas e consumia 125 kW de potência. Utilizava uma linha de retardo de mercúrio capaz de armazenar 1.000 palavras de 11 dígitos decimais mais o sinal (palavras de 72 bits). Ao contrário das máquinas anteriores ele não utilizava cartões perfurados para entrada e sim uma fita de metal.
Em Novembro de 1951, A empresa J. Lyons começou uma operação semanal de contabilidade de uma padaria com o LEO (Lyons Electronic Office). Esta foi a primeira aplicação comercial em um computador programável.
Ainda em 1951 (Julho), Remington Rand demonstrou o primeiro protótipo do 409, uma calculadora programável com cartões perfurados e plugues. Ele foi instalado inicialmente, no serviço de receita interna de Baltimore, em 1952. Veja em Rowayton Historical Society's timeline maiores detalhes. O 409 evoluiu para se tornar o Univac 60 e 120 em 1953.

## Segunda geração 1947-1960

O grande passo seguinte na história da computação foi a invenção do transístor em 1948. Ele substituiu as frágeis válvulas, que ainda eram maiores e gastavam mais energia, além de serem menos confiáveis. Computadores transistorizados são normalmente referidos como computadores da 'segunda geração' e dominaram o mercado nos anos entre 1950 e início de 1960. Apesar de utilizar transistores e placas de circuito impresso estes computadores ainda eram grandes e utilizados principalmente em universidades, órgãos públicos e grandes empresas. O IBM 650 baseado em válvulas de 1954 pesava 900 kg, a fonte de alimentação pesava cerca de 1 350 kg e ambos eram mantidos em gabinetes separados de 1,5 metros por 0,9 metros por 1,8 metros. Ele custava US$500.000 ou podia ser alugado por US$3.500 por mês. Entretanto a memória tinha originalmente apenas 2000 palavras de 10 dígitos, uma limitação que forçava uma programação difícil, para obter resultados. Este tipo de limitação dominou a programação por décadas.
Em 1955, Maurice Wilkes inventou a microprogramação, hoje utilizada universalmente na implementação dos projetos de CPU. O conjunto de instruções da CPU é definido por uma programação especial.
Em 1956, A IBM vendeu seu primeiro disco magnético, RAMAC (Random Access Method of Accounting and Control). Ela utilizou 50 discos de metal de 24 polegadas, com 100 trilhas por lado. Ele podia armazenar 5 megabytes de dados a um custo de US$10.000 por megabyte.
A primeira linguagem de programação de alto nível criada, o FORTRAN, foi também desenvolvida na IBM naquela época. (O projeto de Konrad Zuse de 1945 de uma linguagem de alto nível, Plankalkül, não estava implementado ainda.)
Em 1959 a IBM construiu um mainframe baseado em transistores, o IBM 1401, que utilizava cartões perfurados. Ele se tornou um computador de propósito geral popular e 12.000 foram vendidos, tornando-se a mais bem sucedida máquina na história dos computadores. Ele utilizava uma memória principal magnética de 4000 caracteres (mais tarde expandida para 16.000). Muitos aspectos de seu projeto foram baseados no desejo de substituir as máquinas de cartões perfurados da década de 1920 que estavam em uso.
Em 1960 a IBM vendeu o mainframe IBM 1620 baseado em transistores, originalmente utilizava somente fita de papel perfurado, mas foi logo atualizado para cartões perfurados. Ele provou ser um computador científico popular e cerca de 2.000 foram vendidos. Ele utilizava uma memória de núcleo magnético de até 60.000 dígitos decimais.
Ainda em 1960, a DEC lançou o PDP-1 sua primeira máquina destinada ao uso por pessoal técnico em laboratórios e para pesquisa.
Em 1964 a IBM anunciou o System/360, que foi a primeira família de computadores que podia executar o mesmo programa em diferentes combinações de velocidade, capacidade e preço. Ele ainda foi pioneiro no uso comercial de microprogramas, com um conjunto estendido de instruções projetado para processar muitos tipos de dados, não apenas aritméticos. Além disto, ele unificou a linha de produtos da IBM, que anteriormente incluía uma linha "comercial" e uma linha "científica" separadas. O programa fornecido com o System/360 ainda incluía outros avanços, incluindo multiprogramação, novas linguagens de programação e independência dos programas dos dispositivos de entrada e saída. Mais de 14 000 System/360 foram vendidos até 1968.
Ainda em 1964, a DEC criou o PDP-8 uma máquina muito pequena, novamente destinada a técnicos e laboratórios de pesquisa.

## Terceira geração e posterior, após 1958

A explosão no uso dos computadores começou com a 'Terceira Geração' de computadores. Estes se baseiam na invenção independente do circuito integrado (ou chip) por Jack St. Claire Kilby e Robert Noyce, que posteriormente levou à invenção do microprocessador por Ted Hoff da Intel. Mais tarde, Kilby recebeu o Prêmio Nobel de Física por seu trabalho.
No final da década de 1950, pesquisadores como George Gamow notaram que longas sequências de nucleotídeos no DNA formavam um código genético, assim surge uma outra forma de codificação ou programação, desta vez com expressões genéticas. Na década de 1960, foi identificado análogos para a instrução de parada halt, por exemplo.
Em 1969, Ken Thompson, Dennis Ritchie e um grupo de outros desenvolvedores da Bell Labs produziram o UNIX, um sistema operacional que tornou "a rede em grande escala de diversos sistemas de computação - e a Internet - prática", de acordo com a Bell Labs. A equipe por trás do UNIX continuou a desenvolver o sistema operacional usando a linguagem de programação C, que também foi otimizada.
No início dos anos 70, a recém-formada Intel apresenta o Intel 1103, o primeiro chip de memória de acesso dinâmico (DRAM). Uma equipe de engenheiros da IBM liderada por Alan Shugart inventa o "disquete", permitindo que os dados sejam compartilhados entre diferentes computadores.
Em 1972, Ralph Baer, ​​um engenheiro alemão-americano, lança Magnavox Odyssey, o primeiro console de videogame doméstico do mundo, em setembro de 1972, de acordo com o Computer Museum of America. Meses depois, o empresário Nolan Bushnell e o engenheiro Al Alcorn com a Atari lançam Pong, o primeiro videogame de sucesso comercial do mundo e, no ano seguinte, Robert Metcalfe, membro da equipe de pesquisa da Xerox, desenvolve Ethernet para conectar vários computadores e outros hardwares.
Na virada do milênio, pesquisadores notaram que o modelo descrito pela mecânica quântica poderia ser visto como elementos computacionais probabilísticos, com um poder de computação excedendo qualquer um dos computadores mencionados anteriormente, a Computação quântica.