Simulator and Emulator

定义


仿真器(Emulator),又称仿真程序,在软件工程中指可以使计算机或者其他多媒体平台(掌上电脑,手机)能够运行其他平台上的程序,常被错误的称为模拟器。仿真器多用于电视游戏和街机,也有一些用于掌上电脑。仿真器一般需要ROM才能执行,ROM的最初来源是一些原平台的ROM芯片,通过一些手段将原程序拷贝下来(这个过程一般称之为“dump”)然后利用仿真器加载这些ROM来实现仿真过程。

模拟器(simulator),又称模拟程序,在计算机科学技术的软件工程中,是指完全基于主机程序并模拟了目标处理器的功能和指令系统的程序。而仿真器(emulator)具有更强大的硬件模仿功能。

构成


看起来很相似,实现方式差别很大。模拟器(simulator)主要是对接口的实现,而仿真器(Emulator)更关注对本体的实现。

Host可移植性


模拟器(simulator)的本体基本是由HOST系统实现的,如果移植到其他HOST上,所有功能相当于重新做成,可移植性差。相对于模拟器,仿真器的可移植性要好很多。

复杂度


用实现方式来举例

模拟器(simulator)

1
2
3
void targetFunc() {
similarFuncOnHost();
}

仿真器(Emulator)

1
2
3
4
5
6
7
8
9
void targetFunc()  {
targetMiddleWare() {
targetOsSystemCall() {
targetHwAccess() {
similarFunctionOnHost();
}
}
}
}
Author: jimmy367
Link: http://www.ohtudou.com/2017/06/22/simulator-and-emulator/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