Take the 2-minute tour ×

The words clearly have a similar meaning. But I think there must be a subtle difference.

e.g. You get a "flight simulator", but an "ipad emulator".

Both are pieces of software for replicating the behaviour of something. So why are the words not interchangable?

share|improve this question
See this answer on stackoverflow: stackoverflow.com/a/1584701/988769 –  Kreiri Apr 19 '13 at 9:23
@Kreiri Good link. I don't think I should delete the question though. I think it should really be closed as a duplicate of one on Stackoverflow. Can we do that? –  Urbycoz Apr 19 '13 at 9:41
@Kreiri As it's not possible to close as a duplicate of a question on another site, but it is possible to reproduce SO content elsewhere [with the correct linking attribution], why not produce an answer here using the best parts of that answer -- perhaps slanting it to an ELU perspective rather than an SO perspective, of course. –  Andrew Leach Apr 19 '13 at 11:25

3 Answers 3

up vote 1 down vote accepted

The word "emulator" was coined in 1963 at IBM[17] during development of the NPL (IBM 360) product line, using a "new combination of software, microcode, and hardware".[18] They discovered that using microcode hardware instead of software simulation, to execute programs written for earlier IBM computers, dramatically increased simulation speed. Earlier in 1957, IBM provided the IBM 709 computer with an interpreter program (software) to execute legacy programs written for the IBM 704 to run on the IBM 709 and later on the IBM 7090[19] In 1963, when microcode was first used to speed up this simulation process, IBM engineers coined the term "emulator" to describe the concept.

It has recently become common to use the word "emulate" in the context of software. However, before 1980, "emulation" referred only to emulation with a hardware or microcode assist, while "simulation" referred to pure software emulation.[20] For example, a computer specially built for running programs designed for another architecture is an emulator. In contrast, a simulator could be a program which runs on a PC, so that old Atari games can be simulated on it. Purists continue to insist on this distinction, but currently the term "emulation" often means the complete imitation of a machine executing binary code while "simulation" often refers to Computer simulation, where a computer program is used to simulate an abstract model. Computer simulation is used in virtually every scientific and engineering domain and Computer Science is no exception, with several projects simulating abstract models of computer systems, such as Network simulation.

http://en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation http://stackoverflow.com/questions/2174638/whats-the-difference-between-emulation-and-simulation

share|improve this answer

If you think about it, with a flight simulator you aren't really flying, but with an iPad emulator you are enabling doing anything you could do on a real iPad (except probably for difference in speed and looks etc.)

People tend to emulate other people, animals or things in the natural world. They might also simulate emotions, displaying them without actually having them. Here we are talking about copying what other people (etc.) do.

Machines are used to simulate things that people, animals or other machines do. Machines are used to emulate other machines (only and in their entirety).

So note the real/pretend distinction, the people/machine factors and the noun/verb aspects.

share|improve this answer
My preferred answer. This is not SO - I want to know the meaning and distinction of the words themselves in general, rather than specifically in an IT context. –  Sc0ttyD Aug 20 '14 at 17:49
I agree, simulate is to do in the abstract, emulation is the re-creation of some functionality. You could run a simulation on an emulator! –  jiggunjer Jul 15 at 18:51

It's always been my understanding that software emulation was essentially making a virtual re-creation of some hardware via knowledge of its electronic components and the modeling and simulation of those components as a circuit in a virtual enviornment of some sort.

So a software emulator of some hardware is really the software simulation of the electrical components and their connections, made to run in real time in a virtual enviornment. A simulation is an attempt to model something by quantifying its observable properties as they vary over time, recording these quantifications then projecting their pattern into the future. An emulation is a simulation of something about which all variables are completely known allowing the modeling of a complete virtual piece of hardware.

I would consider what are currently being called virtualizations as emulations. Emulation enviornments, rather.

Anyways, that's just how I always understood it; it was interesting reading about its origins @ IBM...

share|improve this answer

Your Answer


