[Ilugc] Virtualization

  • From: girishvenkatachalam@xxxxxxxxx (Girish Venkatachalam)
  • Date: Wed Aug 20 15:14:56 2008

On 07:05:54 Aug 20, baskar k wrote:
 

I'll try to demonstrate virtualization using Xen. Xen is a fairly
simple operating system that acts as a hypervisor that other OSes can
run on top of it.
Virtualization is a technique by which mutiple guest operating system
can be allowed to be run on a base operating system


I will throw a few rupees worth information with whatever little I know
of virtualization.

Xen is a marvelous creation. And it beats VMWare hands down. I will say
why. I could have some outdated info here. VMWare might have caught up.
But at least this is what I know from what I learnt a year or so ago.

Typical case of OS running on bare metal (which is CPU, memory and
peripherals) is different from a virtualized environment in the sense
that the bare metal (hardware resources) is managed by a hypervisor.
The real OS has to make hypercalls to use the 'bare metal resources'
instead of accessing directly in the normal case.

Now the definition of an OS as taught in colleges is performed by the
hypervisor. So technically speaking we can call it an OS. At least a
slimmed down OS.

But the hypervisor is far from enough to do something useful. So we have
to have a real OS like NetBSD or GNU/Linux running as DOM0 over the Xen
hyervisor. So this is typically called the host OS. The DOMUs are known
as guest OSes. Many OSes have been ported to run on top of Xen.

x86 platforms come with four levels of protection for the purpose of
memory management. Ring 0, 1 , 2 and 3. Normally kernel runs in ring 0
with highest freedom and liberty. And userspace processes run at ring 3.
Whereas in the case of Xen, all four levels are used.

Now the main difference between Xen and VMWare is this:

   " Xen does not emulate the underlying hardware completely. This
means that OSes have to be modified to run on top of Xen hypervisor. You
can never run an OS directly over Xen. Whereas VMWare does full hardware
virtualization which is a highly complex task. Thereby Xen achieves a
very high level of performance when compared to VMWare. But VMWare's
approach means that you don't have to modify the OS to run on top of 
VMWare. "

So the design and code of VMWare and Xen are wildly different since the
goals though similar follow somewhat antipodal approaches.

There are other forms of emulators like Bochs and qemu which I regularly
use. This should not be confused with virtualization. qemu tries to
emulate the bare metal. But this happens at a very high level.

Thanks.

-Girish

Other related posts: