Porém, surpreendentemente, fazer a lista foi fácil! Tem cinco emuladores que se destacam, pela enorme influência que tiveram em tudo que se seguiu. Em ordem cronológica reversa:
VMware (2001)
No fim da década de 90, quando se falava em emuladores, imediamente as pessoas pensavam em videogames. O VMware trouxe de volta os emuladores ao mundo corporativo. As aplicações são inúmeras: desenvolvedores, por exemplo, podem programar no Linux, e testar a aplicação num Windows emulado. Em datacenters o impacto é ainda maior. Usando a versão ESX, os administradores de datacenter podem usar uma mesma imagem em todos os servidores, mesmo que eles sejam heterogêneos; e dá até pra trocar uma imagem de um servidor para outro enquanto ela está rodando, com downtime mínimo.O truque do VMware pra conseguir desempenho é que a virtualização dele tenta evitar a emulação tanto quanto possível. Em algumas situações, como código rodando em user space, o VMware roda o código diretamente na CPU. Ele só usa emulação nos trechos críticos, como código rodando em kernel space, ou código acessando periféricos que foram virtualizados.
bleem (1999)
Se o VMware mudou a percepção que o povo da época tinha dos emuladores, o bleem foi igualmente importante, ao mudar a percepção do underground para o mainstream. Até então, emuladores de videogame eram um produto de nicho, conhecidos só por alguns poucos viciados em internet. O bleem, que na época era o melhor emulador de Playstation, levou os emuladores para as lojas. Hoje nós temos um mercado construído em cima da emulação de jogos, como prova o sucesso do Virtual Console no Wii, e quem começou esse mercado foi o bleem.Mas pra mim o bleem tem um significado mais especial. Naquela época em que fazíamos emuladores, ninguém tinha muita certeza se nós estávamos dentro da legalidade ou não. Quando o bleem começou a bombar, a Sony processou os criadores do bleem, e depois de uma ferrenha briga judicial, o bleem saiu vitorioso. Eu passei a dormir mais tranquilo depois disso :)
O emulador de 8080 do Paul Allen (1975)
O Bill Gates sempre foi bom de blefe. Quando ele descobriu que a MITS estava fazendo o Altair 8800, ele entrou em contato com os fabricantes para oferecer um interpretador BASIC. Os fabricantes se empolgaram e marcaram uma reunião pra fazer uma demonstração. O problema é que não havia demo, foi tudo um blefe do Bill! Com a reunião marcada, ele e o sócio Paul Allen tiveram que correr pra preparar um demo a tempo. O blefe era tão vazio, que eles nem tinham um Altair pra poder programar.Como criar um interpretador para o Altair, sem ter um Altair? A solução que eles encontraram foi a emulação. Enquanto o Bill Gates escrevia o interpretador, o Paul Allen escreveu um emulador de 8080, a CPU usada no Altair. Como eles também não tinham computador pra rodar o emulador, testavam o software deles no PDP-10 da Harvard, a faculdade onde estudavam. No final, eles acabaram a tempo, e criaram a Microsoft para vender aquele interpretador. Poucos emuladores podem ser tão influentes assim :)
IBM System/360 (1964)
Tem muitas coisas que são naturais para nós, mas que eram o ápice da inovação no passado. Upgrades, por exemplo. Hoje em dia, se o seu programa está rodando muito lento, você pode comprar um computador mais novo e o programa rodará mais rápido. Mas antigamente isso não era verdade: se você comprasse um computador novo, iria precisar de um software novo também. Não existia portabilidade.A IBM mudou isso com o IBM System/360, uma família de computadores projetada com a compatibilidade em mente. Você poderia comprar um System/360 pequeno, e se precisasse de mais processamento, era só comprar um modelo maior, rodando o mesmo software. E se não bastasse isso, a IBM ainda garantia compatibilidade com modelos anteriores ao System/360! O segredo, é claro, era emulação: a IBM criou emuladores de seus sistemas mais antigos e populares. Não por acaso, o System/360 foi o computador mais vendido de sua época.
A máquina universal de Turing (1936)
No começo do século XX, os matemáticos estavam procurando a solução do Entscheidungsproblem: existe um processo capaz de decidir se uma expressão matemática é verdadeira ou não? Na época ainda não existia o conceito de algoritmo, o Turing teve que partir do zero. Ele construiu um modelo computacional, a máquina de Turing, e a usou pra chegar na decepcionante conclusão de que o tal algoritmo de decisão não existe. Por outro lado, ele concluiu que, para todos os algoritmos que existem, também existe uma máquina de Turing capaz de executá-lo (essa é a tese de Church-Turing).Mas o Turing foi além. Baseado no trabalho do Gödel, ele concebeu uma máquina de Turing mais poderosa, que era capaz de rodar qualquer algoritmo que outra máquina de Turing conseguisse. O truque, como vocês devem ter deduzido, é usar emulação. As máquinas universais de Turing não apenas são o modelo matemático que permite a existência de emuladores, como também de toda a computação.


6 comentários:
outra coisa legal de se fazer, mas q não chega a ser uma emulação, é consoles antigos de video games em VHDL.
Porém alguns autores recusam-se a colaborar com os entusiastas! =(
Too bad...
Excelente post. Mas é importante observar que a vitória da Bleem Company foi a típica "vitória de Pirro": eles ganharam, mas o processo aparentemente tirou os caras do mercado. http://pt.wikipedia.org/wiki/Vit%C3%B3ria_P%C3%ADrrica
Caramba, de todos os emuladores que vc citou eu só conhecia o Bleem! mas foi legal ver que nem só de emulador de videogame vive o homem!
Uma coisa bem interessante sobre a história de emulador de Altair é que quando o Allen e o Bill Gates foram demonstrar o BASIC para a MITS, se deu conta que havia esquecido de fazer o bootstrap, isto é, o programa que carregava o BASIC para a memória do Altair (já que no emulador isso não era necessário). O Allen escreveu o bootstrap em assembly no próprio vôo, em papel perfurado, sem testes, e só pode relaxar quando viu o BASIC sendo carregado com sucesso para o Altair na demonstração para o MITS. :-)
Um que me surpreendeu muito foi o UltraHLE. Na época rodou bem no meu Celeron 300A com uma Voodoo 2 de 12Mb.
Ele causou um grande impacto pois conseguiu rodar um videogame poderoso naquele momento em um hardware quase que padrão na época, graças a utilização de recompilação dinâmica até antes nunca vista com tanta eficiência em um emulador.
Ainda me lembro dele como se fosse hoje... Ouvir "it's me, Mario!" no PC foi inacreditável.
O UltraHLE foi o Project 64? :-P
Me lembro que este me surpreendeu também, pois ele conseguiu emular muito rápido e muito bem os jogos do Ultra 64!
Até teve um lance que ele estava proibido de continuar... algo assim.
Postar um comentário