A. There are two (potentially three) very different compatibility modes in Windows 7. First, there's the standard Compatibility tab for applications, which was available in previous OSs. The settings in this tab "lie" to applications about the OS and service pack it's running on. They can also hide or disable elements of the OS that could cause problems with the application. These configurations (lies) are known as shims. You can make some applications work on Windows 7 through these shims, and if you can, it's generally the optimal solution. Ultimately, however, an application with these settings is still running on Windows 7 and the architecture of the Windows 7 installation (i.e., 64-bit).

If the Compatibility tab doesn't work for an application, you can use XP Mode, which was introduced in Windows 7. All XP Mode does is install Windows Virtual PC along with a Microsoft-created Windows XP image, into which you can install applications. The seamless application integration feature then allows the programs running in the Windows XP virtual machine (VM) to be displayed on the main Windows 7 desktop—the average user doesn't know the application is actually running in a VM. Using this technology, the application is actually running on a 32-bit XP OS installation, so any application that works with XP should work in the XP Mode VM.

Your third option is basically the same as your second—you install Windows Virtual PC. However, you don’t use the XP image. You can use your own Windows Vista or XP image, or even a Windows 7 image, to run applications. The seamless application integration is still available (once you install the integration tools in the VM). A good use of this technique is if you've rolled out Windows 7 64-bit and you have application that won’t run on a 64-bit OS (maybe it has 16-bit code). You can run those applications in the 32-bit VM.

To summarize, the traditional Compatibility tab just imitates certain aspects of an older OS, but the application still runs on Windows 7. When using XP Mode (or any VM), the application actually runs on that virtual OS.

Related Reading:



Check out hundreds more useful Q&As like this in John Savill's FAQ for Windows. Also, watch instructional videos made by John at ITTV.net.