Windows 7 and 64-Bit Virtualization
For the past several years, everyone in the technology world seems to be talking about virtualization. While vendors are rushing to get an upper hand in this race, Microsoft made a surprise decision to stop supporting Microsoft Virtual PC 2007 on Windows 7 and decided not to provide any support for 64-bit virtualization in Windows 7.
In this article, I will give you some background on virtualization, talk about Microsoft’s solutions for virtualization, and address some of the issues that people are having with support of virtualization in Windows 7.
Hardware Virtualization
The term virtualization can apply to hardware or software. When we refer to hardware virtualization, also known as platform virtualization, we are talking about a virtual machine (VM) that acts like a physical computer running an operating system and applications. For example, a Windows XP Professional computer can be a Host machine that runs one or more Guest virtual machines. The software that actually creates and manages the guest virtual machines on the host computer is called the Hypervisor.
Software Virtualization
In software virtualization, a host computer can run multiple virtual machines on a single operating system, such as Windows XP or Windows Vista. For example, you can install Microsoft Virtual PC software on a Windows XP Professional computer and then run multiple virtual machines, such as Windows Server 2003, Windows Vista, and SQL Server, all at the same time. The virtual machines act much like the physical computers. They can also communicate with each other in a virtualized environment and at the same time connect to the Internet. This offers cost savings to businesses and individuals because they don’t have to purchase multiple physical computers. Running multiple virtual machines simultaneously typically requires more memory, but adding additional RAM is obviously less expensive than purchasing a new computer.
Besides the operating system, you can also virtualize applications. Microsoft offers a product called Microsoft Application Virtualization, or App-V (formerly SoftGrid). With App-V, you can install the App-V client on the client computers, and the virtual application server hosts all the data. The application is either streamed or locally cached from the server and runs on demand locally. With App-V you can even run different versions of the same virtualized application. For example, you can run Word 2003 and Word 2010 simultaneously. App-V reduces the load on the client computers and is helpful in centrally managing applications on the network. You can deploy, update, patch, and remove applications with ease from a central location.
Microsoft Virtualization Solutions
Microsoft offers three different solutions to host virtual machines on computers: Microsoft Virtual PC, Microsoft Virtual Server, and Hyper-V. Let’s take a brief look at these three solutions.
- Microsoft Virtual PC
- Microsoft Virtual PC, formerly Connectix Virtual PC, was Microsoft’s entry into the virtualization world. The latest version of this product is Microsoft Virtual PC 2007. Microsoft supports Virtual PC 2007 on Windows XP and Windows Vista computers only. Although this product has been a popular Microsoft solution for years, it is not supported on Windows 7, and it doesn’t allow running 64-bit guest VMs. Microsoft Virtual PC is a free product available for download here.
- Microsoft Virtual Server
- Microsoft acquired Virtual Server from Connectix in February 2003. It can be installed on Windows XP, Windows Vista, and Windows Server 2003. The latest version is Microsoft Virtual Server 2005 R2 SP1. You can create virtual machines using Virtual Server 2005 R2 SP1, similar to Virtual PC 2007. This product also supports running Linux in a virtual machine. Unfortunately, it doesn’t allow guest VMs to use more than 1 CPU. Although it supports symmetric multiprocessing (SMP), it can’t virtualize it. One of the biggest limitations of Virtual Server is that it doesn’t support running 64-bit guest VMs. Due to these and other limitations, compared to Virtual PC, Virtual Server has never been very popular with the general public. One major difference between Virtual PC and Virtual Server has been that it was officially supported by Microsoft in production environments, while Virtual PC was not. Starting in 2006, Microsoft offers this product as a free download.
- Hyper-V
- In 2008, Microsoft introduced Hypervisor-based Virtualization, or Hyper-V. It comes in two versions: a free stand-alone product called Microsoft Hyper-V Server 2008 R2, and as part of Microsoft Windows Server 2008 R2. As mentioned earlier, the first two virtualization solutions were purchased by Microsoft from Connectix. After the purchase, Microsoft made significant enhancements to the products. In contrast, Hyper-V is a product that Microsoft created from scratch. It is considered a serious contender for other virtualization in the industry such as VMware. I use both Hyper-V and VMware on a regular basis and believe that there are pros and cons of using both of these solutions. For example, Hyper-V supports running various versions of Linux in a virtual machine. Although Hyper-V has some limitations, for the most part it is considered a very strong, practical virtualization solution from Microsoft. One of the biggest advantages of Hyper-V is that it supports 64-bit guest VMs. Microsoft Hyper-V Server 2008 R2 is available as a free download here.
Starting with Microsoft Virtual PC, Microsoft really got us hooked on virtualization. Microsoft Virtual PC offers cost-savings, high-availability, and disaster recovery. It is especially useful in training, development, and testing environments. Microsoft introduced Virtual Server to continue the trend. Life was good[md] until 64-bit hardware started to become popular. That’s when things became pretty messy and confusing. The simple solution would have been for Microsoft to offer a version of Virtual PC and/or Virtual Server that supports 64-bit guest VMs, but that didn’t happen.
Windows 7 Virtualization Options
As Windows 7 rolled around, Microsoft introduced some additional products, which caused some misunderstanding because of the naming convention used by Microsoft. At this point we had Microsoft Virtual PC, Windows Virtual PC, Windows XP Mode, and Microsoft Virtual Server. Windows Virtual PC, not to be confused with Microsoft Virtual PC, was released with Windows 7. Microsoft also introduced Windows XP Mode in Windows 7, which allows you to run older applications that ran on Windows XP in Windows 7. Windows Virtual PC is essentially a special edition of Microsoft Virtual PC that was specifically designed for Windows 7. One of the major differences between the two versions at the time these products were introduced was that Windows Virtual PC with Windows XP mode required that your computer support hardware virtualization, while Microsoft Virtual PC didn’t. That wasn’t apparent to everyone, especially when it came to installation, but Microsoft took care of that problem by releasing a patch called Windows XP Mode Update which enabled Windows XP Mode for PCs without Hardware Assisted Virtualization Technology.
Windows Virtual PC in Windows 7 is not really a virtualization solution like Microsoft Virtual PC. It is primarily a temporary workaround for people to run older Windows XP applications in Windows 7, until they are able to upgrade those old applications to run natively on Windows 7. When Windows 7 was introduced, people were surprised to find out that they can’t run Microsoft Virtual PC on Windows 7. Microsoft decided not to support Microsoft Virtual PC on Windows 7, even though it is supported on Windows Vista.
64-Bit Computing Trend
Due to the enormous benefits that 64-bit computing offers, most computers come equipped with 64-bit hardware these days. Even the operating system and applications are now designed for 64-bit computing. The majority of Microsoft server software now requires 64-bit hardware. For example, Microsoft Windows Server 2008 R2, Microsoft Exchange Server 2010, and Microsoft SharePoint Server 2010 can only be installed on 64-bit hardware. Because the only Microsoft virtualization solution that currently supports running 64-bit guest operating systems is Hyper-V, most people who are used to running Microsoft Virtual PC on client operating systems are stuck between a rock and a hard place. Their only choices are to either install Microsoft Hyper-V Server 2008 R2 or install Microsoft Windows Server 2008 R2. Neither one is an acceptable choice as a client desktop operating system. Microsoft Windows Server 2008 R2 is expensive and has a significant performance overhead to be used as a desktop operating system on a laptop, or even on a desktop. Although Microsoft Hyper-V Server 2008 R2 is free, it is not designed to run day-to-day applications, e-mail, and surfing the Internet because it is limited to a command line interface (CLI).
Lack of Support for 64-bit Virtualization in Windows 7
Due to the lack of support for 64-bit virtualization, thousands of software developers, testers, and Microsoft Certified Trainers (MCTs) around the world (and anyone else for that matter) can no longer use Windows 7, Windows Vista or Windows XP to install any 64-bit software in a guest virtual machine.
Microsoft documentation states that Microsoft Virtual PC runs on 64-bit editions of Windows Server 2003, Windows Vista, and Windows XP. Although technically it is true, it’s misleading. The download pages could do a better job of explaining what this means. Installing Microsoft Virtual PC on Windows Server 2003, Windows Vista, or Windows XP doesn’t allow you to run 64-bit software in virtual machines. You are still limited to running only 32-bit software. To eliminate confusion, it would be nice if Microsoft clearly stated that you cannot create 64-bit guest virtual machines on 64-bit hardware, you can only install Microsoft Virtual PC on 64-bit hardware and run 32-bit software.
Do you think Microsoft developers had no idea that people would need support for 64-bit virtualization in Windows 7? Of course, they knew. With 64-bit hardware becoming the standard, it would have made sense to create a version of Microsoft Virtual PC, or a new product, that supported 64-bit guest virtual machines on client operating systems. That solution should have been available the day Windows 7 was released. But that didn’t happen. There is no clear explanation from Microsoft as to why, for all practical purposes, the support for virtualization has been removed in Windows 7. The general consensus seems to be that the decision was more marketing-based than technical. In order to encourage everyone to move towards Hyper-V, if the support for 64-bit virtualization is removed from Windows 7, people would have no choice but to use Hyper-V.
Unfortunately, this decision seems to have backfired and people are not too pleased. Most Microsoft MVPs and MCTs that I have talked to who want 64-bit virtualization solution on their desktop have switched to VMware. Although there are other third-party solutions out there, VMware Workstation seems to be the predominant product of choice. You can install VMware Workstation on Windows 7, and create virtual machines with up to 8 virtual processors or 8 virtual cores, 2 TB virtual disks, and up to 32 GB of memory per virtual machine.
Whether Microsoft will re-evaluate its decision and start offering a 64-bit virtualization solution on desktops in the near future, I don’t know. One thing’s for sure: VMware is pleased and is obviously benefitting from this lack of 64-bit virtualization in Windows 7.