Casa > O > O Que É Um Emulador De Computador?

O que é um emulador de computador?

Parece haver muita confusão nas respostas, então permita-me esclarecer uma importante distinção:

Existem dois tipos de soluções que são frequentemente confundidas: emulação e simulação.

Um emulador é projetado para imitar o software/hardware original no nível "face" - ele pretende se comportar da mesma maneira, mas os processos subjacentes que recriam o comportamento nem sempre são semelhantes. O objetivo de um emulador é obter um resultado conhecido o mais rápido possível. Os emuladores de consoles de jogos chegam a uma solução pré-definida usando as ferramentas que eles têm à sua disposição. Eles não podem realmente executar o código do console nativo, mas eles fazem o jogo pensar que eles fazem.

Ao desenhar um emulador, você começa a partir do resultado e vai para trás até chegar a uma solução que o produz (qualquer que seja a solução).

Por exemplo, para emular algo, se o dispositivo original chegou a "4" executando "8 / 2", eu na verdade não preciso fazer o mesmo, porque eu sei que "2 + 2" será mais rápido - o que importa é o resultado, que é "4". Eu realmente não me importo com o processo original, porque eu quero velocidade e resultados, e "2 + 2" é mais rápido e produz um resultado final decentemente preciso.

Faces de personagens de jogos de computador são todas emulações que, embora nem sempre precisas, fornecem resultados decentes com desempenho.

Um simulador, por outro lado, é projetado para replicar os passos originais para atingir o resultado, mesmo que fazê-lo funcionar dessa forma torne-o incrivelmente lento. O objetivo é utilizar exatamente as mesmas regras que o original utilizaria, e dar exatamente os mesmos passos que o original daria, para chegar a uma resposta que o original chegaria. Simuladores são modelos detalhados de coisas reais que replicam o comportamento em virtude de replicar a maquinaria, de uma forma ou de outra.

Ao projetar um simulador, você começa a partir das premissas originais e avança para encontrar o resultado final.

Por exemplo, para fazer um simulador eu realmente precisaria replicar o comportamento "8 / 2" se eu quiser que meu modelo seja preciso. Se eu criar o meu modelo de forma precisa e completa, os resultados corretos seguirão em virtude, mesmo que lentamente.

Muito software de pesquisa científica (ex. Folding@Home) é simulação por projeto. Estes são frequentemente lentos, mas produzem resultados precisos sobre os quais a ciência pode construir.

Sim, eu emularia um computador. Na verdade, eu faço frequentemente. A principal razão é: porque existe um monte de software útil/interessante que foi escrito para dispositivos/tecnologias que não existem mais, ou não são facilmente acessíveis (jogos DOS, por exemplo).

Por vezes, o código original para algo pode ser perdido, ou pode ser impossível de obter de outra forma (esp. como é o caso em disputas de direitos autorais) - pode ser simplesmente mais fácil replicar o comportamento resultante do sistema no qual o software deveria rodar, em vez de lutar uma longa (e muitas vezes impossível de vencer) batalha legal para obter o código para que ele possa ser reescrito.

Por vezes, software útil existe apenas em uma plataforma específica à qual você pode não ter acesso - no trabalho, eu trabalho em Apple Macs, que até muito recentemente nem mesmo permitia que você executasse o Windows. Mesmo assim, não vou fazer dual-boot no Mac só porque precisamos usar um ou dois programas exclusivos para Windows. Nós usamos algo chamado "máquina virtual" para rodar o Windows em cima do MacOS para esse fim.

Emulação também é ótimo quando você está projetando um software destinado a uma plataforma de hardware diferente da sua (por exemplo, para telefones celulares) - ele fornecerá pistas inestimáveis sobre como o sistema alvo se comportará.

Emulação é, no entanto, inútil quando se está desenhando um novo hardware, porque você precisa criar um modelo realista desse hardware (ou seja, uma simulação) - você precisa encontrar suas falhas e fraquezas, e você não pode fazer isso se o seu modelo não se comportar como a coisa real - quero dizer, você já sabe qual deve ser o resultado, mas você precisa encontrar se esse resultado será realmente produzido pelo seu dispositivo.

De Boutis

Quais são algumas das aplicações potenciais para aplicações de fala para texto? :: Quais são os melhores jogos Steam para 2GB de RAM?