The modern crowd thinks that they have found the panacea of computing, the virtual machine. It lets you have many "software" computer systems individualy using a single hardware computer system.
This is great, for bugs and stuff in one system don't affect the others. You can move virtual machines to other CPUs (even off site) and they may not even notice the difference if the communication links are setup correctly. In other words, it allows for redundancy and fail-safe behavior with a few number of machines than you would need. It also lets you migrate machines between hardware computing platforms .. which is something harder to do and needs hands-on help with a hard computer system.
The thing is, this is passe. IBM has been doing it for years with the 370s and beyond. If you want to see what serious virtual machines are about, checkout there stuff. Which, by the way, they have been running since the 1970s or so. They even have tools which let you move a running virtual machine to another location ... while it is running. It isn't a big deal even. Or, to have a ready to rock-n-roll hot spare that is just a few instructions behind the running box ... in case it goes down due to whatever reason (wuch as power or communication outages).
They are truly the masters -- bow to them!
I'll warn you that a lot of this stuff is modern VM centric. In the fully virtualized IBM world, there really is no no-VM environment to consider.
In a fully virtualized environment, such as what IBM runs, there isn't a whole lot to say about things. The samer OS that runs on the bare hardware can run as a virtual machine ... and it will never know the difference! Heck, the OS running the virtual machine runs virtual machines. You can even start up virtual virtual machines, and it just works. Pretty Darn cool if you ask me!
That isn't the case with non-virtualizable hardware. Something has to provide the virtual environment to the virtual machines. That thing is called a hypervisor. The hypervisor manages the virtual machines, and provides the virtual services that the individual machines request.
The hypervisor can be a dedicated OS that just provides virtual services to the running VMs. That is what VMware server does; a dedicated virtual machine OS that doesn't do much besides run virtual machines. It is a nice low-overhead (resource wise) tool to provide virtualization at lower overhead costs. One problem with this dedicated hypervisor is that it is different from all the host OSes; something that never happened in IBM land. It is a different set of tools, perhaps with a bunch of limitiations that make it not useful to administer itself with.
The other common hypervisor setup is a normal OS running a service that provides VM functionality to
Really these are all hypervisors, the tool which creates the virtual environment which the virtual machine then runs in.
Of this collection, Xen is probably the closest to the original true hypervisors. Not in construction, but in functinoality. It provides a true virtual machine interface to the kernels on the virtual machines. That means that operatinos are more easily virtualized, which leads to higher throughput virtual computing through well defined interfaces.
The others are really virtual computing in the form of simulated computer hardware. Which is often a really great thing to do. The thing is, in the original IBM 370 VM world, the hardware operations and the virtual operations were almost identical .. because the hardware was designed with good interfaces, and the CPU had instructions to use those interfaces. Implemntation details were buried. The current PC world (and most other manufacturers) don't have the really cool setup, so they need to emulate a real machine to provide a VM. That comes with a cost of going slower.