I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

April 26, 2009

Has The Virtualization Future Arrived?

On the eve of the Windows 7 release candidate, Microsoft announced that Windows 7 will include a fully licensed, virtualized copy of Windows XP:

XP Mode consists of the Virtual PC-based virtual environment and a fully licensed copy of Windows XP. It will be made available, for free, to users of Windows 7 Professional, Enterprise, and Ultimate editions via a download from the Microsoft web site. XP Mode works much like today's Virtual PC products, but with one important exception: it does not require you to run the virtual environment as a separate Windows desktop. Instead, as you install applications inside the virtual XP environment, they are published to the host OS, with shortcuts placed in the Start Menu. Users can run Windows XP-based applications alongside Windows 7 applications under a single desktop.

I've been talking about our virtual machine future for years. Shipping a fully licensed, virtualized XP along with some editions of Windows 7 has huge implications for backwards compatibility in the Windows world.

For one thing, Windows XP is ancient. While XP may have been the apple of 2001's eye, in computing dog years, it's basically.. dead. The original system requirements for Windows XP are almost comically low:

  • 233 MHz processor
  • 64 MB of RAM (128 MB recommended)
  • Super VGA (800 x 600) display
  • CD-ROM or DVD drive
  • Keyboard and mouse

It doesn't take much to virtualize an OS as old as Windows XP today. I was able to cram a full Windows XP image into 641 MB of disk space, and depending on what sort of apps you're running, 256 MB of memory is often plenty.

The attraction of virtualizing older operating systems is that it throws off the eternal yoke of backwards compatibility. Instead of bending over backwards to make sure you never break any old APIs, you can build new systems free of the contortions and compromises inherent in guaranteeing that new versions of the operating system never break old applications.

Modern virtualization solutions can make running applications in a virtual machine almost seamless, as in the coherence mode of Parallels, or the unity mode of VMWare. Here's a shot of Internet Explorer 7 running under OS X, for example.

virtualization: coherence / unity

From the user's perspective, it's just another application in a window on their desktop. They don't need to know or care if the application is running in a virtual machine. Substitute Windows 7 for OS X, and you get the idea. Same principle. Virtualization delivers nearly perfect backwards compatibility, because you are running a complete copy of the old operating system alongside the new one.

While the screenshot gallery makes it clear to me that this feature of Windows 7 is not nearly as seamless as I'd like it to be, it's a small but important step forward. The demand for perfect backwards compatibility has held the industry back for too long, and having an officially blessed virtualization solution available in a major operating system release (albeit as a downloadable extra, and only in certain editions) opens the door for innovation. It frees software developers from the crushing weight of their own historical software mistakes.

Posted by Jeff Atwood    View blog reactions
« A Modest Proposal for the Copy and Paste School of Code Reuse
Optimizing Your Wallet »
Comments

Well, I'm sure happy that I'm running an operating system that's basically... dead.

Just An Australian on April 26, 2009 8:09 PM

Dude, the only reason I run XP natively is games! I could care less about Vista or Windows 7 or virtualization. XP will run my games faster that any of these OS’s and with the right resolution and sound that I never have to worry about with the other OS’s.

Mitch on April 26, 2009 8:10 PM

Hello? OS/2? Is that you?

Jim on April 26, 2009 8:13 PM

Even tho benchmarks from the last Windows 7 build shows some games running faster in Windows 7 than Windows XP.

Mitch = fail.

Phillip on April 26, 2009 8:14 PM

Would it be nice to have a small OS that let you run virtual machine on desktop? In the world of 1TB costing less than $100 and having 8 GB memory is common, I would love to run Windows, Mac OSX and Linux on the same box. Any you would not have to worry about the upgrade failing. You can just clone the vm disk image. I am really thinking about buying MacPro and running Windows & Linux...

Michael Lee on April 26, 2009 8:17 PM

No, this isn't an indication of a virtualized future -- this is Microsoft using Apple's idea from early versions of OS X, where you could run a virtualized copy of OS 9 in the OS.

Silas Snider on April 26, 2009 8:18 PM

> it's a small but important step forward

That's HUGE news. It means that Microsoft, more than anyone, is freed from the backward compatibility yoke. This could give them a big competitive advantage and significantly speed up the development cycle for future versions of Windows.

Dennis on April 26, 2009 8:19 PM

Jeff, you have a Mac now? :P

Brian L on April 26, 2009 8:29 PM

So XP is dead because it doesn't demand enough hardware?

John on April 26, 2009 8:32 PM

Wow, what a notion.
I am practically speechless.
XP will live on...

Techbender on April 26, 2009 8:34 PM

Good for Microsoft, but what about developers? If there are major architectural changes, I wonder if we'll have to maintain multiple versions of software.

Antonio Rodriguez on April 26, 2009 8:35 PM

Hey Phillip - X-Fi under Vista, even with Creative ALchemy is still an issue for many games, including GRID, which I happen to play. Btw, show me the benchmarks or it never happened… And I will be more generous then you and spare you the insult back.

Mitch on April 26, 2009 8:39 PM

Is it that I am reading it wrong or misinterpreting it? Microsoft 7 is bundling virtual PC with XP over it and also provides the feature to add shortcuts from the virtual PC.
The applications running would still be running over XP and visualization provides all the compatibility. Where is the question with backward compatibility here?

Gowtham N on April 26, 2009 8:51 PM

With many projects (as far as my experience let me know) starting over from what was learned from past mistakes usually leads to better products, how often it can be heard that "the new engine was totally rewritten". But with software as a OS the burden of past mistakes is mostly always carried. I think it is quite refreshing to hear that Windows is having the chance of some sort of "clean slate" to start over.

Miguel López on April 26, 2009 8:56 PM

Will work great for a one time revamp - but may become trickier to manager every time they decide they need to rewrite the windows API removing any existing backwards compatibility. At least MS picked XP (I would have thought they could have used this as an excuse to ship more copies of Vista)

Keith Deane on April 26, 2009 9:16 PM

XP forever.....:p

aaron on April 26, 2009 9:27 PM

@Mitch

Sorry to burst your bubble but windows 7 does preform better than xp especially with more ram as since vista Microsoft added functionality that allows windows to use larger amounts of ram better, that coupled with windows 7 being so much more polished it ends out faster.

Mark on April 26, 2009 9:29 PM

I feel XP is more of a Zombie or Vampire, or your choice of undead. Microsoft has been trying to kill it for years, but it's still roaming the world, eating brains... mmm what I meant to say is most large enterprises and companies still use exclusively XP, I've yet to see a large company switch to Vista...

Besides XP is a rock solid undead by now, no way it's going to die before the turn of the decade. Oh and all those little laptops that are all the rage nowadays are better with XP....

anyways you get the point...

Robert on April 26, 2009 9:30 PM

thanks for this usefull informations..
now i find what i want to know..
thanks so much..

Kampanye Damai Pemilu Indonesia 2009 on April 26, 2009 9:33 PM

So now I'll have to keep up with critical updates in Win7 and also in the embedded XP VM? :)

Oliver on April 26, 2009 9:40 PM

Well Mark, like I said to Phillip, show me the proof... I have Windows 7 Beta on a dual boot with XP and under the 4 games I regularly play, the performance is not even close, (yah with 4 gigs RAM, so what) and for 2 of the games, they are just unplayable due to sound glitches, freeze-ups, etc., = unplayable. Aside from Windows 7 driver issues, XP is proven for games - Windows 7 - not even released and you are saying it is better – r u and Phillip shills for MSFT?

Mitch on April 26, 2009 9:43 PM

"The original system requirements for Windows XP are almost comically low"

The original system requirements for XP are completely unusable in this modern world. I have an PC with triple those specifications and it's too slow to be usable. Modern software is just that much more intensive and XP has scaled very well to it. Microsoft is just lucky that we need to go 64bit otherwise they might have been in the shadow of XP forever.

Unlike everyone else, I'm not falling all over with praise for Windows 7. I'm not saying it's bad, I just *don't care*. I just want to run my applications and I quite comfortable in my old XP shoe. Eventually I'll need a few more megs of RAM and I'll have to get Windows 7 and that will be that.

