Windows Virtual PC

Windows Virtual PC (formally Virtual PC by Connectix) is a virtualization program for Microsoft Windows operating systems, and an emulation program for Mac OS X on PowerPC-based systems. The software was originally written by Connectix, and was subsequently acquired by Microsoft. In July 2006 Microsoft released the Windows-hosted version as a free product. In August 2006 Microsoft announced the Macintosh-hosted version would not be ported to Intel-based Macintosh computers, effectively discontinuing the product as PowerPC-based Macintosh computers are no longer manufactured. The newest release, Windows Virtual PC is available only for Windows 7 hosts.

Virtual PC virtualizes a standard PC and its associated hardware. Supported Windows operating systems can run inside Virtual PC. However, other operating systems like Linux may run, but are not officially supported.

Windows Virtual PC
The successor to Virtual PC 2007, Windows Virtual PC, entered public beta testing on April 30, 2009, and is intended for release alongside Windows 7. Unlike its predecessors, this version supports only Windows 7 host operating systems and requires hardware virtualization support (see requirements).

Windows Virtual PC includes the following new features:


 * USB support and redirection – connect peripherals such as flash drives and digital cameras, and print from the guest to host OS printers
 * Seamless application publishing and launching – run Windows XP Mode applications directly from the Windows 7 desktop
 * Support for multithreading – run multiple virtual machines concurrently, each in its own thread for improved stability and performance
 * Smart card redirection – use smart cards connected to the host
 * Integration with Windows Explorer – manage all VMs from a single Explorer folder (%USER%\Virtual Machines)

System requirements
System requirements for Windows Virtual PC:
 * 1+ GHz processor (32- or 64-bit)
 * AMD-VTM or Intel VT hardware virtualization must be supported and enabled
 * 1.25 GB memory required (2 GB recommended)
 * Additional 15 GB of hard disk space per virtual Windows environment recommended

Availability

 * Windows Virtual PC (currently the RC version) is available free of charge to users of Windows 7 Home Premium, Professional, Ultimate, and Enterprise editions, either pre-installed by OEMs or via download from the Microsoft website.
 * Windows XP Mode, which enables guest applications to be integrated into the host Windows 7 desktop, will be available free of charge to users of Windows 7 Professional, Enterprise, and Ultimate editions, either pre-installed by OEMs or via download from the Microsoft website.

Windows XP Mode
Windows XP Mode (XPM) is a virtual machine package for Windows Virtual PC containing a pre-installed, licensed copy of Windows XP SP3 as its guest OS. Pre-installed integration components allow applications running within the virtualized environment to appear as if running directly on the host, sharing the native desktop and Start Menu of Windows 7 as well as participating in file type associations. XP Mode applications run in a Terminal Services session in the virtualized Windows XP, and are accessed via Remote Desktop Protocol by a client running on the Windows 7 host.

Applications running in Windows XP mode do not have compatibility issues as they are actually running inside a Windows XP virtual machine and redirected using RDP to the Windows 7 host.

Emulated environment
Virtual PC emulates the following environment:
 * Intel Pentium III (32-bit) processor (but virtualizes the host processor on Windows versions) with an Intel 440BX chipset.
 * Standard SVGA VESA graphics card (S3 Trio 32 PCI with 4 MB video RAM, adjustable in later versions up to 16 MB).
 * System BIOS from American Megatrends (AMI).
 * Creative Labs Sound Blaster 16 ISA PnP. (When Vista is installed as both the host (main) and guest (virtual) operating systems, settings are synchronized with the host and audio configuration is not required.)
 * DEC 21041 (DEC 21140 in newer versions) Ethernet network card.
 * Microsoft Virtual PC 2007 and earlier do not support USB, although standard peripherals (e.g., keyboards and mice) connected to the host OS via USB are recognized . Programs using undocumented features of hardware, exotic timings, or unsupported opcodes may not work.

Implementation:
 * The Macintosh version of Virtual PC uses dynamic recompilation to translate the x86 code used by PCs into equivalent PowerPC code for Macs.
 * The Windows version of Virtual PC also uses dynamic recompilation, but only to translate x86 kernel mode and real mode code into x86 user mode code; original user mode and virtual 8086 mode code run natively.
 * Guest call traps are used, especially for guest extensions, to accelerate emulation or offer additional features, such as integration with the host environment.
 * Virtual PC and Virtual Server encapsulate virtual hard disks in the Virtual Hard Disk (VHD) file format, for which Microsoft has made all documentation available under the Open Specification Promise.

Earlier versions of Virtual PC supported the following features: (now removed in Microsoft Virtual PC 2004, 2007, and Windows Virtual PC):
 * Older versions of Virtual PC (v5.0 or earlier) may have the hard disk formatted after creating the Virtual Hard Disk file. Newer versions must partition and format the Virtual Hard Disk file manually.
 * A Virtual Switch available in Virtual PC version 4.1 or earlier allows adding multiple network adapters.
 * Older operating systems are supported with Virtual Machine additions.
 * Older versions of Virtual PC for Macintosh can run on Mac OS 9.2.2 or earlier. Support of Apple System 7.5 was dropped in version 3.

