Virtualization vs Emulation

March 7, 2012 0 By Eric Shanks

Emulation and Virtualization are not the same thing.  In many cases you’ll hear them used interchangeably but they are different concepts.


Emulation consists of taking the properties of one system and trying to reproduce it with a different type of system.  When it comes to computers, you may have seen some software emulators that you can install and run on a PC or MAC, that will reproduce the characteristics of an older system such as a Nintendo or other gaming console.  As an example you could then perhaps run Super Mario Bros. on your work desktop (I am not advocating the playing of video games at work).  In this case the software emulator is mimicking the gaming console so that the game could be run inside the emulator, even though the underlying hardware is an x86 architecture.


Virtualization isn’t taking one system so that it can run on a different type of machine.  Virtualization puts a layer between physical hardware and controls access to that hardware.  This is useful because it can then control access to the physical resources of the host and can then hand these resources out to guest machines.  Each guest machine that is built on top of the abstraction layer (hypervisor) is then provided access to the physical host’s resources without them being modified as in emulation.  The hypervisor can act as a traffic cop by allowing only a certain amount of the physical resources to be used by the guests, as well as handling what happens when two guests access a physical resource at the same time.