AlmostAlive on April 26, 2009 10:05 PM

Don't you want a machine that supports Super VGA...?

It's hard to argue with, I mean, it's Super!

Timothy Lee Russell on April 26, 2009 10:14 PM

As Silas said above, Apple has been doing this for years. The virtualization future, as you call it, arrived eons ago. It's just silly to tout this around as a novel concept. What's ridiculous is that it's taken Microsoft this along to wake up and smell the virtualization coffee. The end result has been an antiquated patchwork quilt of an OS that has already induced hordes of former Windows users to seek greener pastures.

I'm glad MS is finally seeing the light, but for many folks this is just too little, too late.

Justin Mayer on April 26, 2009 10:30 PM

I seriously doubt we'll see any change in the backward compatibility story in Windows. Windows is more than a client OS, and I just don't expect that much divergence between server and client Windows builds. The big issue will be when Win Server no longer supports a WOW subsystem for 32-bit software.

I suspect this (XP Mode) is more of a sop to those dependent on desktop abandonware that won't have the chance to ever be updated. The appcompat shims can do a lot, but filesystem and registry virtualization in particular are problems for some legacy software.

Old Joe on April 26, 2009 10:35 PM

But why do this now? Isn't Windows 7 basically a slightly improved version of Vista? Why not fix some of the real issues with Windows and implement that *then* (such as getting rid of the Registry). Will we end up with several of these virtualizations? Will Windows 8 run XP *and* Windows 7 for backwards compatibility?

LKM on April 26, 2009 10:58 PM

I'm not convinced that this move will lead to better software in the future. Until now, there was no way to stay in business without updating your applications to the newest OS version. This step might lead to lazy updates or no updates at all. And - thinking on a bit - what will the windows world look like in ten years? Will we have a virtual version of virtually every windows since XP? Or do you just get another grace period of 2 years before your XP-and-not-Vista-compatible applications will finally die?

JohnB2007 on April 26, 2009 10:58 PM

Um, this has been happening for ever.

On OS X I've been running VMWare with images of the deployment environments, and Parallels for testing with Windows XP.

Virtualisation is how we've been running all of our servers for ages. Massive boxes divided into many virtual hosts. It changes the TCO considerably.

Most of the "cloud" is actually just an extension of virtualisation technology.

Toby Hede on April 26, 2009 10:58 PM

We're still using XP at work. Why? Because practically none of those special programs required by our users work on Vista. The XP virtualization is a good move on Microsoft's part.

paxed on April 26, 2009 11:06 PM

This isn't exactly a new idea to Microsoft. Hey, on Windows 7, will NTVDM be running inside the XP machine, so 16-bit apps run under virtual DOS in the virtual XP?

Because, whether XP is "dead" or not, I'm afraid many big companies, including one I currently work for, are still running 16-bit apps on their thousands of XP machines...

Matt Gibson on April 26, 2009 11:24 PM

An OS is simply a platform to launch the apps I want.
Explain to me why I need Windows7 or XP over Win2K ?

Since Windows 7 comes on DVD, apparently they are trying to set a new record for bloat in laziness - need backward compatibility, eh we'll just throw in a 600meg install routine for that, needing it's own 2gb in hard disk space and 512mb of ram.

_ck_ on April 26, 2009 11:39 PM

"Explain to me why I need Windows7 or XP over Win2K ?"

I can't, because I don't know what you're going to do with your computer.

In the case of what I do - music production - XP64 is dead in terms of driver development, and I'd like more than 4 gb of internal memory so I can use big orchestral sample libraries.

Those 2 gb you complain about fit on a USB stick with a memory chip the size of my thumbnail. They won't move anywhere once they're installed, and they're a blip on the radar of your 300 GB harddisk. It's not even much on an 80 GB harddisk, which is right now the smallest/cheapest you can get (yes, there's a few 40 GB ones left, but they cost more).

Rob Janssen on April 26, 2009 11:50 PM

Another good news, according to the screenshots: The next version of Virtual PC will support USB Media (at least mass storage) sharing. Hoooray!

Timo on April 27, 2009 12:04 AM

Rob please stop, we are not kids right ?

Windows Vista or Seven just can't compete with 10 years old Windows XP, I tried them all and XP is faster on my high end computer.

Anyway, why so many people think that XP is faster only on old computers? Whats the logic behind?

XP is maybe dead officially, but it will live at least few more years and be FASTER then seven.

Now you prefer Seven, that's your right, lot of kids like Aero ! Just be honest with yourself, there is NO evidence of Seven being faster or whatever except ... MS marketing :)

Adnan Doric on April 27, 2009 12:05 AM

While this is quite an interesting development (especially if you want to make the hop to a 64bit OS, where backwards compatibility is more of an issue), I think the reason Microsoft have shied away from this in the a past is for reasons of application interopability - I'm guessing a virtualized app may just about to be able to copy and paste to/from the host OS but I suspect anything more complex than that will be a no-no.

In a mac environment I doubt there is the expectation of interopability, whereas for two windows apps running on the same machine - one 'legacy' app in a virtualized environment and one in the 'real world' - some people may assume to be able to use them together as they had done on their old XP box, which may not necessarily be the case. I can certainly see why MS have kept the Luna theming on the XP to differentiate the two worlds.

Mal on April 27, 2009 12:21 AM

I'm not sure if this will be such a major shift. Microsoft will (hopefully) still do whatever it can to keep new versions of Windows as compatible as possible, if only to make it easy for ISVs to support them.

Also, if people can't run their existing software on Windows 7, they will blame the platform, not the software. I for one wouldn't be happy to buy a new OS just to have to run my existing software in a VM environment.

Apple cares much less about backwards compatibility than Microsoft, and I don't think their platform is better off because of it.

Frederik Slijkerman on April 27, 2009 12:40 AM

To people up there:

Since when minority became majority?

Maybe wherever you are is the center of the world. Or maybe your world is an image of the whole world.

zefi on April 27, 2009 12:52 AM

The last couple of screen-shots show it in a seamless Unity/coherence like mode.

It also shows that apps can be run with shortcuts in Win7 launching the application in Virtual XP.

I wouldn't want it much more seamless than this, as you want to discourage this user behavior [http://www.codinghorror.com/blog/archives/001237.html].

-Perros-

Perros on April 27, 2009 1:21 AM

Gimme XP until Win 7 become stable :)

Sarath on April 27, 2009 1:25 AM

One of the greatest and most seamless virtualization products was nearly invisible: Apple's Rosetta technology (<a href="http://www.apple.com/rosetta/">http://www.apple.com/rosetta/</a>), which allowed PPC binaries to be run on an Intel processor. This was the key to Apple's transition to Intel, everyone's investment was protected. The fact that there was a bunch of intricate technology under the covers making it happen was nicely hidden from end users. To this day I don't know which of my old apps is PPC only, and which are Intel versions.

If Microsoft can perform the much easier trick of supporting all XP software under Windows 7, it will be huge for them. Worry about compatibilty of existing apps held off a lot of users from even trying Vista.

Ole Eichhorn on April 27, 2009 1:33 AM

Is this the first time you've heard about virtualization? I know you back linked to something saying it isn't but based on this post it seems like it is. How is this the virtualization future? This has been around for several years now, just because Microsoft is offering it as part of some licensing ... wow ... big deal. Are you going to start posting on every minor advancement in patent litigation now? As far as running an application in a windows form such as your screenshot, well that's been around for awhile too.

As well, virtualization doesn't really offer perfect backward compatibility at all, not once you get away from trivial examples. What if you have an application that does not run well in a virtualized environment or that needs to interact with many other applications? One writing tip I can offer is that just because you bold a statement like "throws off the eternal yoke of backwards compatibility" doesn't make it true.

Again, as far as the real world is concerned, this is just a licensing change for something that has been a possibilty for a good while now. Maybe you're just now seeing it; I guess its kind of "neat." The reality is this solution is a bit clunky for average users, or average business users for that matter.