Virtual Machine Integration Components
To facilitate the exchange and sharing of files, folders and data between the host and guest operating systems, Virtual PC provides an optional set of Virtual Machine Additions. These can be installed in the guest OS to provide the following functionality across the host and guest:
 * Better performance of the guest
 * Integrated use of the mouse
 * Optimized video drivers
 * Dynamic screen resolution (resizing the virtual machine window sets the guest to any screen resolution)
 * Time synchronization with the host
 * Clipboard sharing
 * Drag-and-drop capabilities
 * Access to designated host OS folders from within the guest
 * Support for USB devices beginning with Windows Virtual PC although isochronous USB support is absent

Virtual PC Additions are called Virtual PC Integration Components beginning with Windows Virtual PC.

Supported host and guest operating systems
Virtual PC allows multiple guest operating systems to run virtualized on a single physical host. Although a number of popular host and guest operating systems lack official Microsoft support, there are sometimes few, if any, technical obstacles impeding installation. Instead, a configuration may be unsupported due to Microsoft's own licensing restrictions, or a decision to focus testing and support resources elsewhere, especially when production use of a legacy product fades.

A program manager on Microsoft's core virtualization team explains what official support entails: "With each release of Virtual PC we spend a significant amount of time trying to decide which guest operating system should be officially supported. While Virtual PC is capable of running many operating systems, official support for an operating system means that we will test it thoroughly, not ship Virtual PC if an issue exists with that operating system, and provide full support for customers who encounter problems while running these operating systems under virtual PC."

- Ben Armstrong, Virtual PC Guy

As a product positioned for desktop use, Virtual PC provides official support for a different set of operating systems than its server-oriented counterpart, Microsoft Virtual Server and the more advanced Hyper-V. While the latter products support a range of server operating systems, Virtual PC 2007 supports only one variety as host and another as guest; its successor, Windows Virtual PC, supports none. And, whereas Virtual Server and Hyper-V have supported select Linux guests since 2006 and 2008, respectively,, no Microsoft release of Virtual PC has officially supported Linux. Nonetheless, a number of Linux distributions do run successfully in Virtual PC 2007, and can be used with the Virtual Machine Additions from Virtual Server (see below). Lastly, while 64-bit host support was introduced with Virtual PC 2007, release has been able to virtualize a 64-bit guest; Microsoft has thus far reserved this functionality for Hyper-V, which runs only on 64-bit (x64) editions of Windows Server 2008.

Table of supported operating systems
In the following table and notes, "support" refers to official Microsoft support, as described above.

Notes – Details of Microsoft support

 Supported editions: OS/2 Warp Version 4 Fix Pack 15, OS/2 Warp Convenience Pack 1, and OS/2 Warp Convenience Pack 2.

Support added in Virtual PC 2004 Service Pack 1 (SP1) for Windows Server 2003, Standard Edition as a host.

For Virtual PC 2007, Microsoft designated the following legacy operating systems "compatible", but discontinued official support: MS-DOS 6.22, Windows NT 4.0 Workstation, Windows 95, Windows 98 (original release), and Windows Me.

For Windows Vista guests in Virtual PC 2007, the Windows Aero graphical user interface is disabled due to limitations of the emulated S3 Trio graphics card; the interface falls back to the Vista Home Basic theme. However, Aero effects can be rendered by connecting to the guest via Remote Desktop Connection from an Aero-enabled host.

Support added in Virtual PC 2007 Service Pack 1 (SP1) for Windows Server 2008 Standard as a guest.

Microsoft's January 2008 EULA supplement for Windows Vista lifted restrictions barring installation of Vista Home Basic and Home Premium as guest operating systems.

Microsoft's January 2008 EULA supplement for Windows Vista lifted restrictions barring use of BitLocker and Microsoft-DRM-protected content within virtualized environments.

Support added in a Virtual PC 2007 Service Pack 1 (SP1) hotfix rollup, dated February 20, 2009, for Windows XP Home as both host and guest, and for all Home editions of Windows Vista as hosts.</li>

The pre-configured XP Mode of Windows Virtual PC is restricted to Windows 7 Professional, Enterprise, and Ultimate hosts. However, an equivalent environment can be configured manually by installing Windows XP SP3 as a guest (requires an XP license and installation media or files) and applying an integration components update (available for download from Microsoft) to enable seamless mode and other Windows 7 integration features.</li>

The integration components enabling seamless mode and other features of Windows Virtual PC support only the following guests: Windows XP Professional Service Pack 3 (SP3); Windows Vista Business SP1, Enterprise SP1, and Ultimate SP1; and Windows 7/7.1 Professional, Enterprise, and Ultimate.</li> </ol>

Notes Unsupported installations

