Emulação e história da computação

O Projeto de Simulação da História do Computador e SIMH

Os dispositivos computacionais mais simples que usamos hoje têm mais capacidade de processamento que os mais capazes sistemas computacionais de ontem. Por exemplo, o VAX 11/780 apresentava cerca de 0,5 MIPS no início dos anos 1980. Compare isso com um mainframe IBM zEnterprise™ 196 (z196) de hoje, que pode suportar bem mais que 52 KMIPS. Porém, podemos aprender muito com o início da história da computação. Se algum dia você já quis inicializar um IBM 1130, PDP-11 ou MITS Altair, o Projeto de Simulação da História do Computador é exatamente o que você está procurando.

M. Tim Jones, Tác giả độc lập, Emulex

M. Tim Jones author photoM. Tim Jones é arquiteto de firmware integrado e autor de Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming (atualmente em sua segunda edição), AI Application Programming (em sua segunda edição) e Sockets Programming from a Multilanguage Perspective. Seu conhecimento em engenharia varia do desenvolvimento de kernels para naves espaciais geossíncronas até a arquitetura de sistemas embarcados e o desenvolvimento de protocolos de rede. Tim é arquiteto de software e autor em Longmont, Colorado.



19/Abr/2011

No fim de 1978, como presente de aniversário, eu ganhei meu primeiro computador. Era um TRS-80 modelo 1 com 4KB de memória e armazenamento em massa em fita cassete, que eu mais tarde atualizei para um disquete Exatron. Dentro de algumas semanas, minhas habilidades de programação em BASIC tinham evoluído a ponto de ter excedido a memória disponível para meu programa ainda incompleto: um dia triste. Eu não fazia ideia de que 30 anos mais tarde, como engenheiro de firmware integrado, eu ainda estaria dedicando grande parte do meu tempo a tentar espremer mais código e dados em um espaço de endereço menor.

A história do computador é fascinante, assim como são alguns dos primeiros computadores desenvolvidos. Muitas dessas primeiras máquinas eram calculadoras rudimentares, como o Z1 de Konrad Zuse, que ele inventou em 1931, e voltando ainda mais no tempo, a máquina de triagem de Herman Hollerith que foi usada no censo de 1890; seis anos mais tarde, a sua empresa foi uma daquelas que se juntaram e se tornaram a IBM. Zuse também apresentou a primeira linguagem de programação algorítmica chamada Plankalkül para seu computador Z4. O Z4 era eletromecânico (baseado em comutação), suportava 64 palavras de memória e funcionava a extraordinários 40Hz (a 4KW de potência consumida). O professor John Atanasoff desenvolveu o primeiro computador digital, que ele começou em 1937 e concluiu em 1941, que usava binário para computação na Faculdade Estadual de Iowa. As ideias do Atanasoff-Berry Computer (ABC) foram usadas no primeiro computador eletrônico de uso geral, o ENIAC. Programar nesses sistemas seria algo desconhecido para a maioria de nós, que crescemos com Pascal, C ou LISP. Por exemplo, a programação do primeiro ENIAC exigia reprogramação física para mudar sua programação. A Wikipédia apresenta informações fascinantes sobre a evolução do computador (consulte Recursos).

O Projeto de Simulação da História do Computador

Como meu antigo TRS-80, que está guardado sem vida em uma caixa empoeirada, a história da computação pode facilmente nos deixar. Felizmente, há pessoas como Bob Supnik que dedicaram tempo e energia para resgatar parte da história mais importante da computação. Supnik criou o Projeto de Simulação da História do Computador como uma maneira de restaurar sistemas computacionais significativos através de simulações. O projeto de Supnik, que recebe contribuições de pessoas de todo o mundo, resultou em uma estrutura multissistema chamada SIMH que simula um grande número de sistemas computacionais. Alguns dos sistemas incluem o Data General Nova, PDPs e VAX da DEC, IBM 1401 e 7090/7094, sistemas Interdata e até mesmo sistemas MITS Altair (tanto para 8080 quanto para Z80). Consulte Recursos para outros sistemas simulados.


A arquitetura SIMH

Examinemos primeiro a arquitetura geral do SIMH e depois exploremos alguns exemplos de uso do SIMH para inicializar unidades de hardware simuladas mais antigas.