Another thing, I must say one thing that is much more comical than the *minimum* system requirements of Windows XP is for someone who is supposedly a programmer judging an operating system's viability by it's minimum system requirements. Honestly, that's sort of stupid.

Eh, anyway. Logic is hard. Let's go shopping. :)

Charles on April 27, 2009 1:36 AM

It will be neat if this will allow multiple XP images each tuned to a specific task because the biggest performance hit that I see with XP is the slowdown when lots of applications have been installed.

dan on April 27, 2009 1:40 AM

XP is *good* because it uses few(er) resources. We are stuck with 32bit machines at work (which means a max of around 3.2GB RAM), and as such, when running firefox, glassfish, netbeans, and various other tools I need for my job it runs slowly enough. I wouldn't entertain running Vista.

And with the upsurge of interest in Netbooks, XP is an ideal OS for windows users - it would be insanity to put (>=) Vista on it. In fact I run Fedora Linux on my Netbook because it is less resource hungry than XP.

Anthony Roy on April 27, 2009 1:59 AM

I'm not convinced old API's will be removed from windows the reason being this will still mean programs moving from running natively in windows 7 to having to be virtualized in windows 8 or later.

I suppose if the virtualization was completely invisible to the user then yes but currently I assume you have to do something like go to properties on the shortcut and tick run in virtual xp mode or something. I know lots of users that would never work this out.

pete on April 27, 2009 1:59 AM

Is it a big deal? I guess. There's always weird apps that don't run on versions of windows except those they were designed for (MATLAB7 not running on Vista caused my company endless headaches), so a complete virtualization solution would be nice, I guess. It's one of the main reasons why I haven't upgraded to Vista (and the code we licensed doesn't run on any version of MATLAB except 7, huzzah).

Your average consumer won't care, but your big companies (with their custom apps) will.

Bill on April 27, 2009 2:04 AM

I just wonder if the virtualized XP will then get the same administrator rights warnings and run into a wall because the hosting Vista - i mean 7 - keeps a shadow copy of an important file.
Either XP is a loophole to 7's security or it will be just as usable/unusable as the rest of the OS.
And at least to me usability was the main reason to stay away from Vista.
So i guess, if you want XP - a virtualized XP is no reason to buy 7 unless you're ok with 7's system management in general.

Stroboskop on April 27, 2009 2:35 AM

I just have to comment on "The original system requirements for Windows XP are almost comically low", I think OS requirements should be low. Compare to Damn Small Linux, which only requires a 486DX (http://damnsmalllinux.org/wiki/index.php/Minimum_Hardware_Requirements). I remember seeing Vistas requirements and thinking "if the OS needs that much processing power to run, how much is left for my apps?"

OSes should require as few resources as possible, so that all the power is reserved for applications.

Ståle Undheim on April 27, 2009 3:19 AM

If only it would run our games *faster*. Or at least at the same speed as XP. Give me that and I might upgrade. Make it faster and lots of gamers will want to update. But I don't see it happening.

Carra on April 27, 2009 3:26 AM

I prefer XP for usability reasons. The Windows 2000 interface (disabling the XP theme) combined with the XP explorer, XP control panel layout and XP start menu is my favoured environment for configuring the OS, simple file manipulation and starting applications. (Outside of that I mostly live in Cygwin rxvt terminals.)

It's this interface, i.e. the GUI, that is the reason I haven't switched to Vista and probably won't switch to Win7. I'd love to get the Vista or Win7 kernels with the Windows 2000 interface and XP start menu + explorer. That would be my ideal OS.

Barry Kelly on April 27, 2009 4:17 AM

>>>The original system requirements for Windows XP are almost comically low:

Why is that a bad thing?

Kale Kold on April 27, 2009 4:21 AM

Do you really get a discernible difference when playing games under Win 7 from XP?

I might drop a couple (and I do mean 2) frames per second if I don't have V-Sync on, and I don't notice any drop at all with V-Sync. All speed loss when playing games that have been recorded have been minuscule for people who actually have a real gaming rig. Certainly not big enough to effect game play or perceived performance. Just because the numbers say it runs slower, doesn't mean it make a blind bit of difference to you in reality.

Nik on April 27, 2009 4:24 AM

It seems like this is a good opportunity to popularize the idea of a version of IE that runs in a VM and that always refuses to save state when you close it.

Want to run insecure ActiveX controls? Go right ahead! Visit spyware infecting sites? Go ahead! Visit a site that exploits IE and gains root access? Go ahead! When you're done, everything magically disappears and your host is perfectly secure.

I have to imagine Microsoft is envisioning this scenario.

Jeff Moser on April 27, 2009 5:29 AM

It's been asked in every other comment I know, but, even so, it bears asking yet again - how in the flying fuck are low requirements are a bad thing?

Schmoo on April 27, 2009 5:33 AM

"Windows is more than a client OS"

I knew I'd get a good laugh out of these comments if I just read for long enough.

Kenny Bracey on April 27, 2009 5:46 AM

@Barry Kelly

You know both Vista and 7 support the classic Start menu, have the classic layouts for the control panel, can disable Aero to get the Classic Theme. The only gripe I have about explorer in Vista/7 is that when you are viewing a network share or USB device it tends to lag a little, where in XP it just shoots right over to where you asked it.

-my 2 cents

pferland on April 27, 2009 5:51 AM

After reading some of the comments here I can't help but wonder when are people going to stop clutching onto an OS that is almost 10 years old and move on?

Scott Beamer on April 27, 2009 5:55 AM

I am enjoying the nerd outrage over Jeff seemingly implying that low system requirements are a bad thing. He isn't saying they are, just that they are ridiculously low in 2009, a time where a 1Ghz system is considered very low end. In the Win98 era, Windows 2000 used to be regarded as bloated. Then a year or two passed, and XP supposedly would never catch on because it was way too bloated. Oh yes, the sages at Slashdot insisted that this was MS's final operating system and that the public would revolt and choose Linux and they'd finally have their day.

And, now, here we are insisting that XP is lean and mean by implication. How soon we forget. Note that most of these comparisons involve using Task Manager to measure free memory immediately after boot - which is flawed in several ways:
1. working set size correlates with memory usage, but it is not the same thing
2. even if it was actual memory usage, you're essentially arguing that memory should be not be used for anything but applications: "Disk cache? Those wasteful MS programmers, who uses that?"
3. you want new features and somehow also want less memory usage in the process. Generally, it doesn't work that way. Things like Aero are not free wrt memory usage.
4. OS X isn't lightweight. Nor is Ubuntu 8.10.

Anyway, sorry to ruin the party with those pesky things called facts...I'll be going now.

Matt Green on April 27, 2009 6:02 AM

It's certainly a step in the right direction, although I'm a little disappointed by the limitations.

As I see it, it should be bundled and available for all versions of Windows 7, simply because full homogenity and availability makes it easier for everybody. I'm what you'd call a power user, but I'm not sure which version of Vista I'm running (I assume it's Business, but I'd have to check). I'm certain my mom wouldn't even know how to check.

Then again, I also think Windows 7 Starter should be a free download. As I see it, it would be very cheap for Microsoft to distribute (especially if also offer as a torrent) and it could limit Windows piracy and the proliferation of Linux on desktop. Windows 7 Starter is the very definition of a demo version, it should be free.

Well, actually Microsoft should charge whatever the distribution costs are, but it's more expensive and far less convienient to charge $1 than to make it free.

Pies on April 27, 2009 6:03 AM

As several people have said - Mac OS X has been doing this for years in various forms (first to let you run Mac OS 9 apps, then PPC apps, then Windows apps).

The real problem is that anything that needs access to your hardware sucks balls. Games don't run well (if at all), audio software often fails miserably, etc. Now theoretically Microsoft can do a better job on this, but considering that the main reason many people still run XP (aside from the ridiculous price point for Vista "Ultimate") is for the speed boost in gaming, I don't have high hopes.

I think it's a great idea - I think they should have done it years ago. But it's not a new idea, and it has limits.

Mike on April 27, 2009 6:35 AM

XP is not dead. It's very much alive. Vista is the one that seems dead to me.

Billkamm on April 27, 2009 6:54 AM

I agree with you Mike. I've been using the Windows 7 Beta for a few months now and have problems with:

1) My Creative Augidy 4 soundcard (you have to manually set what bitrate to run at in the settings to stop it playing sounds as though they're underwater after about 20mins of use).
2) I suspect there's an issue with the power saving options because occasionally when I wake my machine after its been idle for a while, it'll blue-screen and reboot!
3) The NVidia drivers frequently crash although Windows 7 often recovers and just tells you they went pop.
4) Solidworks 2008 doesn't work in Windows 7 - you have to launch it in 'Windows XP' mode which has some fairly irritating implications for it's rendering (you end up with all sorts of graphical oddities).

