Microsoft recently announced their new virtualization technology “Hyper-V” (codename Viridian) as part of Windows Server 2008 that will replace Microsoft Virtual Server 2005. I wanted to understand the differences between the two virtualization products and how to use Hyper-V. In my search, I came up with the following list of references and understandings.
Rough Technology differences between Hyper-V and earlier products:
One way to think about these new chip technologies is that they introduce a “-1” ring essentially to the usual four rings in the x86 CPU architecture. With the VPC and Virtual Server offerings, they use a trick called ring compression where the kernel of the VM is placed into Ring 1, instead of the expected Ring 0. This is so that the host can absolutely ensure that VMs are running in their own sandbox and can’t gain access to any resources of the host or other VMs. There is something like 14-17 CPU instructions in the x86 instruction set that can’t be executed directly because of sandbox violation. Hence, the need to place the child VM’s kernel into Ring 1 so that the host can place itself in Ring 0 to intercept those calls to protect them directly or to emulate them. By introducing a “-1” ring, the hypervisor lives here and controls the access to the various virtual machines. So, with the introduction of a hypervisor living in ring -1, the need for ring compression of child VMs is essentially removed. At least, this is one way to think about. They hypervisor itself is not a complete OS, per se. The hypervisor is a VERY thin and small, trusted computing base.
- Hyper-V Architecture, API overview from Wikipedia
- Windows Server Virtualization (WSV/Hyper-V) Preview
- Hyper-V Documentation from MSDN
- Install Hyper-V Beta
- Step by Step document on Hyper-V
- Installing Windows Server 2008 on Hyper-V
VM Additions for Linux