Mais sobre a arquitetura SIMH

Os detalhes penosos do SIMH podem ser encontrados em um documento chamado "Writing a Simulator for the SIMH System." Esse documento apresenta as principais funções do SIMH e detalhes das várias máquinas que são simuladas (consulte Recursos).

SIMH é uma estrutura na qual emuladores de sistema são desenvolvidos. Quando você explora a hierarquia da árvore de origens, encontra um conjunto de arquivos de simulador e, depois, um conjunto de subdiretórios que contém simulações de máquinas (ou classes de simulações de máquinas). Como mostrado na Figura 1, um simulador é composto do pacote de controle de simulador (contendo coisas como o console do simulador, bibliotecas de E/S terminais e de arquivo, e timers e soquetes) e um conjunto de dispositivos. O espírito desses dispositivos é um conjunto de registros para manter estado sobre o dispositivo (enquanto está ativo) e unidades representado conjuntos de dados (normalmente arquivos que são usados para representar o dispositivo). Nem todos os dispositivos devem estar presentes, por exemplo, redes podem não ser adequadas.

Figura 1. Arquitetura básica do SIMH
Figure showing the layered architecture of SIMH, with the simulator control package at the bottom, devices in the mid-layer, and user-provided files (software kit) at the top)

Quando uma máquina virtual é iniciada no simulador, o pacote de controle do simulador primeiro identifica as particularidades do ambiente (array de dispositivos, rotina de carregador binário, simulador de conjunto de instruções e assim por diante). Como verá em breve, depois que o simulador é iniciado, é possível interagir com ele para inicializar a máquina virtual (ou colocar essa interação em um arquivo para simplificar as etapas). O simulador é, em essência, um depurador; portanto, é possível definir pontos de interrupção e interagir com os dispositivos, CPU e memória. Tendo em vista o grau de funcionalidade fornecido no SIMH, o código é de fácil leitura e não tão grande quanto se poderia esperar.


Configurando o SIMH

Vamos explorar como o SIMH pode levá-lo de volta aos primórdios da computação. Esta seção primeiro explica como instalar e desenvolver o SIMH e, em seguida, discute os kits de software.

Instalando o SIMH

A sessão seguinte ilustra como fazer o download e desenvolver o SIMH. Ela demonstra a versão 38.1 do SIMH, mas você deve verificar o Web site para ver se o pacote evoluiu. Como observado na Listagem 1, eu precisei criar o subdiretório ./BIN antes que o pacote pudesse ser feito.

Listagem 1. Instalando e desenvolvendo o SIMH
$ mkdir simh ; cd simh

$ wget http://simh.trailing-edge.com/sources/simhv38-1.zip

$ unzip simhv38-1.zip
$ mkdir BIN
$ make -f makefile

Depois de concluir as etapas na Listagem 1, você terá um conjunto de binários no subdiretório ./BIN representando os simuladores individuais (como ibm1130 e vax780).

Kits de Software

Na etapa anterior, você desenvolveu o simulador SIMH. Porém, para que ele seja útil, você precisa de software (sistema operacional e aplicativos) para esses simuladores. Como esses sistemas operavam com fita de papel e fitas magnéticas, o software representado por essas mídias foi reempacotado em arquivos para facilitar o uso. Como parte dessas demonstrações, você explorará os kits de software necessários e aprenderá onde efetuar o download deles.

Navegando pelo simulador

Quando você inicia um simulador (nomeado para a máquina que ele está simulando, como altairz80), você verá o prompt sim> . Esse prompt diz a você que está na base do simulador, que você pode então configurar para fazer aparecer o destino simulado. Este artigo explora alguns dos muitos comandos que podem ser executados. É possível usar help para ver a lista extensa. Também é importante observar que enquanto estiver emulando uma das máquinas de suporte, você pode usar Ctrl-E para retornar ao simulador. A partir daí, você pode definir pontos de interrupção, examinar registros, observar a fila de eventos do simulador, entre outras coisas.


Usando o SIMH