Virtualisation can solve a lot of issues*, but what you gain in compatibility fixes you lose in speed. I'd be suprised (and extremely impressed) if programs running in virtual XP weren't a LOT slower...

*I have a server which runs Ubuntu and I use VirtualBox to host a windows xp install so that I can use a tv card and some webcams which won't work natively under Linux due to a lack of driver support!

Jon Cage on April 27, 2009 7:10 AM

Well, I guess that XP really is the new Classic now (and yes, what everyone said: "having an officially blessed virtualization solution available in a major operating system release", that was exactly Classic (MacOS 9) on Mac OS X; nothing new here).

In my not so humble opinion, they should have done this long ago with Vista, allowing Vista to be a cleaner break: making full changes instead of half-made changes, and clearly not supporting some limited configs, thus avoiding the whole "Vista Capable" fiasco; you may say virtualisation doesn't help with the second scenario, indeed for that they should also have kept XP in active duty, in parallel to Vista, and have a gradual transition (I mean, come on, if your OS that comes 6 years after the previous one manages to have actual system requirements that exclude some systems shipping at that time, even when not counting netbooks, making the system requirements gap even larger, you might wish to, you know, consider a transition period; and a transition period that's not an unprepared oh-crap-people-are-complaining-let-XP-live-a-bit-longer scenario). The fact they're virtualising system N-1 in system N+1 tends to suggest that maybe system N would have benefitted too...

Plus this Virtual XP seems like an afterthought, put afterwards to appease people, or rather, who am I kidding, corporations: on top of that it's limited to only some SKUs, some if a program breaks under 7, the developer of that program can't assume everyone will have that Virtual XP safety net, so he can't rely on it while he fixes/transitions his program to 7.

Seriously, Microsoft has been unable to correctly execute a single transition in the 24 years of Windows. There has been Win16 to Win32, and 14 years after Windows 95, it's not complete (Win 9x to Win NT doesn't count as, while impressive, it was an underlying implementation change that didn't significantly impact the APIs, not a transition, in the sense that third-party software did not have to change; perhaps it should be counted as a transition so good it wasn't even a transition, but anyway it wasn't a transition). In the meantime, Apple? Three transitions (68k->ppc, MacOS 9->Mac OS X, ppc->Intel; the latter not being complete yet, but ongoing). While it would be beneficial for everyone if Win64 was more widely used, where is the push from Microsoft for the legacy Win16 and DOS programs (which don't run in Win64, by design of x86-64 and its long mode) to be rewritten/replaced? Need I remind you how well Microsoft prepared everything with everyone in the industry for there to be good driver support for Vista at launch, especially for 64-bit Vista? Etc, etc.

In a completely different discussion, while it can be a solution (or part of it) virtualisation is hardly a panacea. As was clearly seen with Classic, even with integration à la Unity/Coherence (which Classic had), this virtualised environment is seen like a ghetto: some external hardware can't be accessed; while there is some interoperability with apps in the main OS, it's limited; some other stuff (no support for Mac OS X super-long file names; an app crashing inside Classic threatens Classic and all apps running under it) was specific for Classic/Mac OS X, but I'll bet there will be stuff specific to that Virtual XP as well. Moreover, since the developers of actually maintained applications won't want them to be in such a ghetto, they will want to update for the current OS, so it's better for, once in a generation, excising all at once the legacy parts of an OS and then rebuild a modern platform, not for making the platform a moving target with each major release as then you basically don't have a platform any more. Not saying it's a bad thing, but it's a far cry from the "virtual machine future".

Pierre Lebeaupin on April 27, 2009 7:25 AM

-Not saying it's a bad thing, but it's a far cry from the "virtual machine future".
+Not saying Virtual XP is a bad thing, but it's a far cry from the "virtual machine future".

Pierre Lebeaupin on April 27, 2009 7:30 AM

Microsoft is *learning*! :D

However, as crazy as it may sound it took several years for me to move from 2000 to XP. For the first several years there were no advantages and many disadvantages.

The same was true from XP to Vista, and I am sure it will be true from Vista to ... whatever this will be called.

Having the old version available and integrated will make skeptical people like me able to adopt newer software more easily. I think this is a great move. This will make it so that all my older (and much beloved) programs continue to work.

Practicality on April 27, 2009 7:35 AM

It's so funny to hear you call XP ancient, and then ridicule it because of how LITTLE resources it uses. Good God. Someone give Jeff an operating system that requires 8GB of RAM so he will shut the hell up.

Josh Stodola on April 27, 2009 7:36 AM

"233 MHz processor
64 MB of RAM (128 MB recommended)
Super VGA (800 x 600) display"

ahahahhaaaahahaaaaahaha
you working for ms?

wakeupcall on April 27, 2009 7:44 AM

Large enterprises will likely wait and see to find out how policies and configurations are being pushed to that environment. It is one thing to maintain backward compatibility for "legacy" applications, but if the transition is poorly made (for example, if there are no registry pass-throughs), sysadmins will in effect be managing two, rather than one, OS per desktop, with more headaches and causes for concern.

Beyond management issues though I am thrilled by this; it will free up the Windows platform to move forward.

Louis-Eric on April 27, 2009 8:03 AM

Hmm, interesting. I wonder will it access the same disks, like the MacOS 9 virtualisation on pre-10.5 MacosX, or if it will behave more like Virtual PC at the moment.

Robert Synnott on April 27, 2009 8:03 AM

@Scott Beamer
"After reading some of the comments here I can't help but wonder when are people going to stop clutching onto an OS that is almost 10 years old and move on?"

Why? What reason do you have for wanting to move to the new OS?

Until there's a compelling reason, why change? Change for the sake of change isn't necessarily good.

sadnessbowl on April 27, 2009 8:09 AM

I see you play EVE-Online... right on brother.

matt kukowski on April 27, 2009 8:13 AM

Microsoft's move to virtualize XP is a move to prevent a repeat of the Vista sales debacle. Most businesses were not willing to move from XP to Vista. Many businesses perceived Vista as a sales gimmick and did not want to incur the cost of upgrades for little or no perceived value to the business. It is difficult to make a business case for replacing proven technology with what amounts to eye-candy. This is not the only reason for the dearth of Vista sales but it is a big one. This is why Microsoft is virtualizing XP and not Vista. It is trying to convince businesses that they will not have to replace their existing software inventories to upgrade.

In looking at the screen shots that Jeff linked to, it seam that XP mode is a full XP with XP security. If that is the case, that leads to two questions:

1. Will Microsoft continue to support XP in the virtual environment after the XP termination date?

2. How well is the guest / host isolation for XP under Windows 7? Will a compromise of the virtual XP allow the compromise of the Windows 7 Host?

Will on April 27, 2009 8:21 AM

This genius move will only drive more customers to Apple, simply because OS X offers far better integration of *any* Windows version (32 and 64 bit Windows versions) with OS X.

Bigger issue here is that virtualizing XP at this stage of Windows 7 development will not free us from all the crappy APIs. Windows 7, let's face it, is still Windows XP/Vista under the hood. It is not a new (or siginificantly better) OS. I am saying this based on released architectural information about new Windows OSes.

Apple is going multicore in a big way and Microsoft is advertising virtualized XP.

Can the gap between two visions of computing be made bigger than this?

