Indulge me for a bit of background. Less than a week ago a colleague and I were talking about the possibilities of a virtualization system that would allow future versions of Windows to forgo all of the baggage of compatibility with, well, everything that has ever been written for Windows. One of the necessary evils of being the vendor of the world’s most widely used client operating system is that each new release needs some form of compatibility with software meant for previous versions. This is especially true with business applications that must run on the new OS before an organization can roll out the new platform. This was a major problem for Windows Vista when it was first released over two years ago; many applications weren’t compatible yet. This has largely been fixed by the vendors of those applications, but it was a formidable barrier to adoption of Windows Vista. Even if an organization or an individual wanted the benefits of Windows Vista, if an essential application that they needed was not compatible, those benefits had to generally be forgone, at least without some technical gymnastics that involved dual booting, running some additional OS virtually and managing two PCs in a virtual way, etc., solutions that are not for regular people.
Enter Windows XP mode for Windows 7, announced recently by the Supersite for Windows and validated by the folks on the Windows 7 team blog. For details on the technology see these entries; I’ll be talking about the ramifications here, not the minutia of the feature which is being covered by others. Okay, a little more background is necessary. Microsoft, for some time, has had a set of products available for larger organizations to manage their desktops in an efficient way. These tools are generally geared for organizations with large numbers of desktop PCs running Windows XP or Windows Vista to help reduce the cost of said management. The tools are part of a package known as Microsoft Desktop Optimization Pack (MDOP) and includes 6 distinct products. One of these products is called Microsoft Enterprise Desktop Virtualization (MEDV) which was added to the group within the past 6 months. This product addresses the OS/Application compatibility issue outlined above by allowing an organization to deploy a virtual machine running a different (usually a previous) version of the OS, and allow some applications to run in this virtual environment, while optionally hiding most of the virtual environment from the end user. Essentially, this let’s a user run an application that is not compatible with Vista on Vista. This is very important functionality for organizations to allow them to deploy a new OS even when not ALL of their applications run on it yet.
But, what about a typical small business user or an advanced home user? The Windows 7 team has just announced that functionality very similar to MEDV is being released as a free download for future users of Windows 7 Professional, Enterprise, and Ultimate editions. This feature, called Windows XP Mode, essentially allows a user to be able to install and use virtually any software that works in XP in Windows 7. The ramifications of this technology, and future versions of technology like this, are huge. Let me explain.
Windows, over time, has had to continue to grow as features were added, libraries and APIs were changed and added, etc. Because of the vast user base for Windows and the importance of backward compatibility, some technical tricks have been done over the years to try to keep new versions of the OS compatible as much as possible with old versions of software. Microsoft has been fairly successful doing this for quite some time, but this has come at a cost. Some of these costs are listed here.
- Change has been slowed. Even good changes have sometimes been cancelled or slowed because of the ramifications of compatibility.
- Continually growing compatibility layers (software in the OS that can trick applications into running in an OS that they are not compatible with have been added to each new version of Windows).
- Advancements in Application Programming Interfaces (APIs) have to bring along historical baggage of the old APIs (deprecated) to ensure compatibility with older software.
- Increasingly complex code base has to be maintained because of all of the above.
There are others…but you get the idea. Using virtualization is a big win for the OS because a cleaner break can be made between each release, if necessary, while still allowing the much needed compatibility. Because this can be achieved through virtualization, these other tricks can be at least partially abandoned which will result in new versions of Windows being cleaner, smaller, lighter, and more secure. This isn’t a panacea, though, as there are downsides to this type of compatibility as well.
- Additional resources, especially memory, are needed to make this type of virtualization feasible; you won’t generally be able to do this well on, for example, a low-end netbook.
- Even though much of the additional virtual OS is hidden from the user, it doesn’t mean it is not there. This leads to some questions of how that additional OS will be patched, if necessary, and weather or not it increases the attack surface of the computer.
- There is a question as to whether this type of technology will confuse end users.
Almost all of the downsides of this type of compatibility can be addressed by good implementation. The only one that can’t is the issue of additional resources needed to run the virtual OS. I believe that in most cases, this will be a non-issue going forward. We have already reached a point where increasing the power of the processor in a computer and increasing the amount of RAM available will have diminishing returns for MOST users. As the prices of hardware continue to decrease, we may have found a very good use for that extra power that almost all new PC’s have; virtualization. In addition, this extra horsepower is only needed when one of the “incompatible” applications is running. With most applications it won’t even be an issue.
So that leaves all of the possible drawbacks that actually can be minimized by a good implementation. A direct hit by Microsoft for this technology will be something that is easy (and automatic) for an end user to keep patched, and when installing Windows XP mode, or any applications that need it, a seamless and expected experience. We already know what the experience is like when running an application virtually like this, and it is quite good (i.e. the experience is essentially the same as running any other application). I am very interested in getting a chance to test this functionality from the perspective of an end user, and you can bet I will update this blog with my results. I’m very encouraged by what I see at this point, though.
So to bring this back around, I asked, and I received. This functionality has come earlier than I had expected, which doesn’t happen very often. Since I have only heard of the feature recently, I thought we would not see it until perhaps Windows 8, so I’m sure you’ll understand how pleasantly surprised I was to find out we would be beta testing this very soon. Here is a screenshot from the Windows Blog of an application running in this mode, and its icon in the start menu.
Make no mistake, this is big news for Windows 7, and the Windows platform in general. If the team working on this implements this well, it can, and will, change a lot of things going forward. Time will tell, but so far this looks like a big win for Windows users.