Agora que você tem um entendimento básico do SIMH, vamos explorar o seu uso com uma gama de sistemas de computador. Veremos o LISP em um sistema IBM 1130, UNIX® em um sistema Interdata 32 bits, CPM em uma máquina MITS Altair, e Focal em um PDP-15.

IBM 1130

O sistema IBM 1130 foi um sistema computacional popular que se concentrava nos mercados de baixo custo. Ele dependia de cartões perfurados e fitas de papel, mas também usava armazenamento em disco barato(1MB no total). O disco armazenava o sistema operacional e os dados.

O sistema 1130 foi introduzido em 1965, época em que a principal linguagem de programação era FORTRAN (cujo compilador, escrito apenas em linguagem assembly, era executado apenas com 4000 palavras de memória). Ele usava um espaço de endereço baseado em palavra de 15 bits, limitando a máquina a 64KB de memória central.

Um dos aspectos interessantes do sistema IBM 1130 era seu suporte para linguagens alternativas. Além de FORTRAN, o 1130 podia ser programado usando APL e RPG. Guy Steele, que tinha acesso a um 1130 na escola (secundária) latina de Boston, escreveu um interpretador LISP que ainda usamos hoje. Vamos começar pegando o interpretador LISP do site que mantém o 1130, ibm1130.org (consulte a Listagem 2). Observe que eu presumo que você está no subdiretório ./simh, onde instalou o SIMH.

Listagem 2. Instalando o kit de software do interpretador LISP
$ mkdir kits/ibm1130 ; cd kits/ibm1130
$ wget http://media.ibm1130.org/lisp.zip
$ unzip lisp.zip

Esta emulação esconde muitos dos detalhes de trabalhar com o SIMH, mas é uma interessante espiada histórica em uma utilização do 1130. Essa demonstração é uma operação em lote em que você especifica uma tarefa para o simulador, cuja saída é então emitida para um arquivo de lista. Sua tarefa é um uso muito simples do interpretador LISP (que você pode ver na saída). A Listagem 3 fornece a sessão em lote.

Listagem 3. Usando o interpretador LISP com o simulador do IBM 1130
$ ../../BIN/ibm1130 job lisptest

IBM 1130 simulator V3.8-1
PRT: creating new file
Loaded DMS V2M12 cold start card

Wait, IAR: 0000002A (4c80 BSC  I  ,0028   )
sim> quit
Goodbye
$ more lisptest.lst

PAGE   1

// JOB    1234

LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
  0000        1234        1234        0000

V2 M12   ACTUAL 32K  CONFIG 32K
^L
PAGE   1

// JOB

LOG DRIVE   CART SPEC   CART AVAIL  PHY DRIVE
  0000        1234        1234        0000

V2 M12   ACTUAL 32K  CONFIG 32K

// XEQ LISP

***** 1130 LISP 1.6 ***** BOSTON LATIN SCHOOL ***** LITHP ITH LITHTENING...


(SETQQ A (X Y Z))

(X Y Z)


(CAR A)

X


(CDR A)

(Y Z)


(PLUS 1 2 3)

6(QUIT)

***** 1130 LISP 1.6 ***** END OF RUN ***** THO LONG, COME AGAIN THOON
$

Na Listagem 3, você inicia o simulador do IBM 1130 e especifica uma tarefa para executar. Ocultamente, o código configura o simulador para o disco (onde ele carrega o interpretador LISP), o leitor de cartão (onde ele lê a tarefa) e a impressora (onde ele emite a saída). Sua tarefa aparece na Listagem 4 (que é lisptest.job no kit de software). Você pode encontrar a saída da tarefa no mesmo subdiretório que o nome da tarefa com o sufixo .lst .

Listagem 4. O arquivo lisptest.job
// JOB
// XEQ LISP
(SETQQ A (X Y Z))
(CAR A)
(CDR A)
(PLUS 1 2 3)
(QUIT)

IBM1130.org desenvolveu e mantém o kit de software do IBM 1130. Neste site, também é possível encontrar um deck APL (além do FORTRAN e RPG).

Interdata 32 bits com UNIX V6

