Running Windows 8 Developer Preview in a virtual environment

We wanted to do a quick post on compatibility with respect to virtualization technologies. We know there were some initial challenges and we've seen the community support process kick in and many people are unblocked as "how to" posts have gone up in various places. As this is a developer preview we expect to see other classes of issues related to app or device compatibility—the full breadth of our testing was not done (or intended to be done) for the Preview. Obviously this one was found early and we could have done a bit better. Sue Bohn, David Hicks, Cornel Lupu of our ACDC team (App Compat, Device Compat) authored this quick post. --Steven

We are seeing in the forums that there is a lot of interest in running the Windows 8 Developer Preview in a virtual environment. Our telemetry systems reported that approximately one-third of the early installations are on virtual machines. We apologize for not giving guidance up front on testing the Windows 8 Developer Preview in virtual machines. This blog post will provide some background and information on that topic.

For the ideal client computing experience, we recommend running Windows 8 Developer Preview natively on a dedicated computer. Windows 8 takes advantage of hardware acceleration to enable a fast and fluid user interface. If the option of a dedicated physical computer is not available, then using a dual boot setup is a great alternative that preserves your existing OS and setup. Here’s a helpful LifeHacker article on how to set up dual boot.

If you are not familiar with virtualization terminology, here is a quick primer. Virtual machine products allow you to run a guest OS on top of an existing host OS that runs natively on the physical machine. As many of you know, virtualization is a popular way to try out new operating system products since you don’t have to dedicate a physical machine, add a spare disk, or repartition. To run the Windows 8 Developer Preview as a guest OS, you need a virtualization product that supports it.

Some virtualization products only provide a basic display driver that does not support the high performance graphics used in Windows 8. As a result, you get a noticeably slower, less responsive experience when compared with running the OS natively. The setup and configuration process can be complicated and error prone when running as a guest OS, especially if you are running it on older hardware that does not support built-in virtualization optimizations featured in the latest generations of Intel and AMD processors.

Windows 8 Developer Preview only came out a few days ago, so many of the virtualization products on the market have not yet been updated to work well with it. We are working closely with all of the major manufacturers of virtualization products to support Windows 8 as we move toward release.

Forum members are reporting success using a few products. Of the most popular options, our baseline assessment is as follows:

Functional:

Hyper-V in Windows 8 Developer Preview

Hyper-V in Windows Server 2008 R2

VMware Workstation 8.0 for Windows

VirtualBox 4.1.2 for Windows

Non-functional:

Microsoft Virtual PC (all versions)

Microsoft Virtual Server (all versions)

Windows 7 XP Mode

VMWare Workstation 7.x or older

You may be wondering why virtualization products that work today with Windows 7 do not work with the Windows 8 Developer Preview. We take compatibility very seriously. However, there are categories of software that run “very close to the metal,” and deliberately take dependencies on internal data structures and intricacies of the Windows kernel. These dependencies are not typically publicly supported or exported APIs, and thus must change as Windows changes. We go to great lengths to avoid these changes, but sometimes they are necessary to enable innovation. As a result, some software will require updates when we make significant improvements to Windows. Other common categories include antimalware and security products. In this case, to improve boot performance and enable new CPU architectures, we took a new approach to high-resolution timers. Some virtualization products emulate older hardware timers that significantly compromise performance and will require updates before they can support Windows 8.

We work very closely with all software partners that build products that rely on these types of APIs and all have been informed of the changes in the Windows 8 Developer Preview. Each will choose to address future compatibility as is consistent with their business goals. Collectively we are committed to delivering a great experience as the release audience broadens.