BugFree on April 27, 2009 8:27 AM

My question is: will this "virtualized xp" recognize recognize the graphics card, or will it use a crappy 8 MB graphics card, just like the VirtualPC XPs? There are games that doesn't run in XP and not Vista (and Windows 7), and require more than a 8 MB graphics card to run properly.

arahman on April 27, 2009 8:28 AM

You can do the same thing with your development environment and version control.

Specifically: We check in everything -- libraries, tools, documentation -- so that we can grab a code snapshot from years ago and build the entire thing without once needing to find a now-ancient copy of some open source library.

IBM does one better -- check in the compilers themselves (and similar).

Jason Cohen on April 27, 2009 8:40 AM

They aren't doing this because of regular people, they are doing this for their corporate customers. The main reason they have to keep postponing the XP kill date is because big companies with large IT divisions are scared to upgrade their PCs, because maybe Vista won't work with all of their custom applications. Now they can finally say to the corporate guys that XP is dead, buy Windows 7 and you get XP to run.

Jared on April 27, 2009 8:41 AM

Robert said it best!!!
VVVVVVVVVVVVVVVVVVVVVVVVVVV
I feel XP is more of a Zombie or Vampire, or your choice of undead. Microsoft has been trying to kill it for years, but it's still roaming the world, eating brains... mmm what I meant to say is most large enterprises and companies still use exclusively XP, I've yet to see a large company switch to Vista...

Besides XP is a rock solid undead by now, no way it's going to die before the turn of the decade. Oh and all those little laptops that are all the rage nowadays are better with XP....

anyways you get the point...
Robert on April 26, 2009 09:30 PM

Rick on April 27, 2009 8:45 AM

My kids (teenagers) have tonnes of old games that they cling to and love, and play over and over again. You can never tell when some old game will get reinstalled and played all over again. For these games they need XP; virtually all them are known to have issues on Vista.

I haven't dared give them Vista, but maybe, with this amazing news, they could have Win 7 and install their old games in XP compat mode.

Andrew Webb on April 27, 2009 8:49 AM

Most of the things you listed there is not Microsoft's fault...and I suspect #2

Re: Creative, they're a terrible vendor. They actively refused to implement drivers for anything but their absolute newest cards for Vista. They've had effectively four years to do it, and they haven't bothered. That's not Microsoft's fault.

Re: NVidia: Give updating the drivers a shot. I had the same issues with my 8800 GTX until I actually looked at the little notice center that said there were updated drivers. Giving them a try, it went from version 7.28 something to 8.15. My games have been fast and smooth, without crashes, ever since. Again, that's on nVidia's shoulders, not MS.

Solidworks...oh baby. Yet another vendor that I wouldn't trust.

The one I agree with you on is the blue screen on hibernate...there's a good chance there's a bug in the beta for that. However, it's just as likely that your motherboard vendor has some new drivers out there to fix it...if you have a decent supplier for your own parts. (You did build your own PC and got reputable parts, right? :) )

When you write software that uses obscure hooks, incorrect calls, incorrect usage of Win32 tools and methods, when you squeeze another ounce of performance out at the cost of following practices that are laid out in the MSDN, you risk breaking your product. It's not Microsoft's fault that people abuse their API. It's C. C was designed for abuse, on purpose! C has all the speed and readability of a high...er level language, with (most of) the fun hooks and tools that you get with assembly. If you're not careful, if you don't understand exactly what's going on, and if you, as an application developer, don't very carefully follow the practices that you're told to follow as a developer, your product will likely break. That's on YOU, as a developer, NOT Microsoft.

Pre-emptive comment: I don't work for Microsoft, just develop on their platform. It's a huge, difficult platform to develop for, and there's lots that you can do wrong. There's two ways of dealing with those issues: find and fix them as they appear, or blame Microsoft. Guess which one is the right way to go, and which one is the way the majority of the bad developers choose to go. As far as I'm concerned, a bug is a bug is a bug, and bugs need to be squashed first. Microsoft has done everything they can to make sure that bugs, issues, and other problems in their BETA have been found before release with this new release. If your app doesn't work in Windows 7, there's a good chance a bug has been filed about it now, BEFORE Windows 7 releases. If they don't fix it, after months and months of knowing about the problem, then the developer is the one at fault.

Robert P on April 27, 2009 8:59 AM

@Mitch: You are absolutely correct. Windows 7 IS slower than XP when playing the games I play. And it's beta so it's not even a valid measurement yet.

And anyone that wants to have that original XP PC speed just install the base OS with ZERO updates and it will be blazing. Of course you'll probably be infected two seconds later...

Mitur Binesderti on April 27, 2009 9:29 AM

Does anyone know how this new virtualized XP will intereact with the hardware? Currently the only video card that Virtual PC can simulate is an old S3 Trio 32/64. It only does 2D and can barely handle a screensaver.

Random on April 27, 2009 9:30 AM

@Jason Cohen: Thank you! I've been trying to explain that to people and no one seems to get it. If you have ALL OF THE PROJECTS IN YOUR SOLUTION THEN YOU WILL ALWAYS HAVE ALL OF THE PROJECTS IN YOUR SOLUTION! If you don't have the source code add ALL DEPENDENT NON-SYSTEM DLL'S IN AN ASSEMBLY FOLDER!

I hate it when you download some code off the net and the jerk hasn't bothered to save some external DLL in an assembly directory or worse is linking to multiple mystery meat libraries that you have NO IDEA where or how to get.

Mitur Binesderti on April 27, 2009 9:33 AM

233MHz and 32MB RAM?

Oh please! I have an old Notebook with 512MB RAM and it was a PITA when one RAM slot failed: 256MB is not enough and I was just surfing with Firefox an 2 tabs! Half a gig of RAM and 1GHz CPU is good for every day work but please don't believe this 233MHz/32MB RAM marketing bla bla.

Tob on April 27, 2009 9:41 AM

XP may be old, but it is still sufficient.

My $WORK machine runs XP 64 on a quadcore 8GB machine, and I see absolutely no reason to change to Vista or Win7. I have a 24" iMac at home (nice for multimedia stuff, mostly silent, looks great), but for work (mail, office, and eclipse - no multimedia or 3d), XP is fine.

Markus on April 27, 2009 9:58 AM

Stop blaming XP for Firefox's poor memory usage.

Meh on April 27, 2009 9:58 AM

XP runs on more hardware than Vista or Win7 simply because it has less requirements

XP runs more software than Vista or Win7 because many are not compatible with Vista/Win7

XP can be run in a virtual machine on Linux or MacOS so why am I buying Win7?

If I run XP in a virtual machine it is likely the hardware I am trying to be compatible with will not work since the VM does not support it ...

My point is if I am running XP on a machine why would I upgrade to a system is less compatible with the software and hardware I already have? If I am buying a new PC there is a small incentive, but even with that I still want to run all my old software, and in some cases access old hardware.... with Win7 it seems I have to upgrade everything?

Jaster on April 27, 2009 10:03 AM

This is wonderful news since badly-written programs will be guaranteed to work for just about forever, as long as they worked in XP.

Where I work we have an outdated program which is mission critical, costs way too much to upgrade to the newest version (and would require a whole new server just for that, in the process...) and has known issues running under XP. For this reason, and this reason alone, we still have Windows 2000 on a majority of our computers. Were Microsoft to have the ability in Windows 7 to run programs in a Windows 2000 virtual machine the way they'll apparently be able to in an XP machine, we would be all set forever. As it is, the longer we run that app the scarier it gets.

Oh, did I mention the bloody app calls home when it's started, to verify we're properly licensed?

Rodney on April 27, 2009 10:12 AM

The main problem with Windows is it's shell. That is where 70% of the slowness comes from. The other 20% is the huge amount of services that are started on boot. Seriously, if you disable all that trash your computer could run (and boot) a lot faster.

Another problem is the default settings, they kinda suck. Ask any computer savvy person, they can't use their windows boxes without a few configurations.

Just as a side note, I think that the shells available on linux are far worse than the windows XP shell. The shell should have the least features possible and keep it simple in order to not deviate attention from the application running.

