Windows Virtual PC

Windows Virtual PC (successor to Microsoft Virtual PC 2007, Microsoft Virtual PC 2004, and Connectix Virtual PC) is a virtualization program for Microsoft Windows. In July 2006 Microsoft released the Windows version as a free product. In August 2006 Microsoft announced the Macintosh 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, does not run on versions of Windows earlier than Windows 7, and does not officially support MS-DOS or operating systems earlier than Windows XP Professional SP3 as guests. The older versions, which support a wider range of host and guest operating systems, remain available.

Virtual PC virtualizes a standard PC and its associated hardware. Supported Windows operating systems can run inside Virtual PC. Other operating systems such as Linux may run, but are not officially supported, and Microsoft does not provide the necessary "Virtual Machine Additions" (which include essential drivers) for Linux.

History
Connectix Virtual PC, Microsoft Virtual PC 2004, Microsoft Virtual PC 2007, and Windows Virtual PC are successive versions of the same software. Windows Virtual PC runs only on Windows 7 and only supports running Windows XP Professional and later. The earlier Microsoft versions which run on older versions of Windows are still available and support operating systems older than Windows XP.

Virtual PC by Connectix


Virtual PC was originally developed as a Macintosh application 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.

Virtual PC 4 requires Mac OS 8.5 or later on a G3 or G4 processor, but running Windows ME, Windows 2000 or Red Hat Linux requires Mac OS 9.0 or later. Virtual PC 4 was the first version with expandable drive images.

Virtual PC 5 requires Mac OS 9.1 or newer or Mac OS X 10.1 or later. For USB support Mac OS X is recommended. To run Virtual PC 5 in Mac OS X a 400 MHz or faster processor is required.

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.

Under agreement with Connectix, Innotek GmbH (makers of VirtualBox, now part of Sun Microsystems which is itself owned by Oracle) 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
On July 12, 2006, Microsoft released Virtual PC 2004 SP1 for Windows free of charge, but the Mac version was not made free. The equivalent version for Mac, version 7, was the final version of Virtual PC for Mac. It ran on Mac OS X 10.2.8 or later for PowerPC and was a proprietary commercial software product.

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 Services from an Aero-enabled Windows Vista host, provided that the guest is running Windows Vista Business or a higher edition.)

On May 15, 2008, Microsoft released Virtual PC 2007 Service Pack 1, which added support for both Windows XP SP3 and Windows 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. A security update was released on July 14, 2009 to address an elevation of privilege vulnerability in guest operating systems.

Windows Virtual PC
Windows Virtual PC entered public beta testing on April 30, 2009, and was released alongside Windows 7. Unlike its predecessors, this version supports only Windows 7 host operating systems. It originally required hardware virtualization support but on March 19, 2010, Microsoft released an update to Microsoft Virtual PC which allows it to run on PCs without hardware support.

Windows Virtual PC is available free of charge for certain editions of Windows 7, either pre-installed by OEMs or via download from the Microsoft website.

New features
New features include:
 * USB support and redirection – connect peripherals such as flash drives and digital cameras, and print from the guest to host OS printers. However, USB isochronous transfer mode is not supported Other methods involve simply just treating an active drive letter from a USB flash drive as a virtual hard drive.
 * 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 (%USERPROFILE%\Virtual Machines)

Removed features

 * The Virtual Machine console is replaced by an integrated Virtual Machines shell folder. Several options from the console have been removed such as Restore at start, CPU time performance settings, muting sound in inactive virtual machines, full-screen resolution related options, configuring the host key, mouse capture options and settings for requiring administrator permissions.
 * Official guest support for operating systems earlier than Windows XP Professional
 * Drag-and-drop file sharing between the guest and the host
 * Direct sharing of folders between host and guest operating system (Only volumes may be shared between operating systems)
 * Ability to commit changes in undo disks upon turning off virtual machines (Doing so is now only possible through virtual machine Settings dialog box)
 * Ability to use physical and virtual Parallel ports
 * User interface controls for using virtual floppy disks (Virtual floppy disk functionality, however, is still supported and may be accessed using a script)
 * Virtual PC additions for guest operating systems no longer supported have been removed. However, installing Virtual Machine Additions from an older Microsoft virtualization product works for some guest OSes.
 * Properties of the virtual machine, like guest OS, processor, processor features, video mode, video RAM, code cache, IDE controller reads and writes, Ethernet reads and writes, video frame rate and command line options can no longer be viewed.