A Interdata desenvolveu um conjunto de minicomputadores de 16 e 32 bits em 1966 (em 1973 se tornou parte da Perkin-Elmer). O Interdata-7, introduzido em 1974, foi um dos primeiros computadores de 32 bits. A arquitetura para o Interdata era baseada livremente na arquitetura do mainframe IBM System/360. Este exemplo observa com um pouco mais de profundidade como essa máquina é criada da perspectiva do simulador (configurando opções através do simulador).

Na Listagem 5, você faz download da imagem UNIX versão 6 e a extrai em um subdiretório em kits. Quando extrai o download, você inicia o simulador Interdata e começa a configuração. Primeiro você ativa o terminal de console (TTP) e associa o controlador de linha assíncrono programável (PAS) e controlador de fita magnética (MT) para evitar conflitos de número de dispositivos.

Seu dispositivo de inicialização é o controlador de disco de cartucho (DP), que você associa ao arquivo externo do kit de software (iu6_dp0.dsk). Com o disco de inicialização definido, você agora pode inicializar o disco, o que resulta na inicialização da imagem UNIX V6. O Interdata foi uma das primeiras conversões do UNIX para um sistema não PDP.

Listagem 5. Simulando o sistema Interdata 32b com UNIX
$ mkdir kits/id_unix_v6 ; cd kits/id_unix_v6
$ wget http://simh.trailing-edge.com/kits/iu6swre.zip
$ unzip iu6swre.zip
$ ../../BIN/id32

Interdata 32b simulator V3.8-1
sim> set ttp ena
sim> set pas dev=12
sim> set mt dev=85
sim> att -e dp0 iu6_dp0.dsk
sim> boot dp0
?unix
Memory = 182.50 K

login: root
You have mail.
# ls -la
total 361
drwxr-xr-x  9 root      272 Jun  4 00:16 .
drwxr-xr-x  9 root      272 Jun  4 00:16 ..
drwxr-xr-x  2 root     1104 Nov 14  1978 bin
drwxr-xr-x  2 root      784 Jun  4 01:07 dev
drwxr-xr-x  2 root      528 Nov 14  1978 etc
drwxr-xr-x  2 root      240 Jun  3 21:44 lib
-rw-r--r--  1 root      552 Jun  3 20:48 mdl
drwxr-x---  2 root       32 Aug  2  1978 mnt
drwxrwxrwx  2 root      144 Jun  4 15:38 tmp
-rw-r--r--  1 root      424 Jun  4 00:27 tpboot
-rw-r--r--  1 root      568 Jun  3 20:48 tuboot
-rw-r--r--  1 root      728 Jun  3 20:48 uboot
-rw-r-----  1 root    52272 Jun  3 23:56 unix
-rwxrwxrwx  1 root    59236 Jun  4 01:21 unix.oxon
-rwxrwxrwx  1 rm      60852 Jun  4 01:44 unix.sydney
drwxr-xr-x 14 root      240 Jun  4 15:43 usr
#

Como mostra a Listagem 5, depois que o sistema se inicializa, você pode interagir com ele de uma forma similar aos sistemas UNIX modernos.

PDP-15 com FOCAL

O último sistema de 18 bits da DEC foi o PDP-15, introduzido em 1969. O PDP-15 foi implementado com circuitos integrados de TTL, diferente dos PDPs anteriores, que eram desenvolvidos com transistores discretos. O PDP-15 era compatível o PDP-9 anterior e incluía vários recursos avançados, incluindo proteção de memória e pontos flutuantes.

Apesar do PDP-15 oferecer suporte para uma variedade de sistemas operacionais, um uso interessante desta máquina é com a linguagem formula calculator (FOCAL). A FOCAL foi escrita originalmente para o PDP-8 por Richard Merrill e podia ser executada em um sistema com apenas 3000 palavras de memória (12 bits), com 1000 palavras para o programa do usuário. A FOCAL não exigia um sistema operacional e era um ambiente completo por si só. O sistema FOCAL é fornecido como uma imagem de fita de papel usada no formato de carregador binário (consulte a Listagem 6). Após iniciar o simulador do PDP-15, você carrega a imagem focal15 e emite uma execução para iniciar. Você é recebido pelo prompt do FOCAL15, onde você insere um pequeno programa de FOCAL e o inicia com o comando GO .

Listagem 6. Demonstrando o FOCAL em um PDP-15
$ ../../BIN/pdp15 

