« ER Homicide | Main | Here I Am »

September 17, 2006

Virtualization

I've always been rather curios about virtualization technologies and what they can do for me and tonight I had the chnace to delve a little deeper that I have in the past. A cusory study of the technologies out there reveals two major types (I'm not considering emulation) and one , how should I put this, puculiar technue.

Read more after the jump.

Regular virtualization entails running a Virtual Machine Monitor (VMM) on a host that traps certain "un-virtualizable" CPU calls that are then handled in software. These calls are referred to as Domain (or Ring) 0 calls.

Paravirtualization requires the guest OS (the one running under the VMM) to simply not make these Ring 0 calls. So a modified version of the guest operating system is required.

Cooperative extends the theory of coroutines [wikipedia.org] to the Operating System level. In this scenario both cooperating systems are modifed; the guest directly and the host via special drivers.

All three implementations utilize virtual devices (screen, keyboard, drives, network, etc.) for the guest Operating System. Interesting stuff. For more information I would checkout Wikipedia [wikipedia.org] (as always), coLinux [colinux.org] and XenSource [xensource.com].

Posted by Guy at September 17, 2006 8:54 PM