Monday, February 8, 2010

When backwards compatibility bites you

Microsoft likes to talk big about backwards compatibility in Windows. Those Windows apps you bought for the previous version of Windows, they'll say, will work fine in the current version of Windows. Programs you buy for this version of Windows should be ok for the next version of Windows.

The problem is: when does backwards compatibility become a hindrance, rather than an advantage? At some point, isn't it just better to move on, and put the past behind you?

Not for Microsoft. They work hard to maintain that backwards compatibility. IMO, this will one day be their downfall.

Take, for example, the discovery of a 17-year old Windows bug, which Microsoft is only now addressing in February. Reported to Microsoft in June 2009, the bug is in code that supports old, legacy 16-bit applications. The effect: an attacker can run any code on your system. The exploit has been verified on XP, Vista, Windows 7, Server 2003/2008.

I'll go easy on Microsoft about their response in releasing a patch .. this time. 7 months (June 2009 to February 2010) is probably an appropriate amount of time to unwind a bug that's been in the operating system for 17 years. Probably.


  1. This is in the NTVDM, which is the Windows NT Virtual Dos Machine. So this is really old. If you're going to run a Dos application these days, you're better off installing Virtualbox and booting FreeDos.

  2. I take it you haven't taken the time yet to dive into the fifty-odd pages of the first bonus chapter of Raymond Chen's book, "The Old New Thing", horror stories from the Microsoft compatibility tabs in the Windows 95 days.

    Backwards compatibility used to be and still is (to a lesser extent?) a very big deal at Microsoft... things are changing now, however (UAC, Vista's new driver model, opt-in-backwards-compatible IE8...).

  3. IMO, MS's commitment to backwards compatibility (historically; as badp said, they have broken it more recently) is the the greatest single reason for Windows's success, greatest single asset Windows has, and single greatest Achilles Heel that Windows has.

    (And I think you could do a lot better to argue that last point than that random bug in NTVDM; the security model, the system complexity, even stuff like the drive letters and overall file system structure. (Windows 7 still uses drive letters. Why? Because that's what Gary Kildall decided when he wrote CP/M in 1974.))

  4. Evaned, I think I have a blog post in mind that is along these lines, but I'll need to grab some screenshots before I post. Look for something later this week. Thanks for the idea.

  5. You should be immune to this if you're using 64-bit Windows. The x86-64 architechture doesn't support VM86 in 64-bit mode. So, there's a limit on backwards compatibility, although it's one forced by AMD rather than chosen by Microsoft.


Note: Only a member of this blog may post a comment.