PDP-15 simulator V3.8-1
sim> load focal15.bin
sim> run

FOCAL15 V6B
*01.10 ASK "WHAT YEAR WERE YOU BORN?", BORN
*01.20 ASK "WHAT YEAR IS IT?", YEAR
*01.30 SET AGE=YEAR-BORN
*01.40 TYPE "YOU ARE ", AGE-1, " OR ", AGE, " YEARS OLD.", !
*GO
WHAT YEAR WERE YOU BORN?:1964
WHAT YEAR IS IT?:2010
YOU ARE    45.0000 OR    46.0000 YEARS OLD.
*
<Ctrl-E>
Simulation stopped, PC: 000221 (SPA)
sim> show dev
PDP-15 simulator configuration

CPU, idle disabled
CLK, 60Hz, devno=00
FPP
PTR, devno=01
PTP, devno=02
TTI, devno=03
TTO, devno=04
LP9, disabled
LPT, devno=65-66
RF, devno=70-72
RP, devno=63-64, 8 units
DT, devno=75-76, 8 units
MT, devno=73, 8 units
TTIX, lines=1, devno=40-47
TTOX
sim>

Também é mostrada aqui uma interação com o simulador. Pressione Control-E para sair da simulação e retornar para o console da estrutura do simulador. Nesta altura, é possível solicitar que os dispositivos sejam enumerados, o que mostra os vários dispositivos simulados para este PDHP-15 (processador de ponto flutuante, leitor de fita de papel, perfurador de fita de papel e assim por diante.

Este exemplo demonstra outro aspecto do SIMH, em que sua imagem não requer nenhum sistema operacional e é interativo (diferindo da execução em lote anterior em um sistema IBM 1130).

MITS Altair com CP/M

A última demonstração do SIMH simula o primeiro minicomputador do mundo, o MITS Altair. O Altair, projetado em 1975, era baseado em um processador Intel ® 8080, com apenas 256 bytes de memória. Apesar das suas capacidades mínimas, este modelo vendeu milhares de unidades no primeiro mês. Seu barramento, que se tornou o S-100, era extensível o suficiente para que vários fornecedores desenvolvessem cartões para o sistema de 18 slots (como cartões seriais e controladores de disco), tornando-o um computador útil.

Apesar de terem existido sistemas computacionais projetados antes do Altair (alguns dos quais também eram baseados no processador Intel 8008), o Altair era poderoso o suficiente para ser útil (por exemplo, para executar BASIC, uma das principais linguagens que estavam sendo ensinadas na época). Ele é amplamente reconhecido como a centelha que iniciou a revolução do computador pessoal.

Dentro do SIMH, é possível executar um Altair baseado no Intel 8080 padrão ou sistemas Altair derivativos que usam o processador Zilog Z80 ou Intel 8086. O Altair simulado também oferece capacidades adicionais, como banked memory. O kit de software para o Altair é uma das maneiras mais simples de executar o Control Program for Microcomputers (CP/M). No exemplo mostrado na Listagem 7, você inicia o simulador do Altair (neste caso, a variante de processador Z80) e, em seguida, usa o arquivo de script cpm2 para inicializar o CP/M. Esse script usa dois discos (um disco de sistema operacional e um disco de aplicativo) para criar o ambiente CP/M. Com o ambiente CP/M criado, você verifica os arquivos disponíveis e então executa o Microsoft basic para interpretar o programa Eliza.

Listagem 7. Demonstrando o CP/M no MITS Altair
$ mkdir cpm ; cd cpm
$ wget http://simh.trailing-edge.com/kits/psaltair.zip
$ unzip psaltair.zip
$ ../../../BIN/altairz80 

Altair 8800 (Z80) simulator V3.8-1
sim> do cpm2

62K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.17, 28-Apr-02)
A>dir
A: PIP      COM : LS       COM : XSUB     COM : STAT     COM
A: GO       COM : RSETSIMH MAC : SYSCOPY  COM : SHOWSEC  COM
A: DIF      COM : R        COM : W        COM : L80      COM
A: M80      COM : WM       HLP : WM       COM : CBIOSX   MAC
A: FORMAT   COM : SYSCPM2  SUB : DDTZ     COM : DSKBOOT  MAC
A: TSTART   COM : ED       COM : DDT      COM : EX8080   MAC
A: LOAD     COM : ASM      COM : LU       COM : MBASIC   COM
A: ELIZA    BAS : DUMP     COM : CREF80   COM : EXZ80    MAC
A: UNERA    COM : BOOT     COM : OTHELLO  COM : WORM     COM
A: LADDER   DAT : LADDER   COM : ZSID     COM : ZTRAN4   COM
A: SURVEY   MAC : CPMBOOT  COM : TSHOW    MAC : TSTART   MAC
A: TSTOP    MAC : UNERA    MAC : MOVER    MAC : EX8080   SUB
A: EXZ80    SUB : CCP      MAC : DSKBOOT  COM : USQ      COM
A: MC       SUB : MCC      SUB : BDOS     MAC : RSETSIMH COM
A: TSHOW    COM : TSTOP    COM : UNCR     COM : SURVEY   COM
A: EX8080   COM : EXZ80    COM : COPY     COM : SID      COM
A: BOOT     MAC : BOOTGEN  COM : LIB80    COM : DO       COM
A>
A>mbasic eliza.bas
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32824 Bytes free

               **************************
                         ELIZA
                   CREATIVE COMPUTING
                 MORRISTOWN, NEW JERSEY

                  ADAPTED FOR IBM PC BY
                   PATRICIA DANIELSON AND PAUL HASHFIELD
                    BE SURE THAT THE CAPS LOCK IS ON

               PLEASE DON'T USE COMMAS OR PERIODS IN YOUR INPUTS

               *************************



