Liam Proven wrote:
My guess would be that this is a little protective
colouring of the truth.
A VMware guest only delivers about 80% of the performance of the raw
hardware, because all the kernel code - all the core OS itself, all
device drivers etc. - are running in a software emulator. And on a PC,
this is a lot more critical than on a mainframe, because PC software
is far more CPU (and graphics) intensive.
Run a VM under a VM, this would be even slower - you'd only get about
64% of the performance and my guess is that if it worked at all,
VMware feel it would make their product look bad.
There is VMWare ESXi which is also freely available for download, that
runs on the raw hardware.
So while there'll still be some overhead, you remove most of the
overhead of the host OS - but of course you're replacing the host OS
with a lighter weight one that's designed just for running guest OSs.
Either way, using VMWare tools on the guest is an important part of
running VMWare - if you want performance.
Otherwise, VMWare has to emulate actual hardware devices, which is much
more work than simply transferring the I/O requests to the hypervisor.
There was some controversy over the Intel VT stuff - it turns out it
does run slower than doing it in just software.
Most of what VMWare does is trap & emulate supervisor level
instructions, but there are a few opcodes that it can't do this with -
don't remember the exact ones, so what it does there is to scan the
binary for those opcodes and replaces them.
The biggest limitation I find to VMWare and stuff like it is memory.
You really do need a lot of RAM to get usability. Not surprising. If
you want to run 2 or more Operating Systems at the same time, you need
enough memory to make each OS and whatever Apps you plan to run under
them not page. If you can't do that, don't run things virtually.
Typically there's enough CPU cycles, but not enough memory. For most
situations, but not all.
As with everything, there's always a price to pay, but there are
benefits too.