The bespoke line-of-business application is a common feature of the corporate world, and a thing that has been instrumental in cementing Windows as the corporate desktop OS standard. These applications—I've worked on a few myself—are typically crummy affairs. The foundation of such applications is typically some combination of Visual Basic 6 and obsolete versions of Access and Excel. On top of this mound of [redacted], these apps usually contain one or more third-party components to draw graphs or something, from vendors that have long since gone out of business.

These applications often grow organically (though you should be thinking "mold" or "bacterial infection" rather than "rose" or "kitten") over a period of years, acting as a time-capsule of sorts—if you want to know how software was written in 1993, there is no better place to look than the bespoke line-of-business application—and they have a tendency to outlast their creators. The result is that many of these programs are unmaintained, with no one entirely sure how they work or how it is that they do whatever it is that they do. But one thing is common to all: they're all essential to the continued operation of the business. If the app won't run, the business won't run either.

It is this kind of application, more than any other, that causes Microsoft's slavish adherence to backwards compatibility. Sure, it's important to have some amount of compatibility for regular commercial software, but major applications are supported and actively maintained, so they can be upgraded, or replacements sought. No such joy with the line-of-business application. If it gets broken by an operating system upgrade—or even a Service Pack or security patch—then there's little option but to refrain from upgrading.

One strategy companies have used to free themselves from the problems of such applications has itself caused even more compatibility headaches. Many businesses have redeveloped their essential applications to be delivered through a Web browser, in principle relieving the operating system dependence. Unfortunately, these Web apps have all too often suffered the same fate as their desktop counterparts, leaving them locked in to a particular version of a particular browser. Worse luck for Web developers; it's normally version six of Internet Explorer. The result ends up being the same; companies have to stick with software that's well past its use-by date, because if they upgrade, important things stop working.

This problem has been a thorn in Redmond's side for many years. It's great for Microsoft to have this entrenched, committed user-base, of course—it's a great money-maker—but it serves as a huge restriction on what the company can do. Change Windows (or IE) too much, and these essential-but-awful applications stop working. That becomes an even bigger problem when the changes are essential, such as fixing security flaws or improving general security robustness.

The issue really came to a head with the release of Windows Vista. Vista's compatibility with XP was very good, but it wasn't perfect. Microsoft did a lot of work on Vista to harden it against attacks (UAC, of course, but also other things, like prohibiting services from having user interaction), and together these modifications and improvements, along with more mundane stuff like updating the version number that Windows has, have conspired to break some old software.

How much old software is broken is hard to say; programs that play by the rules by honoring the system's security and not making unwarranted assumptions shouldn't break, and most software falls into this category (or close enough). But the fact remains, there are programs that break on Vista, and many of these are critical to corporate users. And because the latest and greatest Windows 7 is based on Windows Vista, it, too, has the same problem.

Virtualizing the problem

With Windows 7, however, Redmond has provided a solution to the problem: Windows XP Mode. Windows XP Mode uses virtualization technology to let applications running on a virtualized copy of Windows XP show up in the Windows 7 Start menu and on the Windows 7 desktop.

Windows XP Mode is a downloadable add-on for Windows 7 Professional, Ultimate, and Enterprise. It has two parts: the virtualization software itself, and a disk image containing a pre-installed, activated, licensed copy of Windows XP Professional with Service Pack 3 preinstalled, complete with the glorious Internet Explorer 6.

The virtualization software is the latest iteration of Virtual PC. Although you wouldn't know it from the download page, this is available for any version of Windows 7 aside from Starter. You wouldn't know it, because selecting a version of Windows other than those previously listed removes the option to download Virtual PC. It shouldn't, though; it should only remove the option to download the Windows XP Mode image.

In a break from the past, the new version requires hardware virtualization support—Intel's VT or AMD's AMD-V. Microsoft's current server virtualization platform, Hyper-V, has the same requirement, but for Virtual PC this is a new demand, and one that's perhaps a little surprising. For virtualizing 32-bit guest OSes, far and away the most common usage scenario, the benefits of hardware virtualization are something between small and non-existent; though hardware virtualization is potentially a little faster, the difference in practice isn't perceptible.

What the requirement does do, however, is rule out using Windows XP Mode on a range of Intel's low- and mid-range processors. Although most AMD processors include AMD-V (and with a clear division between those which do (Athlon, Opteron, and Phenom models released after mid-2006, Sempron models released after mid-2008) and those which don't (everything else), there's no such convenient division on the Intel side of the fence. Some Core 2 Duos include VT; others don't. For example, consider the Core 2 Duo E8200 and E8190 launched in January 2008. These were both premium parts (branded Core 2 Duo rather than Celeron or Pentium). The E8200 is clearly 10 better than E8190, but what does 10 get you here? In this case, it gets you VT. (Even more curious is that the E8190 cost is the same as the E8200; it was designed for OEMs who apparently wanted a part like the E8200 but without the features. Crazy). There's no consistency or easy rule of thumb to use; my original generation Core 2 Duo E6700 has VT, but the newer, higher-numbered E7500 doesn't.

To make matters worse, as a reaction to Microsoft's decision, some models of processor that previously didn't have VT had it added without even changing the model name. If you have a Core 2 Quad Q8300, for example, it might have VT or it might not, depending on when exactly it was manufactured. The mess is all a result of Intel's over-the-top approach to market segmentation. Every processor the company makes includes the VT hardware, but it's just disabled for some models. Problem is, VT has (until now) never been a feature that the company can meaningfully upsell, because average consumers have no idea what on earth it is or what it's for. Until now, it never really mattered. In an ideal world, Intel would learn from this and stick to vaguely comprehensible divisions for its market segmentation: clock speed, core count, and at a pinch, cache size, and the naming scheme would be rationalized to establish some kind of "higher = better" consistency.