http://stackoverflow.com/questions/6044978/full-emulation-vs-full-virtualization
Emulation and virtualization are related but not the same.
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.
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).
No comments:
Post a Comment