IF YOU HAVEN'T been stuck in a cave lately, you will undoubtedly have heard that Windows Vista SP2.1, aka Windows 7, will have an 'XP mode'. Before you jump up and down for joy, you should know that it won't do what you think it will, it is a scam.
Microsoft is conducting a very carefully crafted PR campaign to make Windows 7 seem less broken than the Broken OS (Vista / Me II), but it isn't. It gives long lead previews to people it knows will kiss up and not criticize the OS in order to create 'good buzz'. Sadly, with regard to Microsoft's Windows 7, the PC industry press is abdicating its responsibility to report objectively about a vendor's product, and the public is, well, dumb as rocks. It will believe almost anything it's told and never question the source. Yes, I am talking about you.
That brings us to the latest round of this manipulation, Windows 7's XP mode (XPM). It was first 'leaked' on Supersite for Windows, and the commentary was suitably vague. It is said that XP Mode will only appear in three versions of Windows 7 - Professional, Enterprise and Ultimate - the ones that you will be entitled to upgrade to real Windows XP on anyway. For a number of reasons, that upgrade is a much better path.
Ostensibly, the reason is that those three versions are 'licenced' to use Windows XP, and this has been a real cash cow for Microsoft with the Broken OS. It refuses to sell you the OS you want, makes you jump through artificial hoops to get the OS you need, and charges you for the privilege. One of those hoops is to have to buy a much more expensive OS to 'qualify' for the 'downgrade'.
The real reason for offering it only on the business oriented versions of Vista is that it won't actually do what you think it will, it too will be broken. XPM will run XP in a VM under Windows 7, which will use VirtualPC technology to simulate a PC, and that is the key to why it will be so broken when it shows up.
The requirements are high, and to kick things off, you need a PC that supports VT or AMD-V, which in itself is a very good thing. If you don't understand how this works, read these (1, 2, 3, 4, 5, 6, 7, 8), they will give you enough background to filter out Microsoft's FUD. The main takeaway is that Windows can't share peripherals yet, and almost assuredly won't be able to until after Windows 7 is replaced.
Why is this important? Well, the main difference between AMD-V and VT is that AMD-V is able to virtualize memory access in a much more transparent way. When AMD-V based VMs look to memory, they take a few cycles hit, but VT VMs get hammered by having to do a bunch of translations on the memory addresses. The speed difference is quite extreme, and it is why AMD had a huge advantage in VMM deployments for several years. With Nehalem, Intel has caught up.
Neither however is able to virtualize peripherals, and the prospects of doing so are fairly dim. If either side puts that capability into the CPU and chipset, you will also have to wait for peripheral makers to get up to speed. On the high-end enterprise side, things like multi-port NICs will probably get there first, but consumer widgets won't see it for a long time.
Until devices are all virtualization aware, you can't share them. VMMs have a choice, to hard assign a peripheral to a VM, or to present a virtual device to the VM. The hard assigning is a good way to do things if you have as many devices as you have VMs, but many VMMs don't support this, and I can't recall any client virtualization packages that do, much less ones that run on top of the OS like XPM.
The other way to manage devices is much more common, that is, presenting a virtual device to a guest OS. VMMs will have a set of virtual hardware devices that look like those in an older, generic PC - basically a lowest common denominator version of a NIC, SATA controller, sound card and GPU. As long as they are a subset of the currently available hardware, vendors should be able to craft drivers that work with both their hardware and the VMM.
Getting back to why XPM will be so broken, think about this in terms of the GPU. There tends to be one GPU per computer now, and that is unlikely to change radically in the near future. The Broken OS (Vista) and Windows 7 need a GPU to run their desktops at any speed worth mentioning, that is, they need 3D acceleration. While this may be a stupid design choice on the surface, it really hoses any VMs that need to run under it, and that's quite a lose-lose proposition.
Windows 7 will grab the GPU to run the desktop, and it can't share the device. If it were even possible, you could possibly assign the GPU to XPM, but that would mean you'd lose GPU acceleration for the desktop, CPU use would spike, and things would start to resemble molasses in the winter very quickly. This much brain twisting logic is unlikely to be implemented even if it could somehow technically work. Basically, the host OS, Windows 7, can and must own the GPU fully.
What does this mean? It means XPM will only 'see' a generic 2D video card, and if you are really lucky, it will see some basic 3D features. Want games to run? Nope. Want hardware accelerated sound? Nope. TCP/IP acceleration? Nope. Anything cool? Nope. You will be stuck with the virtual equivalent of a Best Buy special from 5 years ago, a PC that looks up to the blistering graphics power of an Intel 965 chipset.
To make matters funnier, all those virtual devices will take their toll on speed, so it won't run fast at all without very modern hardware. Add in the fact that you will need all of the resources to run Windows 7 PLUS all of the resources you need to run Windows XP. From what we hear, Microsoft recommends 2GB of memory for Windows 7, but then again, it also said you could run Vista in 512MB. Har har. Upgrading to Windows 7 on older hardware promises to be a very poor choice.
So, what you will get with XPM is not an XP machine but a bloated resource hog that emulates the worst of 2004. Slowly. It may be a good fit for green screen COBOL apps that won't run on the Broken OS, but that is about it, and you will pay for the 'privilege' in terms of resources used and speed of operation.
We won't get into the funniest parts (yet), but think about this, Microsoft is claiming that XPM will be able to interact with Windows 7 apps seamlessly. I don't doubt that it will be appear seamless to the user, but there will have to be some pretty horrendous low level OS contortions going on under the surface to make it work.
Do you think XPM will run in user mode or in a more protected mode? No cookie if you guessed that it will run in privileged mode, because the host OS will essentially have to hold 'Ring-1' to use hardware virtualization, and will use that level of access to pass data back and forth.
Can you say gaping security hole? Do you think people will remember to keep patching their XP Mode installations in the background? This is going to be fun to watch, as people install XPM, realise it is so broken as to be useless, and then forget about it. See the problem now? Microsoft sure doesn't, but then, I was sitting next to Alex Saint Croix when Microsoft's security chief compared all the security problems in a Redhat distro to the ones in only a Windows 2003 kernel. Microsoft doesn't care about security, never did, never will. Caring about security might cost it real money, and that can't happen.
In the end, XPM won't do what Microsoft is trying to make you think it will. It isn't XP, it won't run many XP apps at a tolerable speed, and you will have to spend a lot of money to find this out. It is simply another Microsoft scam that is being 'leaked' out by the faithful suckups in the PC industry press to create buzz and foster the illusion that Microsoft has an upgrade path for orphaned Windows XP users.
I can't say which is sadder, trade press abdication of responsibility, people not questioning what they're fed, or XPM itself. There is one thing that is quite clear, however. If you want XPM now, you can get there at no cost. Go download Ubuntu or Fedora Linux, and use Xen, VMWare or any other free VMM out there with your existing Windows XP licence. You will then have the same end result as using XPM, save money, gain security, and get off the Microsoft treadmill. The choice, and the money you will save, are yours. µ