System requirements
System requirements for Windows Virtual PC:
 * Computer running Windows 7 (all editions except Starter)
 * 1+ GHz processor (32- or 64-bit)
 * 1.25 GB memory required, 2 GB recommended
 * Additional 15 GB of hard disk space per virtual Windows environment recommended
 * Optional: if the processor supports hardware-assisted virtualization technology such as AMD-V or Intel-VT, it will be used. Before March 19, 2010, such a processor was mandatory.

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 Professional with Service Pack 3 as its guest OS. Previously, both the CPU and motherboard of the host had to support hardware virtualization, but an update in early 2010 eliminated this requirement. 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. Windows 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. Windows XP Mode may be used to run 16-bit applications; it includes NTVDM although it might be impossible to run 16-bit applications that require hardware acceleration, as Windows Virtual PC does not have hardware acceleration.

Windows XP Mode is available free of charge to users of Windows 7 Professional, Enterprise, and Ultimate. Users of other editions of Windows 7 are not eligible to download and use it. This restriction does not apply to Windows Virtual PC itself.

Windows XP Mode can also be run with the VMware Player and VMware Workstation. However, VMware products only import Windows XP Mode on Windows 7 Professional, Enterprise, or Ultimate to adhere with Microsoft licensing requirements.

Emulated environment
Virtual PC emulates the following environments:
 * Intel Pentium II (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 by manually editing a virtual machine's settings file).
 * System BIOS from American Megatrends (AMI).
 * Creative Labs Sound Blaster 16 ISA PnP. (When Windows 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.
 * 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
Windows Virtual PC may enable guest operating systems running inside virtual machines to interact with their host operating system beyond what is feasible between two physical computers, such as sharing physical hardware components or exchanging data. To do so however, integration components must be installed on the guest operating systems. When no integration component is installed, the only mean of communicating between two machines (either virtual or physical) is through a virtual network interface. Even the mouse cursor can only be controlled by one operating system (either real or virtual) at any given time. However, once the Integration Components are installed on the guest operating systems, the following features are automatically activated:
 * Mouse cursor sharing: Mouse cursor can be moved freely between the machines.
 * Host-initiated shutdown: Virtual machine can be shut down, restarted or put into standby or hibernation via a set of API functions.
 * Time synchronization: The virtual machine's clock will be automatically synchronized with the host operating system's clock.
 * Process responsiveness monitoring: Host operating system will be able to detect whether the software on the guest operating system is responsive or hung.
 * Dynamic screen resolution: The screen resolution of the guest operating system can be changed by simply resizing the window in which it is running. However, the VM can be configured to allow only standard resolutions.

In addition to features described above, guest operating systems may also take advantage of the following integration features but only when the administrator activates them:
 * Audio sharing: Audio played on the guest operating system may be brought to the host operating system and played on it.
 * Clipboard sharing: Contents such as text, picture or everything that is cut or copied to Windows Clipboard maybe pasted in other machines.
 * Printer sharing: Guest operating systems may print on the host operating system's printer. This feature should not be confused with File and Printer Sharing over an emulated network connection.
 * Smart card sharing: Smart cards connected to host operating system may be accessed on guest operating systems.
 * File sharing: Windows Virtual PC can also share disk partitions and disk drives of the host operating system with guest operating systems. This includes USB mass storage devices that are connected later.

In Windows Virtual PC, enabling integration features automatically makes the virtual machine user account accessible using Remote Desktop Connection.

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 officially 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

Notes – Not supported installations

Linux guests
Installing a Linux-based guest environment in Virtual PC is possible. RedHat and SuSe Linux guests are 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 they do not support Microsoft Virtual PC's emulated graphics chip. 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 or announced at the time were Parallels Desktop and VMware Fusion.