HI! I'M ELIZA. WHAT'S YOUR PROBLEM?
? I'M IN LOVE WITH RETROCOMPUTING
DID YOU COME TO ME BECAUSE YOU ARE IN LOVE WITH RETROCOMPUTING   
?

Como você pode ver na listagem, o disco contém um grande número de utilitários úteis, como um assembler do CP/M (ASM.COM), um editor de linha (ED.COM), um par de depuradores (SID.COM para o processador Intel 8080 e ZID.COM para o processador Z80) e até mesmo um editor de tela (WM.COM).


Outros projetos de emulação

Apesar de o SIMH ser um grande simulador para sistemas computacionais mais antigos, ele é apenas um em meio a uma família em crescimento de simuladores e emuladores. Exemplos de outros emuladores de interesse histórico incluem o Hercules, que emula os computadores mainframe da IBM (como o System/370, IBM System/390® e IBM zSeries®) em hardware de commodity.

Alguns emuladores se concentram não em reviver unidades de hardware históricas, mas em trazer videogames à vida para os quais pode não existir mais hardware. Um dos mais interessantes é o Multi-Arcade Machine Emulator (MAME). Esse emulador oferece emulação de sistema para o hardware de um grande número de videogames antigos (incluindo máquinas de fliperama) e, portanto, oferece uma emulação de processadores antigos e dos ambientes de hardware que eram desenvolvidos em torno deles (barramentos de dados, dispositivos de armazenamento, hardware de áudio e vídeo e assim por diante). Hoje, o projeto NAME oferece emulação para mais de 4500 jogos únicos. MAME também é o núcleo do Multi-Emulator-Super-System (MESS), que emula quase 500 consoles, computadores e calculadoras únicos.

Também é possível encontrar simuladores para hardware especializado, como o Apollo Guidance Computer (AGC) usado nas missões lunares Apollo. Uma iniciativa parecida simula o launch vehicle digital computer (LVDC) que gerenciava o disparo dos motores do foguete durante a ascensão à órbita. Apesar de o LVDC ter sido um computador projetado a partir de transistores, o AGC foi o primeiro computador projetado com circuitos integrados. Ambos tinham conjuntos de instruções personalizados, com programas projetados em seu código de máquina bruto.

Consulte Recursos para obter mais informações sobre esses e outros emuladores.


Indo além

Há algo de muito fascinante na retrocomputação. Tudo o que temos hoje é derivado dos sistemas computacionais mais antigos, muitos dos quais não possuem mais hardware em condição de uso. Felizmente, o projeto SIMH traz esse hardware (e sistemas operacionais e aplicativos) de volta à vida para que possam ser desfrutados por uma nova geração.

