Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference between emulation and simulation? [duplicate]

Possible Duplicate:
Simulator or Emulator? What is the difference?

In simple understandable terms, what is the difference between the two terms?

[I have already looked at this, this and this]

like image 316
Lazer Avatar asked Feb 01 '10 04:02

Lazer


People also ask

What is the difference between simulation and emulation?

Simulation. A simulator creates an environment that mimics the behaviors, variables, and configurations that exist in an app's production environment. On the other hand, an emulator mimics all of the hardware and software features for the production environment of a real device.

What are the two types of emulation?

High-level emulation. In high-level emulation, the PC provides software hooks so the game can run on its hardware. High-level emulation (HLE) takes a different approach to simulating a system.

What is the difference between simulation emulation and virtualization?

The main difference between them is that emulation is the computer program's ability in an electronic device to emulate the behavior of another program or device. On the other hand, virtualization is the process of creating a virtual instance of computer hardware platforms.

What is the difference between stimulator and simulator?

Although the nouns stimulation and simulation look and sound similar, they have two very different meanings. The main difference between stimulation and simulation is that stimulation refers to arousing an organism to act while a simulation is an imitation of something.


2 Answers

(Using as an example your first link)

You want to duplicate the behavior of an old HP calculator, there are two options:

  1. You write new program that draws the calculator's display and keys, and when the user clicks on the keys, your programs does what the old calculator did. This is a Simulator

  2. You get a dump of the calculator's firmware, then write a program that loads the firmware and interprets it the same way the microprocessor in the calculator did. This is an Emulator

The Simulator tries to duplicate the behavior of the device.
The Emulator tries to duplicate the inner workings of the device.

like image 177
Carlos Gutiérrez Avatar answered Oct 10 '22 09:10

Carlos Gutiérrez


This is a hard question to answer definitively because the terms and often misused or confused.

Often, an emulator is a complete re-implementation of a particular device or platform. The emulator acts exactly like the real device would. For example, a NES emulator implements the CPU, the sound chip, the video output, the controller signals, etc. The unmodified code from a NES castridge can be dumped and then the resulting image can be loaded into our emulator and played.

A simulator is a partial implementation of a device/platform, it does just enough for its own purposes. For example, the iPhone Simulator runs an "iPhone app" that has been specifically compiled to target x86 and the Cocoa API rather than the real device's ARM CPU and Cocoa Touch API. However, the binary that we run in the simulator would not work on the real device.

like image 29
Coxy Avatar answered Oct 10 '22 09:10

Coxy