Windows Virtual PC: Good, bad, ugly

On the same day Microsoft released the Windows 7 RC to MSDN and TechNet subscribers, it also released a beta of Windows Virtual PC and Windows XP Mode. The former is almost, but not quite, entirely unlike the Virtual PC you already know. The latter is an installable virtual machine that contains a licensed copy of Windows XP. Put the two together and you have a no-cost workaround for almost any compatibility problems between “old” software that works correctly on Windows XP but not Windows Vista or Windows 7.

You might already be using Hyper-V, Microsoft’s hypervisor-based, take-no-prisoners/competitors server virtualization technology. Personally, I prefer using a client OS, especially when working with technologies like WPF. I also prefer client virtualization products because they tend to have convenience features like drag-n-drop of files from the host machine to the virtual machine. Server virtualization products tend to lose convenience features because they’re meant to be run from headless servers locked away in an air-conditioned server room.

However, convenience aside, for developers, the new-and-improved-with-Windows-prefix Virtual PC has its share of good, bad, and ugly.

Good (maybe even great)

New features are almost always good, especially when other products have them (or maybe especially when they don’t).

  • Virtual PC now supports USB. That means you can attach USB devices to a virtual machine. The most common I’ve heard requested are smart cards and media players. (Hyper-V doesn’t support USB.)
  • Virtual PC now uses multiple threads. That means multiple VMs will use multiple cores instead of round-robining on a single core.
  • Virtual PC can now be automated. That means it’s now feasible to build tools on top of Virtual PC, which didn’t have an automation interface in the past. Unfortunately, it’s a COM API so it’s not the perfect managed-code interface, but it’ll do.

Bad (or at least disappointing)

Existing limitations that weren’t lifted when you really hoped they would be: yeah, generally considered “bad.”

  • Virtual machines are limited to one virtual processor. Hyper-V supports multiple virtual CPUs per virtual machine. Anyone expecting the next version of Microsoft’s desktop virtualization technology to also support multiple virtual CPUs is probably disappointed.
  • 64-bit virtual machines aren’t supported: Hyper-V supports running 64-bit OSes in VMs. Virtual PC: not so much. Given that Windows Server 2008 R2 is Microsoft’s first server OS that comes only in 64-bit flavors, the windows for 32-bit-only virtualization is closing fast, so this limitation is definitely disappointing.

Ugly (but probably unimportant)

Luckily, “ugly” here is limited and provisional. It won’t even matter to most people.

Virtual PC now requires hardware-assisted virtualization. Previous versions of Virtual PC took advantage of Intel VT and AMD-V hardware-assisted virtualization if it was available. Now it’s required. As a practical matter, most x86/x64 CPUs shipped for the past two or three years support hardware-assisted virtualization. However, Intel has frequently made available varieties of its CPU lines and one of the differentiators has been VT support. For example, when the first Intel quad-core CPUs shipped, they all had VT; now:

Contrast with the latest-and-greatest:

and the server/workstation line of Xeon CPUs:

Suggestion: Always check with Intel’s Processor Spec Finder Web site to make sure that the CPU in the machine you’re considering supports VT. Use Intel’s Processor Identification Utility to check for the VT feature. If you’re buying configurable hardware, check the available upgrades: You might be able to get a CPU with VT as a cheap upgrade. And if you already have a CPU without VT, well, a new machine could both get you hardware-assisted virtualization and help stimulate the economy.

What have you done for me lately?

For developers and testers, Windows Virtual PC is a nice upgrade. Automation and multiple threads are big wins for testing. But the lack of 64-bit VM support is a major drawback with the soon-to-be-current version of Windows Server 2008 R2 being available only in 64-bit versions. Even for teams doing nothing but client-OS development, testing products on x64 OSes is vital.

Clearly, however, this version of Virtual PC was focused on providing Windows XP Mode. I’ll hold on to hope that, flush with that success, management will encourage the Virtual PC team (with the carrot-and-stick-but-mostly-stick approach) to give developers and testers more virtualization love.

7 Replies to “Windows Virtual PC: Good, bad, ugly”

  1. Is Windows Virtual PC really “almost […] entirely unlike” Virtual PC 2007? Based on your description they sound very similar.

  2. hey, was anybody thinking the same thing I was. If virtualization was not required and now it is, maybe there’s a way to put it back the way it was? somebody could create a patch to make it work again (even slow w/o vt, but better than nothing)..

    dont get me wrong, I agree that what Microsoft has done with XP mode is amazing and this way it’s sure to attract attention and people would start using it massively, for they can now easily use virtualization.

    Before it was clumsy to start a different os inside the one you have and share files through the network and all the hassle around. This way is simple and elegant. Less informed users might not even realize it’s another os they’re running, they may think of it as a finally well working ‘compatibility mode’.

    However. Making it intel VT/ AMD-V cores only is the worst thing they could have done. What’s the point of this? Make people buy more expensive chips?

    Personally I’m running e5200 and e7300 – what do I do? I dont wanna upgrade. Those CPUs are good enough. And I am ready to ‘wait a while’ for the virtual pc to finish a task, keeping in mind I dont have a VT. But making it only for those high-end chips, that really sux.

    I am strongly convinced there’s thousand of people like me. Bought a e5x00 or x e7x00, cuz it was a terrific bargain and now they’re being punished for going after perfomance/price ratio??

    Help us somebody, pls!

  3. Did I understand this correctly? That to use Windows 7 with XP you have to have a 64bit VT chip?

    Bad news… my server runs Hyper-V but when I bought my laptop, I found very few models with VT support. Hopefully this will drive supply/demand but as I’ve observed the laptop market currently ( who buys desktops anymore? ) this is going to be an issue.

  4. Allow me to add…. The T6400 seems to be a very common CPU these days and even it won’t cut it. What about all the netbooks people are buying?

    And speaking of the economy.. I’m all for helping out but I don’t think most people will. I’m afraid people are looking for a Wii, not an XBox 360.

  5. Regarding laptop VT support: many laptops ship with a VT-capable CPU but with VT support disabled via BIOS and with no option to enable it.

    However, for some models, it is possible to enable VT with a little BIOS “hacking”. I was able to get it enabled on my three yo. VAIO SZ1 (Intel Core Duo, one of the first VT-capable mobile CPUs)

    Instructions can be found here:

Comments are closed.