Recursos

Aprender

  • As máquinas "Z" de Konrad Zuse são bem documentadas na Universidade Técnica de Berlim. Você pode ler mais sobre o Z3, Z4 e a primeira linguagem, chamada Plankalkül.
  • O artigo da Wikipédia sobre a evolução do computador apresenta uma história fascinante da corrida silenciosa para desenvolver o computador e os vários esquemas que foram definidos (das primeiras máquinas Z de Konrad Zuse até os computadores secretos British Colossus usados para quebrar os códigos alemães e outros).
  • Até o ano de 2010, o inventor do primeiro computador digital a automatizar a computação tem sido um campo de batalha. Apesar do fato de que a maioria de nós pensa no ENIAC e na Universidade da Pensilvânia, houve trabalhos anteriores que são poucos mencionados. No fim da década de 1930, John Atanasoff e Clifford Berry começaram a desenvolver o primeiro computador, agora chamado de ABC.. Um novo livro foi publicado que aborda essa história antiga, de Jane Smiley, que recebeu atenção recentemente neste artigo da Wired: Pulitzer Prize-Winning Novelist Tells the Tale of the World's First Computer. Além de abordar parte da história, Smiley revela parte do drama político, psicológico e corporativo por trás dessa invenção.
  • Em 1971, a Intel lançou seu primeiro microprocessador disponível comercialmente em um chip chamado 4004. O processador 4004 era um CPU de 4 bits que podia executar 92.000 instruções por segundo. Seu sucessor foi o processador 4040 (lançado em 1974), que tinha um conjunto de instruções expandido, memória de programa, conjunto de registro e pilha.
  • O Projeto de Simulação da História do Computador implementa simuladores para um grande número de sistemas computacionais. É possível ver a lista de mais de 30 sistemas significativos no Web site do projeto.
  • No documento Writing a Simulator for the SIMH System, é possível saber mais sobre a arquitetura do simulador, além de alguns detalhes das várias máquinas simuladas. Também é possível ler esta apresentação de Bob Supnik chamada SIMH: Forward into the Past para obter informações adicionais, incluindo como os sistemas históricos são compreendidos para simulação.
  • Peter Schorn mantém o emulador de Altair para SIMH e um Web site que tem uma enorme quantidade de informações e fontes para o Altair. Em seu site, é possível encontrar uma longa lista de sistemas operacionais para o Altair, linguagens de programação alternativas e outros aplicativos.
  • Hercules é um emulador de software livre para diversos mainframes da IBM (incluindo o System/370, ESA/390 e z/Architecture). O Hercules pode ser usado em uma variedade de sistemas operacionais hosts, incluindo Linux® e FreeBSD.
  • Este artigo discutiu outros emuladores que se concentram em eletrônicos especializados, como o AGC. O Virtual AGC (e outros emuladores relacionados) preservam outro aspecto interessante dos sistemas computacionais. É possível saber mais sobre o AGC e sua história em Journey to the Moon: The History of the Apollo Guidance Computer.
  • Emuladores de jogos são uma área interessante de desenvolvimento. Apesar dos emuladores estarem livremente disponíveis, os ROMs que fornecem os jogos ainda são de propriedade dos donos da licença. Certifique-se de verificar as licenças relevantes antes de fazer download ou usar ROMs obtidos por download. Em muitos casos, esses jogos mais velhos podem ser comprados para serem executados em hardware mais novo. O Multi-Arcade Machine Emulator é um dos projetos mais interessantes, assim como o Multi-Emulator Super-System (que usa NAME em seu núcleo). Também é possível encontrar uma lista de emuladores de consoles de videogame e uma lista mais longa de emuladores na Wikipédia.
  • O SIMH User's Guide apresenta uma grande quantidade de informações sobre a implementação do SIMH, assim como os comandos que podem ser usados na estrutura do simulador. Também é possível encontrar mais informações sobre outros projetos de emulador (incluindo restauração de sistemas computacionais) nos Links de História do Computador e Simulação.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=648504
ArticleTitle=Emulação e história da computação
publish-date=04192011