Virtualization versus Emulation...

Rate This
  • Comments 7

There is a lot of confusion in this world about what the difference between a virtual machine and an emulated machine is.  I personally blame this on two factors:

 1) Most people don't really care
 2) 'Virtual' is an overloaded word in the english language

To quickly talk about the second point - you see 'virtual' can either be:

 1) A literal word meaning 'just like but not quite' - e.g. 'I am virtually finished writing this post'
 2) A technical term that refers to a mechanism for creating multiple contexts on a single processor

So many 'virtual' machines in this world are actually emulated ones.  Emulation involves providing the functionality of your target processor completely in software.  The main advantage of emulation are that you can emulate a processor on any other type of processor.  The main disadvantage is that it tends to be slow.

Virtualization on the other hand involves taking a physical processor and partitioning it into multiple contexts - all of which take turns running directly on the processor itself. Virtualization in faster than emulation - but requires that you have the correct physical processor to work.

So why is Ben telling me all this - you may be asking?  Well - it is because I quite regularly get asked by people: 'Can you make Virtual PC emulate a slower processor for the program I want to run?' - and as you can see - the answer is no.  Virtual PC will always have exactly the same type of processor as is in your physical computer - because it uses virtualization.

The other reason - is because in a confusing move 'Virtual PC 2004' uses virtualization - while 'Virtual PC 7 for Macintosh' uses emulation, and every now and then when I am reading Slashdot and there is some fool saying 'Virtual PC (for WindowS) is slow because it uses emulation' - and I feel like flaming them to a crisp and saying 'That is the Mac product!  You have obviously never used the Windows product and have no idea what you are talking about!'.  But I have not done this yet (have to watch your Karma you know).


Leave a Comment
  • Please add 3 and 5 and type the answer here:
  • Post
  • I actually had no idea and I have been using the product since SoftAT was released on the Macintosh. Does it even say on Microsoft's page that the Windows version is not using emulation?
  • Dear Ben,
    Your enthusiasm is lovable and I share some of your thoughts. However, overloading is the acuity of indo-european languages, there's no problem with it. "Virtual" (from latin "virtus") for instance, may also be in English "feasible", "possible", nay "illusory", "suppossed". Outside the world of information technology the latter two are more common.
    That is, thing-2 provided by emulation of the
    functionality of thing-1 may be a virtual thing-1. What I say is the exemples you explain the terms emulation and virtualization with are actually two different ways to create virtual machines. Involving of couse different property and behaviour like speed and use of resources.
    Reduceing a meaning in your way is very Microsoft.

    (don't try to spell it)

    you omitted the "feasible" meaning
    but your interpretation is rather arbitrary.
    about this two notion
  • Steve, we have to remember that the vast majority of users don't want to know the difference, they just want to know that it will work with [their project of interest].

    Kinda like me and my car. I don't know how the engine works and I don't want to... I just want to know that it will start and get me home safely every time i turn the key.
  • Hi Csaba,

    While I admit that I did check the dictionary for the full definition of 'Virtual' - you have proved my point. Namely that the general 'Virtual' in the English language means something different to the specific 'virtualization' in the IT industry.

  • Ok, if we want it to be different though it is not obligatory.
  • You do end up with odd combinations, like this machine where guest OSs think they're using an AMD Duron processor on an Intel 440BX chipset. I seem to recall that some guest OS disk images (Windows XP?) aren't portable across host systems because of this.
  • Hi Mike,

    As far as I know - Windows does not have any problems with the processor changing between boots - however Linux does (as it usually installs a CPU specific kernel).

Page 1 of 1 (7 items)

Virtualization versus Emulation...