<ol style="list-style-type:lower-greek; font-size:95%; margin-bottom:1.5em"> Virtual PC 2007 does not include Virtual Machine Additions for MS-DOS, but the DOS additions from Virtual PC 2004 can be used without problem.</li>

The Virtual Machine Additions included with Virtual PC 2007 will not install on Windows 95 guests, but the additions from Virtual PC 2004 can be used.</li>

In informal testing, Microsoft virtualization manager Ben Armstrong found XP Media Center 2004 "distorted and unusable" under Virtual PC 2004, but Media Center 2005 worked "beautifully", sans TV features.</li>

MSDN blogs report that pre-release versions of Windows 7, similar to the forthcoming Ultimate edition, run successfully as both host and guest operating systems on Virtual PC 2007 Service Pack 1 (SP1). Integration features provided by Virtual Machine Additions function normally, but Virtual PC 2007 must be SP1 or later. See "Windows 7 on Virtual PC on Windows 7" for more caveats.</li>

Although Windows NT 3.1 and 3.5 refuse to install on newer processors (Windows 3.51 fixes this), it is possible to modify files on the install CD to allow install; the patch can be downloaded here.</li> </ol>

Linux guests
Installing a Linux-based guest environment in Virtual PC is possible but not seamless. , Linux guests are not officially supported. Linux additions are supported in Microsoft Virtual Server, and these additions should also work in Virtual PC.

Some Linux distributions must be installed in text mode, as Microsoft Virtual PC only emulates graphics at 16-bit or 32-bit color depth, not 24-bit; thus, in order to run an X Window user interface, a 16-bit color depth must be specified in the guest operating system's xorg.conf configuration file. Ubuntu 8.10 (Intrepid Ibex) must be installed in SafeMode, but does not require other changes.

Some websites specialize in listing operating systems that run successfully as Virtual PC guests, to help users avoid issues when installing Linux distributions or other operating systems lacking official Microsoft support.

Intel-based Mac support
Microsoft announced on August 7, 2006, that Virtual PC for Mac would not be ported to the Intel Mac platform. Microsoft stated, "Alternative solutions offered by Apple and other vendors, combined with a fully packaged retail copy of Windows, will satisfy this need." Similar products available at the time were Parallels Desktop and VMware Fusion.

Virtual PC by Connectix
Virtual PC was originally developed for the Macintosh and released by Connectix in June 1997. The first version of Virtual PC designed for Windows-based systems, version 4.0, was released in June 2001. Connectix sold versions of Virtual PC bundled with a variety of guest operating systems, including Windows, OS/2, and Red Hat Linux. As virtualization's importance to enterprise users became clear, Microsoft took interest in the sector and acquired Virtual PC and Virtual Server (unreleased at the time) from Connectix in February 2003.

Earlier versions of Virtual PC supported the following features: (now removed in Microsoft Virtual PC 2004, 2007, and Windows Virtual PC):
 * Older versions of Virtual PC (v5.0 or earlier) may have the hard disk formatted after creating the Virtual Hard Disk file. Newer versions must partition and format the Virtual Hard Disk file manually.
 * A Virtual Switch available in Virtual PC version 4.1 or earlier allows adding multiple network adapters.
 * Older operating systems are supported with Virtual Machine additions.
 * Older versions of Virtual PC for Macintosh can run on Mac OS 9.2.2 or earlier. Support of Apple System 7.5 are dropped in version 3.

Guest extensions
Under agreement with Connectix, Innotek GmbH (makers of VirtualBox and now part of Sun Microsystems) ported version 5.0 to run on an OS/2 host. This version also included guest extensions (VM additions) for OS/2 guests, which could run on Windows, OS/2 or Mac OS X hosts using Virtual PC versions 5, 6 or 7. A new version of the guest extensions was later included with Microsoft's Virtual PC 2004.

Microsoft Virtual PC 2004 / Virtual PC 2007
On July 12, 2006, Microsoft released Virtual PC 2004 for Windows as a free product, but the Mac version was not made free. The Windows version may be downloaded here. The equivalent version for Mac, version 7, was the final version of Virtual PC for Mac.

Virtual PC 2007 was released only for the Windows platform, with public beta testing beginning October 11, 2006, and production release on February 19, 2007. It added support for hardware virtualization, viewing virtual machines on multiple monitors and support for Windows Vista as both host and guest. (The Windows Aero interface is disabled on Windows Vista guests due to limitations of the emulated video hardware however, Aero effects can be rendered by connecting to the guest via Remote Desktop Connection from an Aero-enabled Vista host.)

On May 15, 2008, Microsoft released Virtual PC 2007 Service Pack 1, which added support for both Windows XP SP3 and Vista SP1 as guest and host OSes, as well as Windows Server 2008 Standard as a guest OS. A hotfix rollup for Virtual PC 2007 SP1, released February 20, 2009, solved networking issues and enhanced the maximum screen resolution to 2048×1920 (32-bit), enabling 16:9 resolutions such as 1920×1080.