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.
Examinemos primeiro a arquitetura geral do SIMH e depois exploremos alguns exemplos de uso do SIMH para inicializar unidades de hardware simuladas mais antigas.
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
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.
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.
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).
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.
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.
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.
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).
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.
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).
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).
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.
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.
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
- Confira os Blogs do developerWorks
e participe da
comunidade do developerWorks.

M. 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.