`
gao_xianglong
  • 浏览: 467796 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Emulator and Virtual Machine

 
阅读更多

《Emulator and Virtual Machine》

 

原文出处:http://www.tuicool.com/m/articles/2EFJVf

模拟器是什么
Emulator,中文一般译为模拟器。但实际上这个翻译是错误的,准确的翻译是仿真器。仿真器与模拟器的区别在于:前者是用软件实现硬件的行为,而后者仅仅是使某一软件的运行和输出在不同平台上没有太大区别。举个例子,如果在某个街机上有一个游戏软件需要在PC平台运行,仿真需要做的是在PC平台上实现一个软件能正确的完成街机硬件的功能,从而使游戏软件可以不进行任何修改的在这个PC平台上实现的软件上运行;而模拟需要做的是修改该游戏的源代码,从而使得游戏可以在PC上编译运行,只要该戏的画面和输出与街机上没有太大区别就可以,也就是所谓的移植。

 

仿真器与虚拟机的区别
简单的说,仿真器和虚拟机(Virtual Machine)几乎没有区别,至少实现方式是类同的。两者都是将被仿真平台(比如某一街机)上的机器码转译成目标平台(比如PC)上的机器码。当然一般情况下不需要做到精确仿真,甚至更夸张的晶体管级别的仿真,只需要做到指令级别的CPU仿真以及保证时序正确就可以,当然也包括图像和声音处理。一些高级的主机并不需要精确的时序,但需要正确的实现该高级主机的BIOS调用,OS API,GPU指令(如果有的话),甚至驱动等等。

 

 

仿真器或虚拟机的实现方法
实现方法主要就是将被仿真平台的CPU指令转译成目标平台的CPU指令。最简单的就是Interpreter(解释器),主要方法就是边转译边执行指令。速度更快的实现方式为Dynamic Compilation(动态编译),主要方法是先转译再执行指令。动态编译也有许多类似的名称,如Dynamic Recompilation(动态重编译,简写为Dynarec),Dynamic Binary Translation(动态二进制转译),Just-In-Time Compilation(即时编译)等等。
另一种追求速度的实现方式是高级仿真(high-level emulation,简写为HLE)。其实现方式是利用平台的相似性,如被仿真平台和PC都使用OpenGL作为图形API,或者被仿真平台的图形API实现和OpenGL API很类似,那么就可以简单的利用OpenGL API来替换被仿真平台的图形API。这种方式会较大的提高运行速度,但也降低了精确度。
 

分享到:
评论

相关推荐

    Virtual Machine Network Driver for Microsoft Device Emulator

    标题中的“Virtual Machine Network Driver for Microsoft Device Emulator”是指用于微软设备模拟器的虚拟机网络驱动程序,这是一个关键组件,允许在虚拟环境中模拟真实的网络环境,以便开发者可以在虚拟机上测试和...

    f/VM (Free Virtual Machine)-开源

    **f/VM (Free Virtual Machine) - 开源虚拟机技术详解** f/VM,全称为Free Virtual Machine,是一个受到IBM z/VM系统理念启发的开源虚拟化解决方案。它旨在提供一个安全、高效且可靠的服务器平台,特别强调了安全性...

    虚拟网卡驱动程序官方原版.zip

    Virtual Machine Network Driver for Microsoft Device Emulator.msi微软Windows Mobile设备模拟器用的虚拟网卡驱动当你使用wm6.5来上网时,会需要安装这个虚拟的网卡驱动才能使用,这个是官方原始版本,很...

    虚拟网卡驱动VirtualMachineNetworkDriver

    在“Virtual Machine Network Driver for Microsoft Device Emulator.msi”这个文件中,我们可以推断这是微软设备模拟器(Microsoft Device Emulator,MDE)专用的虚拟网卡驱动。MDE是一种用于测试和调试Windows ...

    Machine Network Driver for Microsoft Device Emulator (netsvwrap.msi)

    标题中的“Machine Network Driver for Microsoft Device Emulator (netsvwrap.msi)”指的是一个特定的驱动程序,用于在Microsoft Device Emulator中模拟网络功能。这个驱动程序的安装文件名为“netsvwrap.msi”,它...

    KVM的源代码

    **KVM(Kernel-based Virtual Machine)** 是一种在Linux内核中实现的全虚拟化解决方案,它允许Linux系统作为宿主机运行多个独立的虚拟机。KVM充分利用了硬件辅助虚拟化技术,如Intel的VT-x和AMD的V,提供高效且高...

    Windows CE Device Emulator Launcher

    **Virtual Machine Network Driver for Microsoft Device Emulator.rar** 文件包含的是微软设备模拟器的虚拟网络驱动程序。这个驱动允许模拟器中的Windows CE设备连接到网络,进行网络通信测试,例如HTTP请求、TCP/...

    build-your-own-x::nerd_face:自行构建(在此处插入技术)

    构建自己的Emulator / Virtual Machine [视频] 建立自己的Front-end Framework / Library [视频] [视频] [视频] [视频] 建立自己的Game [视频] [视频] [video] [视频] [视频] [视频] [视频] [视频] ...

    WM_6.5模拟器使用教程

    1. 安装 Virtual Machine Network Driver(虚拟网卡驱动)for Device Emulator。 2. 点击模拟器 File 菜单中的 Configure 选项,然后选择“Network”选项卡。 3. 勾选 Enable NE2000 PCMCIA network adapter and ...

    virtual-machine:虚拟机CPU仿真器

    类似于RISC的虚拟机仿真器 运行一个简单的组装状机器语言的类RISC(R得出我nstruction S等Ç动态数值)仿真器。 提交消息表情符号的含义可以在找到。 关于 实现包含CPU和内存模块并运行Assembly编程语言的简化版本...

    qemu-0.13.0(编译过全处理器支持)

    -M machine select emulated machine (-M ? for list) -cpu cpu select CPU (-cpu ? for list) -smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] set the number of CPUs to 'n' [default...

    Bochs - The cross platform IA-32 (x86) emulator

    - Ported most of Qemu's 'virtual VFAT' block driver (except runtime write support, but plus FAT32 suppport) - Added write protect option for floppy drives. - Bugfixes / improved internal debugger + ...

    Windows Embedded CE 6.0开发环境的搭建

    - 为了使Device Emulator正常工作,需要安装Virtual Machine Network Driver。如果缺少这个组件,模拟器可能会显示黑屏,导致无法正常使用。 - 微软已经不再提供单独的下载链接,但可以通过下载Microsoft Virtual ...

    汇编语言程序设计工具

    此外,模拟器或虚拟机(Emulator/Virtual Machine)也能帮助在不同环境下测试汇编程序。 在实际应用中,汇编语言常用于系统级编程、设备驱动开发、性能关键部分的优化等。学习汇编语言能提升对计算机底层工作原理的...

    《x86汇编语言:从实模式到保护模式》配套工具与源码

    4. 模拟器或虚拟机(Emulator/Virtual Machine):在非x86环境下运行x86汇编程序,便于跨平台学习。 5. 工具集合(Utility Suite):可能包括用于分析、反汇编、性能测试等各种辅助工具。 通过使用这些配套工具,...

    RedHat Certificate Engineer

    ### Red Hat Certificate Engineer – Chapter 2: Virtual Machines and Automated Installations #### CERTIFICATION OBJECTIVE 2.01: Configure KVM for Red Hat KVM (Kernel-based Virtual Machine) is an ...

    内核虚拟机KVM分析资料文档

    KVM,全称Kernel-based Virtual Machine,是Linux内核的一个模块,专门用于实现虚拟化。KVM结合了Linux内核功能和QEMU(Quick Emulator)用户空间组件,创建了一个高效且灵活的虚拟化解决方案。 **1. KVM结构与工作...

    QEMU_and_OpenGL

    这通常需要开启KVM(Kernel-based Virtual Machine)模块,以利用主机硬件的GPU资源。 4. **测试和优化**:在Guest OS中运行OpenGL基准测试或应用,验证性能是否达到预期。可能需要调整QEMU参数或Guest OS设置,以...

    qemu虚拟机

    此外,QEMU还支持KVM(Kernel-based Virtual Machine)模式,当配合Linux内核的虚拟化扩展时,能提供接近原生的性能,因为这种模式下,虚拟机的大部分工作由硬件和内核直接处理。 使用QEMU,用户可以创建虚拟硬盘、...

Global site tag (gtag.js) - Google Analytics