An emulator duplicates (provides an
emulation of) the functions of one system using a different system, so that the
second system behaves like (and appears to be) the first system. This focus on
exact reproduction of external behavior is in contrast to some other forms of
computer simulation, which can concern an abstract model of the system being
simulated
wiki中关于simulation的解释中提到:
A simulator may imitate only a few of
the operations and functions of the unit it simulates. Contrast with:
emulate
1965年的Communications of
ACM中有一篇论文叫"Emulation of Large
Systems",是一个叫Tucker的IBM工程师写的,他们用IBM360来emulate之前的IBM70xx系列机型,里面提到:
A new technique called emulation are
discussed ... An emulator is a package that includes both special hardware and a
complementary set of software. The package runs in the manner of an interpretive
routine simulator program but is about 5 or even 10 times as fast as a purely
software simulator
有一种流行的说法是,simulation是用软件实现,emulation要涉及到硬件实现的部分。这个区分很简单明了,在很多情况下也是适用的(包括上面举的p2p分发系统的例子)。但是这种说法只是对于大多数情况的一种归纳性解释,因此在某些情况下就无法区分二者了。比如,这种解释无法区分Operating
System Emulator和Operating System Simulator————这个时候二者都不涉及硬件,这是因为真实系统(Operating
System)本身就不涉及硬件。