An email caught my eye this evening, it was sent out by Jeff Woolsey, Lead Program Manager for Virtualization about our future directions for Virtualisation. It's public domain info and kinda interesting so I thought I'd do some digging around to understand more as I find virtualisation technologies 1) darn useful for application dev, testing, consolidation and 2) a bit like the proverbial dancing bear; not so much how well it dances but that it dances at all.
In the Virtualisation world the term "Hypervisor" gets banded around a lot and I found a great overview of the technology, it's history, various competing projects and future directions including x86 at http://en.wikipedia.org/wiki/Hypervisor.
As a quick summary, today x86 (and others) only delivers partial CPU virtualisation, the focus has been multi tasking efficiencies and protected user level memory address spaces (Ring 3). Products like Virtual PC/Server enable full virtualisation by intercepting and managing kernel (Ring 0) level instructions issued by the guest OS and arbitrating access to low level resources such as hardware interrupts and IO channels (all with an associated performance cost). User level instructions issued by the guest OS and guest applications continue to execute as normal with no performance overhead at user level (Ring 3). This is probably best understood by checking out the virtualisation architecture slides in the WinHEC slides referenced below.
Intel and AMD are both working on providing full Hypervisor support at the CPU level, introducing a new CPU Ring (-1), with respective project codenames "Vanderpool" and "Pacifica". A thin layer of Windows virtualization technology will move to execute at Hypervisor CPU Ring -1 to take full advantage of hardware innovations from Intel and AMD.
We can expect to see greater performance and stability for our virtualised environments as resource arbitration for guest OSs will occur at the hardware level with the assistance of the thin Hypervisor software layer running at CPU Ring -1. Guest OS kernel instructions will execute at Ring 0 as per normal rather than being holstered up to run at Ring 1 as done with current virtualisation technologies that intercept guest kernel instructions. Check out the slide deck below as this will make it clearer:-)
There is an interesting 10 minute slot on our commitment to virtualisation in the "2005 Microsoft Management Summit" webcast, jump to about 50 minutes into the Steve Balmer session, plus a demo of Linux support in Virtual Server 2005 SP1 and MOM.
Also worth checking out is the Virtualisation PPT from WinHEC from http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWSE05008_WinHEC05.ppt.
Key points in this deck are:
- Virtualization is going into the OS in the Longhorn Server wave.
- Windows virtualization will be hypervisor based and take full advantage of hardware innovations from Intel and AMD in the forms of VT and Pacifica, respectively.
- Windows virtualization will provide 32-bit and 64-bit guests.
- We will have a smooth migration from path from Virtual Server to Windows virtualization.
- …and plenty more so check out the deck…
LOL, like lots of things in life, we want it now and there will be some real benefits with full Hypervisor support in the CPU, but in the mean time Virtual PC and Server are here today and waiting to server!!