完全仿真与完全虚拟化 [英] Full emulation vs. full virtualization

查看:118
本文介绍了完全仿真与完全虚拟化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在完全仿真中,虚拟化了I / O设备,CPU,主内存。来宾操作系统将访问虚拟设备而不是物理设备。但是,完全虚拟化到底是什么?

In full emulation the I/O devices, CPU, main memory are virtualized. The guest operating system would access virtual devices not physical devices. But what exactly is full virtualization? Is it the same as full emulation or something totally different?

推荐答案

仿真和虚拟化是相关的,但并不相同。

Emulation and virtualization are related but not the same.

仿真使用软件来提供不同的执行环境或体系结构。例如,您可能在Windows框上运行了一个Android模拟器。 Windows框没有与Android设备相同的处理器,因此模拟器实际上是通过软件执行Android应用程序的。

Emulation is using software to provide a different execution environment or architecture. For example, you might have an Android emulator run on a Windows box. The Windows box doesn't have the same processor that an Android device does so the emulator actually executes the Android application through software.

虚拟化更多是关于在同一物理环境中运行的多个虚拟环境之间创建虚拟屏障。最大的区别在于虚拟化环境是相同的体系结构。虚拟化的应用程序可以提供虚拟化的设备,然后将其转换为物理设备,并且虚拟化主机可以控制哪个虚拟机可以访问每个设备或设备的一部分。但是,实际执行通常还是本地执行,而不是通过软件执行。因此,虚拟化性能通常比仿真要好得多。

Virtualization is more about creating virtual barriers between multiple virtual environments running in the same physical environment. The big difference is that the virtualized environment is the same architecture. A virtualized application may provide virtualized devices that then get translated to physical devices and the virtualization host has control over which virtual machine has access to each device or portion of a device. The actual execution is most often still executed natively though, not through software. Therefore virtualization performance is usually much better than emulation.

虚拟机还有一个单独的概念,例如运行Java,.NET或Flash代码的虚拟机。它们在一个实现之间可能会有所不同,并且可能包括仿真或虚拟化或两者的方面。例如,JVM提供了一种执行Java字节码的机制。但是,JVM规范并未规定字节码必须由软件执行,或者必须将其编译为本机代码。每个JVM都可以做自己的事,实际上,大多数JVM都结合使用了适当的仿真和适当的JIT(我认为Hotspot JIT是Sun / Oracle的JVM)。

There's also a separate concept of a Virtual Machine such as those that run Java, .NET, or Flash code. They can vary from one implementation to the next and may include aspects of either emulation or virtualization or both. For example, the JVM provides a mechanism to execute Java byte codes. However, the JVM spec doesn't dictate that the byte codes must be executed by software or that they must be compiled to native code. Each JVM can do it's own thing and in fact most JVMs do a combination of both using emulation where appropriate and using a JIT where appropriate (the Hotspot JIT I think is what it's called for Sun/Oracle's JVM).

这篇关于完全仿真与完全虚拟化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