Hoffmann on April 27, 2009 10:31 AM

And don't forget Seven's (and Vista's) lurking secure digital path and other DRM movie industry sops that are due to be activated by MS sometime next year. XP doesn't have these.

Is Windows 7 an OS or an entertainment and marketing platform?
http://en.wikipedia.org/wiki/Criticism_of_Windows_Vista

Rod on April 27, 2009 10:42 AM

Microsoft still has to deal with one problem: Teaching their users about virtual machines. It may be something common for us techies but the average user may have never faced with one VM or understand what it is.

Pablo on April 27, 2009 10:49 AM

albeit as a downloadable extra, and only in certain editions

lol - there's always a catch!

Joe Beam on April 27, 2009 10:52 AM

"Anyway, why so many people think that XP is faster only on old computers? Whats the logic behind?"

On faster computers you can't feel the difference anymore, so XP only seems faster on older PCs. ;)

Vinzent Hoefler on April 27, 2009 10:53 AM

I have asked this multiple times and still have not received a good answer. What software are people running that cannot run on Vista or Windows 7, and this does not mean drivers, or low level hardware software, such as defragmenters or partition changers?

I have run into a few games that have problems with Vista but the compatibility mode in Vista fixed that, no virtualization needed.

will on April 27, 2009 10:59 AM

I think it's kind of funny that people don't seem to understand what "requirements" means.

For the uninformed: system requirements specifies what hardware you need to be able to load XP _at all_. It doesn't mean it'll run great, or that you'll be able to run 20 apps at once. It means XP will not _start_ on any machine below the specified level.

To give you a "real life" example: there are certain requirements if you want to take part in the Olimpic games. But being accepted doesn't mean that you'll get any medals, or even that you won't come last. The guy who comes last did pass the requirements.

Pies on April 27, 2009 11:20 AM

Our company needed a patch and some support calls to get QuickBooks to run on Vista. It now works but it does have a few graphical glitches. It's not a driver or low level software -- in fact, it's extremely common business software.

AlmostAlive on April 27, 2009 11:22 AM

Is this the X-UA-compatible taken to the next level?

Why didn't XP come with 3.11? I prefer the 3.11 look of MineSweeper.

Berserk on April 27, 2009 11:25 AM

@Vinzent :
nope , even on the faster computer xp is better and faster , especially when there are hundreds of software.

adinochestva on April 27, 2009 12:12 PM

very interesting article.

KansasPowerball on April 27, 2009 12:26 PM

My website screams on Windows 3.1. Rock on!

Mark on April 27, 2009 1:14 PM

"Has The Virtualization Future Arrived?"

Yes, because Microsoft does everything so well.

AC on April 27, 2009 1:32 PM

In defence of the low requirements comment - lower requirements is indicative (though of course not definite) that the OS is doing less. Whether this is good or bad depends on what your perception of how useful the things the OS is doing are, which range from indexing and malware scanning to desktop image compositing for transparency effects.

If you don't want those things, then of course you are going to want the lower requirements. However I, and Microsoft certainly, are willing to bet that the vast majority of the users do want those things, whether they think they do or not, and so require higher requirements to reflect this. In this case lower requirements typically mean less features.

A gaming rig is atypical and you can't compare the merit and worth of an OS for general use by those standards.

[ICR] on April 27, 2009 2:19 PM

While I agree with the sentiment, there is nothing innovative or new here - Linux has shipped 'an officially blessed virtualization solution' for years, and you mention add-on Mac tools like VMWare without noticing it too has built-in virtualisation for older apps.

Tom Chiverton on April 27, 2009 2:31 PM

As someone else mentioned embedded virtualization was a very cool feature of OS/2 2.0.

Granted that was a long time ago. But it was powerful being able to create seamless windows running any MS-DOS/PC-DOS version or run any other real-mode operating system of its day. It eventually could run multiple copies and versions of Windows 3.x in virtual boxes when pre-emptive Multi-tasking didn't exist for Windows.

We have far more powerful virtulization today, but reading the news release over the weekend made me think back . . .

And no, I don't want to go back to those primitive days.

Rich S. on April 27, 2009 2:40 PM

*GASP* Not only does he rock at coding but he's an EVE Online player!!! EVE FTW! ;)

StevenMcD on April 27, 2009 2:44 PM

Believe it or not, this is not exactly a new thing. Microsoft already offers this type of virtualization with Vista. It's called MED-V. (Although no one seems to know that it exists.)

http://www.microsoft.com/windows/enterprise/products/med-v.aspx

The only difference with Windows 7 seems to be that it will be available to more of Microsoft's customers.

Myron A. Semack on April 27, 2009 5:15 PM

Ooh, will Raymond Chen be out of job? :P

nat on April 27, 2009 6:35 PM

I am glad to see that I am not the only one who doesn't rate his OS based on how much resource it requires in order to do mere basic tasks.

Keith on April 27, 2009 7:14 PM

I agree whole hartedly that old software that has few hardware requirements should be thrown out. Let's start with HTML, then progress through XML to ASP and finally all web technologies. The web has been around for too long and we need to upgrade to WEB2.0

But seriously - I don't understand the argument that XP is bad because it is old or because it uses few resources. How does the hardware requrement or age have any bearing on the quality or capability of a product? Isn't it like saying: "Stop driving your car and get a new one." Your current car is running like new, does everything that you want and the new car doesn't offer anything you would that your current car doesn't. The accessories you have bought for your car, like dash mat and seat covers, won't fit on the new car, so you will need new bits and pieces too. But your current car isn't new any more, so you have to upgrade. That doesn't make sense with cars but somehow it is okay to apply that logic to an OS??? I don't get it.


Most people don't use the OS much at all, they interact through web which is why the netbooks are taking off - stuff the local applications, just give me the Net!!! Based on that, the OS doesn't matter much.

I realise that based on MS development cycle there is an "understanding" that on launch an OS must have requirements above the average equipment currently available, and must run much slower on existing hardware compared to the current OS - but that's just Microsoft.


But the line that knocked me over was this:
"It frees software developers from the crushing weight of their own historical software mistakes."

Yes - after running for more than 10 years without a single modification it's been proven that I too have made the mistake of writing software that was too successful. I chose a language that was very popular at the time, but has no easy upgrade path. So I am left to eather re-write from scratch, go through a complicated conversion project or virtualise. Hmmm... when will I learn? Next time I will make crappy software that can be thrown out with the next OS.

Philip on April 27, 2009 10:57 PM

I agree whole hartedly that old software that has few hardware requirements should be thrown out. Let's start with HTML, then progress through XML to ASP and finally all web technologies. The web has been around for too long and we need to upgrade to WEB2.0

But seriously - I don't understand the argument that XP is bad because it is old or because it uses few resources. How does the hardware requrement or age have any bearing on the quality or capability of a product? Isn't it like saying: "Stop driving your car and get a new one." Your current car is running like new, does everything that you want and the new car doesn't offer anything you would that your current car doesn't. The accessories you have bought for your car, like dash mat and seat covers, won't fit on the new car, so you will need new bits and pieces too. But your current car isn't new any more, so you have to upgrade. That doesn't make sense with cars but somehow it is okay to apply that logic to an OS??? I don't get it.


Most people don't use the OS much at all, they interact through web which is why the netbooks are taking off - stuff the local applications, just give me the Net!!! Based on that, the OS doesn't matter much.

I realise that based on MS development cycle there is an "understanding" that on launch an OS must have requirements above the average equipment currently available, and must run much slower on existing hardware compared to the current OS - but that's just Microsoft.


But the line that knocked me over was this:
"It frees software developers from the crushing weight of their own historical software mistakes."

Yes - after running for more than 10 years without a single modification it's been proven that I too have made the mistake of writing software that was too successful. I chose a language that was very popular at the time, but has no easy upgrade path. So I am left to eather re-write from scratch, go through a complicated conversion project or virtualise. Hmmm... when will I learn? Next time I will make crappy software that can be thrown out with the next OS.

Philip on April 27, 2009 10:57 PM

Although I'm a big fan of Apple, the commenters who write that Microsoft have stolen this idea from Apple need a history lesson. Windows has been a virtual machine OS since Windows/386 came out in 1987. That took advantage of the 386 chip's new virtual 8086 mode to allow MS-DOS to be run in a VM.

John Topley on April 28, 2009 1:17 AM

It seems Microsoft always comes after Apple...

It is a known strategy to have the old OS virtualized somehow into the new one.

When Mac OS X spawned on PPCs back in 2001, it already had the Classic environment, i.e. (let's say) a virtual machine in which to let Mac OS 9 run freely, and it worked rather well.

So, nice to hear that MS has finally landed on VM planet to let users live with their old programs.

It seems they are gettin' better...

Scarlet on April 28, 2009 1:47 AM

@Robert P: Obviously writing drivers is up to the manufacturers of the hardware, and this is a Beta; I don't expect it all to work, I'm just saying that with a new or significantly upgraded O/S, there are always going to be driver issues. I wasn't trying to say those problems were Microsoft's fault, just that they are problems and the exist.

Apparently Microsoft changed the audio stack (I'm using Vista drivers in lieu of some proper W7 versions) which accounts for the sound card problems.

I'm using the latest drivers for the rest of the quality hardware I sourced (yes, I did indeed build the machine myself :-)). Windows update was reporting a new driver, but my installed version matches the number in their report so there's probably a version-checking glitch there.

Personally, I'm not sure I really trust Microsoft, but whether or not you trust a vendor doesn't preclude the use of their software. There's glitches, but it definitely has its advantages over other options.

I've read a bit more about the virtualisation and it sounds like it should at least try and give proper hardware access so perhaps it won't be as slow as I initially thought. I still think it's fairly likely that there will be problems when it comes to the interface, but I'd be extremely happy to be proved wrong ;-)

@will: Solidworks definitely has issues. One is that it appears to have problems hooking into the windows 7 dialog to browse for files. The other is that it has graphical glitches. Games and most other things seem to work fine though.

Jon Cage on April 28, 2009 2:39 AM

last!

Shady on April 28, 2009 6:05 AM

Given the large install base widespread popularity of Windows XP, and given that Windows 7 will provide full backward compatibility anyway, what incentive do software developers have to provide software that is built for full compatibility with Windows XP and Windows 7 (including Vista I suppose, in case that must be a consideration)?

Why would I not, as a software developer, singularly focus my resources toward building a solid application based on strict Windows XP functionality? I should be guaranteed to have complete usability with all Windows 7 users anyway. This of course assumes that I am not interested in any new functionality or features provided by Window 7 for my application, and that I have a need to reach the widest audience possible.


Roberto Lopez on April 28, 2009 6:09 AM

Virtualizing support for older OS versions is essentially the next step in a long process Microsoft has gone through to keep old binaries working.

In very old versions of Windows we had DLL Hell, where installing a new application would frequently overwrite shared DLLs (particularly MFC) and break existing applications. Current Windows OSes let the apps think they were putting their DLLs in a central folder but actually segregates them, so each app can keep the DLL versions it is happy with.

Similar things were done in the registry: you used to have apps clobbering each other, now they get their own "virtual" view of the registry contents which they can mess with.

So now we're just going to virtualize the old OS, so we don't have to worry about whether the old app will work with the new underpinnings.

Denton Gentry on April 28, 2009 6:21 AM

Seventh (non)Sense --- "I see dead OS!"
Jeff, did you meet Shyamlan lately?

Mohit Nanda on April 28, 2009 7:39 AM

Jeff, you are dead wrong. XP is live and kicking and I many ppl will stick to it for many years. As to my liking, I's the greatest OS ever.

alex on April 28, 2009 10:03 AM

This is not particularly good news for Microsoft. I won't say it's horrible news for them--they can weather pretty much anything--but virtualization opens up another can of worms.

I'm reminded here of Joel Spolsky's perspective that Microsoft's greatest asset has been that millstone around their neck, backwards compatibility.

http://joelonsoftware.com/articles/APIWar.html

If they're going to maintain compatibility simply by running a VM, suddenly they're no more Windows than Linux plus VMWare Player, or MacOS plus Parallels are; they're just a different OS with the same name. This is the corner that they've backed themselves into, and without backwards compatibility, they lose their primary selling point.

grendelkhan on April 28, 2009 12:29 PM

"The original system requirements for XP are almost comically low..."

That's not a bug, it's a feature. The fewer resources the OS needs, the more are free for actually DOING STUFF.

Nathan on April 28, 2009 1:00 PM

Isn't it the sign of a bad OS that it is resource hungry? Ergo, XP is superior to Vista an Windows 7. Vista is so universally hated that they have dropped the name. XP is so universally loved that they are moving to numeric naming convention so that OSes will be more obvious that something should be replaced.

Final note - in work environments virtual servers are all the rage. On one massive server you can set up hundreds of virtual servers. Increase the hardware requirements for the OS and suddenly you can't run as may virtual servers - exponentially fewer. So you have to pay more to do the same thing. How do you justify this to the powers that be?

Philip on April 28, 2009 3:58 PM

Others have already said this, but XP is far from dead. It is still the #1 installed OS in corporate settings, and will stay that way for the foreseeable future. There is really no reason to upgrade. XP offered stability, the last hurdle to office productivity. Vista offers a 3D desktop... In other words there is no silver bullet for Vista or Windows 7. Long live XP.

razmaspaz on April 28, 2009 8:17 PM

why the "Enter the word" validation code is always "orange"?

Beck on April 28, 2009 10:04 PM

XP still rules!!

even the 64bit version of xp is great

ashvin on April 29, 2009 5:49 AM

XP is dead and must keep dead, because the current (and dysfunctional) economy is moved in the basis of "use and toss" or more likely a "buy, rinse and repeat".

Of course, in the viewpoint of the customer, you don't want to mess with a operating system almost every 2-3 year. It is INSANE, neither Sparta. :-(

Anyways about speed : Windows Vista < Windows 7 < Windows XP (and curse some benchmark that show that windows 7 is over xp).
So :

Windows XP Virtualized < Windows Vista < Windows 7 < Windows XP. So, if you want XP then stick with the real stuff

magallanes on April 29, 2009 6:56 AM

It's a shame that that Jeff's post on virtualization has been hijacked to become a OS flame war, based on a single, off-hand remark. C'mon guys, we already have slashdot.org for trashing Windows, so go there for that. Let's keep this on topic!

I like that fact tht virtualization is becoming more and more part of the OS and thus more mainstream. I use it a lot for testing and it's just one of the most amazing things that's happened in the computer world in the past few years. Especially since we're now at a stage where "it just works", where a few yhaers ago it was still more voodoo-ish.

Dennis on April 29, 2009 7:32 AM

...I still have to learn to click on my spell checker when posting on the web. This is when I miss my email client which does this automactially.

Dennis on April 29, 2009 7:33 AM

The answer to the original question, 'Has The Virtualization Future Arrived?', is no.

Not until I can install a Windows XP-only kernel driver on Windows 7 and access the hardware device in the new OS.

That's when the future will be here.

Eldon on April 29, 2009 7:57 AM

> 1. Will Microsoft continue to support XP in the virtual environment after the XP termination date?

That was my first thought as well. Clearly they will have to supply security patches for the XP virtualized environment for at least as long as Vista exists.

Jess Sightler on April 29, 2009 8:29 AM

Dang, I still have one PC, that I use daily, running W2K (SP 4) with 1 Gig of RAM on a 3.0 P4. It never crashes.

It runs VS2005, SQL 2005, IIS 5 as fast as a notebook I have with XP and 2GB on a Centrino Duo.

What I really need to virtualize is DOS 6.2 so I can run Jet Fighter...

Steve on April 29, 2009 10:52 AM

"What I really need to virtualize is DOS 6.2 so I can run Jet Fighter..."

*g* Ever tried DOSBox? Doom runs fine under it.

Vinzent Hoefler on April 29, 2009 1:33 PM

Vinzent -- THANKS! (Now I'll get even less work done.)

Steve on April 29, 2009 2:43 PM

If you think XP is obsolete enough, think about the version of IE it was released with. Yep, IE 6, which is even worse.

Yuhong Bao on April 29, 2009 11:41 PM

so how much memory can XP address? this is a serious limitation for gamers.

fred on April 30, 2009 5:27 AM

excellent, i remember when the 64bits CPU came out a few years ago, and the title said "the next step of the CPU"

ParisHotelNevada on April 30, 2009 6:33 AM

Well, 64Mb for XP... That's almost a joke. To run a single medium heavy application with no drive swapping you should have at least 512 Mb. Vista needs 2Gb to be somewhat "fast". Windows XP SP2 is'nt 7 years old... Who runs XP SP0 ??

Lars on April 30, 2009 10:02 AM

I'm super proud of Microsoft for taking this route. No OS flame war required. It's almost as bad as hearing car enthusiast whip it out, and as nauseating as well. We will never agree, period.

With Vista, Microsoft cut the Gordian knot and people hated it. I know if I use XP and I don't get UAC prompt, I get nervous. I like being asked if I'm "Sure".

Also, developers couldn't be trusted to clean up memory, so .NET was created (not the only reason, but definitely a factor), and no one will argue that what .NET does is crap.

I also remember when XP first came out and nothing worked for it either. But eventually hardware vendors woke up and improve driver support. I will laugh when Vista is the new XP, and Windows X (not 7) is the new Vista, and then people will have something new to complain about.

Chris on April 30, 2009 10:07 AM

In terms of prior art to this XP mode in Windows 7 I would think OS/2 2.0 with its support for a virtualized copy of Windows 3.1 is the prototype. OS/2 2.0 (32-bit) exposed the Windows 3.0 Window frame on the OS/2 desktop ("seamless windows") and was technically very much like this new XP mode. For a Windows developer not having to reboot every time Windows crashed was really heaven at the time. Only 17 years ago...

Christer on April 30, 2009 10:29 AM

Well, as far as i know XP was considered more reliable than vista [ when i was at siemens and also at philips ] there where teasm which evaluated vista and then decided to continue with XP...
windows 7 is still beta so no comments till it is officially out, we are not intersted in unfinished product which works under certain conditions... Also software works faster on faster hardware, so if u put xp on the same hardware as vista i expect xp to out perform vista. 64 bit support is cxertainly a negative.

Terry on April 30, 2009 10:52 AM

Philip, Mark, Mitch...thanks for all the great laughs....truly hilarious watching you claw at each other like 10 year old girls

Milty456 on April 30, 2009 2:50 PM

apparently... not

Ion Todirel on April 30, 2009 6:29 PM

I'm very happily writing this on my netbook running XP Home.

It lets me read/write emails, browse the web, create Office 2000 documents/spreadsheets/databases, develop programs using Visual Studio 2008, play all but the latest games, manage my music library etc...

I have no practical reason to upgrade to Windows 7 (or Vista) on this computer and so many reasons to avoid it. The biggest: I value a responsive, smoth running system so I can get done what I need to get done.

On smaller/portable computers XP, in the real world, XP is not dead. Sure netbook hardware specs. will improve over the years and possibly run newer OS ok, however until they come up with far more efficient batteries, this is irrelevent.

AJ on April 30, 2009 7:27 PM

While this will certainly peg me as the "dinosaur" of the CH readers, virtual machine technology as a native part of the OS has been around before Microsoft, Linux, and Apple. In the 1960's IBM produced an OS for their System/370 mainframes called VM - for Virtual Machine. It had full virtualization way back when.

That being said, and having read the preceding posts, I think this is a good move for MS, not because XP is no longer useful but because it frees them from the yoke of backward compatibility, while still maintaining it, in order to progress the OS technology.

I must admit that I chuckle when I read comments from the naysayers, because they're often the same people denigrating MS for crufty old systems and apps. And no, I don't work for them, I just code for their platform, as I have for many others.

Bob Mc on April 30, 2009 10:17 PM

Netbooks are just a realization that most people don't need ubercomputers just to surf the web and read a few emails.

It's not that anyone's in love with XP, but it's good enough.

Bazark on April 30, 2009 10:38 PM

You play EVE Online? I noticed it in your screenshot there ... or is that not from your desktop?

Wayne Witzel III on May 1, 2009 5:49 AM

I have to full disagree with your line of thought (if I interpreted correctly) about an OS's value. In the line about how XP is dead and then you make a wisecrack about how low it's requirements were - I'm assuming you are aligning OS quality with how high it's requirements are (correct me if I'm wrong). Personally I would argue the opposite.

If someone writes a new fat, bloaty OS that needs twice the resources as what XP did.. I'm not 2 times impressed with it. I'm wondering why the hell the OS needs all that. I'm more along the lines of wondering how they could be so wasteful of resources. I just feel an OS should be as fast and as lean as it possibly can. That's the duty of the OS, to leave as much resources as possible for the real programs. I don't care what OS I run, I care about the *programs* I run and how fast they can run.

Russ on May 1, 2009 7:10 AM

I run Windows virtually on OSX (both Parallels and VMWare, depending on context), but I generally try to avoid it. In my mind Virtualization is still a crutch. In general there are a number of problems:

1/ Virtual machines need to be configured separately from the host. Sure some settings, such as network (in the form of NAT-ed virtual interfaces or whatever) do carry over, but generally, you can't count on it. Which means if you have more than one, you have to do it multiple times.

2/ Normally you would have one virtual machine for all foreign apps, which means you will have the usual "Windows rot" where the performance deteriorates over time until you have to create a new VM from scratch. You can of course create a VM per app, but then you run into the first point (plus that you loose some of the magic that makes the integration between the virtual and hosting OS workable).

3/ There is a lot of magic missing still. In Windows 7 it is not a problem that the file systems work differently in the host and virtual OS:s, but in OSX this is an annoyance.


Simon on May 3, 2009 2:14 AM

The future isn't virtualization. As @Simon points out it's still klunky and doesn't really help you outside of testing software.

Virtualization is also great for servers. Being able to easily restore restore a failed upgrade, or the copy-paste semantics to moving from failed hardware make virtual machines indispensable.

The real future for typical computer users is portable applications that can be configured to run in a sandbox and that blur the line between online / offline applications. Storing gigs on a memory stick is childs play nowadays, and ideally it doesn't matter where I go, I just want my applications to run and I don't care about the OS. I shouldn't need to lug a laptop around just to have access to some applications.

While fully net-centric applications go a long way towards this, there are some things that aren't suited towards it like CAD, photo editing, movie editing, games, etc. Additionally, 24x7 connections aren't the norm.

Hardware should be just a commodity, and licensing a program to a specific hard drive / cpu / os combination is really limiting.

Bazark on May 3, 2009 3:45 PM

Hmm, what's transmission doing on the dock?

You on May 5, 2009 4:40 AM

Sandbox?.

Sandboxie do a nice job without virtualization and/or will need a portable aplication.

magallanes on May 6, 2009 1:46 PM

so, you will be virtualizing an os that is in your opinion, dead, and say it is a solution for backwards compatibility. hahaha..

Chester on May 7, 2009 6:59 AM

The reasons for microsoft to bundle virtualization are not related to XP. its related to pushing its virtualization solutions as they are loosing the battle with VMware and SUN.

you can read more:

http://design-to-last.com/Technical/windows-7-virtual-xp-solution.html

Daniel on May 11, 2009 4:25 AM

Microsoft's strong arm tactics on forcing people to upgrade in order to utilize DirectX 10 is probably the reason gamers moved on from XP.

I am still waiting for something better than Vista or 7 before I upgrade. I am running XP on this box for gaming. My main box, right next to this one, is running Ubuntu and loving it.

jagged software on May 30, 2009 12:04 PM

"While XP may have been the apple of 2001's eye, in computing dog years, it's basically.. dead."

XP Dead?
What are you smoking?

H.Stern on June 4, 2009 5:54 PM
Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.