《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”是指用于微软设备模拟器的虚拟机网络驱动程序,这是一个关键组件,允许在虚拟环境中模拟真实的网络环境,以便开发者可以在虚拟机上测试和...
**f/VM (Free Virtual Machine) - 开源虚拟机技术详解** f/VM,全称为Free Virtual Machine,是一个受到IBM z/VM系统理念启发的开源虚拟化解决方案。它旨在提供一个安全、高效且可靠的服务器平台,特别强调了安全性...
Virtual Machine Network Driver for Microsoft Device Emulator.msi微软Windows Mobile设备模拟器用的虚拟网卡驱动当你使用wm6.5来上网时,会需要安装这个虚拟的网卡驱动才能使用,这个是官方原始版本,很...
在“Virtual Machine Network Driver for Microsoft Device Emulator.msi”这个文件中,我们可以推断这是微软设备模拟器(Microsoft Device Emulator,MDE)专用的虚拟网卡驱动。MDE是一种用于测试和调试Windows ...
标题中的“Machine Network Driver for Microsoft Device Emulator (netsvwrap.msi)”指的是一个特定的驱动程序,用于在Microsoft Device Emulator中模拟网络功能。这个驱动程序的安装文件名为“netsvwrap.msi”,它...
**Virtual Machine Network Driver for Microsoft Device Emulator.rar** 文件包含的是微软设备模拟器的虚拟网络驱动程序。这个驱动允许模拟器中的Windows CE设备连接到网络,进行网络通信测试,例如HTTP请求、TCP/...
构建自己的Emulator / Virtual Machine [视频] 建立自己的Front-end Framework / Library [视频] [视频] [视频] [视频] 建立自己的Game [视频] [视频] [video] [视频] [视频] [视频] [视频] [视频] ...
1. 安装 Virtual Machine Network Driver(虚拟网卡驱动)for Device Emulator。 2. 点击模拟器 File 菜单中的 Configure 选项,然后选择“Network”选项卡。 3. 勾选 Enable NE2000 PCMCIA network adapter and ...
类似于RISC的虚拟机仿真器 运行一个简单的组装状机器语言的类RISC(R得出我nstruction S等Ç动态数值)仿真器。 提交消息表情符号的含义可以在找到。 关于 实现包含CPU和内存模块并运行Assembly编程语言的简化版本...
-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...
- 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 + ...
- 为了使Device Emulator正常工作,需要安装Virtual Machine Network Driver。如果缺少这个组件,模拟器可能会显示黑屏,导致无法正常使用。 - 微软已经不再提供单独的下载链接,但可以通过下载Microsoft Virtual ...
此外,模拟器或虚拟机(Emulator/Virtual Machine)也能帮助在不同环境下测试汇编程序。 在实际应用中,汇编语言常用于系统级编程、设备驱动开发、性能关键部分的优化等。学习汇编语言能提升对计算机底层工作原理的...
4. 模拟器或虚拟机(Emulator/Virtual Machine):在非x86环境下运行x86汇编程序,便于跨平台学习。 5. 工具集合(Utility Suite):可能包括用于分析、反汇编、性能测试等各种辅助工具。 通过使用这些配套工具,...
### 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,全称Kernel-based Virtual Machine,是Linux内核的一个模块,专门用于实现虚拟化。KVM结合了Linux内核功能和QEMU(Quick Emulator)用户空间组件,创建了一个高效且灵活的虚拟化解决方案。 **1. KVM结构与工作...
这通常需要开启KVM(Kernel-based Virtual Machine)模块,以利用主机硬件的GPU资源。 4. **测试和优化**:在Guest OS中运行OpenGL基准测试或应用,验证性能是否达到预期。可能需要调整QEMU参数或Guest OS设置,以...
此外,QEMU还支持KVM(Kernel-based Virtual Machine)模式,当配合Linux内核的虚拟化扩展时,能提供接近原生的性能,因为这种模式下,虚拟机的大部分工作由硬件和内核直接处理。 使用QEMU,用户可以创建虚拟硬盘、...
RVVM-RISC-V虚拟机 用С编写的RISC-V CPU和系统软件实现 到目前为止做了什么 功能完备的RV32I指令集 C,M,A指令扩展 可扩展的快速指令解码器 物理内存 具有SV32虚拟寻址的内存映射单元(MMU) ...