Windows 7 beta uses trickery to fix Vista compatibility

Microsoft is determined to make Windows 7 a much cleaner upgrade than Vista, even if it has to tell a few lies to do it

The latest beta of Windows 7, released to TechNet and Microsoft Developer Network (MSDN) subscribers in early January, fixes some significant low-level compatibility issues with software targeted to Windows Vista. Windows 7 does this by masquerading as Vista with software installers and applications that check for a specific Windows version ID before running. This white lie is that the behavior that Microsoft designed is with Windows 7, but which was apparently only partially implemented in builds preceding the latest public beta.

This was brought to my attention when I ran Lenovo's Software Update tool on a ThinkPad X300, the notebook that Microsoft loaned to some attendees of the Windows 7 reviewers' workshop. The original Windows 7 beta that Microsoft pre-loaded on the machines and supplied as a backup on an external USB drive would not install several ThinkPad drivers and utilities. Lenovo's System Update feature, which searches out and installs hardware driver, firmware, and Windows updates, formerly failed to run to completion, in part because it attempted and failed to install several Microsoft updates issued for Vista. A handy administration tool, ThinkVantage Productivity Center, failed to install at all. Audio drivers were among basic peripheral drivers that Lenovo's Software Update couldn't install.

[ Windows 7 takes better advantage of multicore systems than either Windows Vista or Windows XP. See InfoWorld's analysis "The generation gap: Windows on multicore" ]

As of the current Windows 7 beta, Lenovo's System Update and ThinkVantage Productivity Center function perfectly. I might credit this to Lenovo, but its System Update hints otherwise. As before, Lenovo's System Update identified as necessary a number of Microsoft-issued Vista updates, but instead of reporting installation errors and leaving hunks of ThinkPad software not running and peripherals dead, Windows 7 allowed Lenovo's System Update to think the Vista updates had installed successfully. The updater even notified me that a reboot was required even though no system software was actually altered. Several subsequent runs of Lenovo's System Update flagged the same Vista updates as necessary, and it repeatedly downloaded and "installed" them without complaint, requesting a reboot every time.

I'm willing to allow that Microsoft may have made the ThinkPad X300, which it knows to be in influential reviewers' hands, a special case. Perhaps Lenovo altered its System Update utility to ignore errors on its attempts to install Vista updates. I haven't had time to create a similar test rig for another machine. Whether Microsoft did this work or Lenovo did, what matters is that the right thing was done. The ThinkPad X300 is now fully functional, quirky peripherals and all, right down to the blue ThinkVantage lighted button that was previously dark. Pressing the ThinkVantage button still does nothing, but the fingerprint scanner and audio drivers work. We're heading in the right direction.

Windows 7 has other promises to keep that weren't in the previous beta. One is application self-healing. Software that uses deprecated APIs or otherwise crashes with memory access violations and the like will supposedly fail as expected but be auto-patched by Windows 7 on a later attempt to run the app. I tried this with a game that crashes under Vista. That was a no-go, but it was an extreme case. I'll need to track down some other buggy app. Microsoft demonstrated this feature with a few lines of C code that followed a pointer to an invalid memory address -- specifically, the very popular 0 -- and it was indeed auto-patched.

Driver compatibility issues plagued Vista. Vendors can take a long time to release drivers for new versions of Windows, and for some older products that nevertheless have a substantial installed base, driver updates are never released. This created a lot of problems for Vista users whose peripherals just quit working when they migrated from Windows XP. With Windows 7, where vendors don't update their drivers for the new release (even if an update is just relaxing its Windows version check), I expect that Microsoft is more likely to step in to do it themselves on users' behalf.

This has been true for many Windows releases, but Windows 7 and Windows Server 2008, which supposedly share a code base, cast a wider net than before and quietly roll some drivers into service packs and updates. I discovered this when working with my quad-socket AMD Shanghai server. Windows Server 2003 required me to track down a slew of drivers from various sites before such basics as Ethernet would function. Windows Server 2008 had enough of these drivers built in to boot into a functional state. One desktop system I recently bulit took a grueling six hours to get running because the hardware was newer than the latest release of Windows XP. USB ports wouldn't function, so I couldn't even use a thumb drive. Nero came to my rescue; its disc burning software will create a bootable CD without any of the machinations called for by guides on the Web.

It's always been the case that the default drivers on Windows' install discs considerably predate vendors' current releases, and some lack the configurability, performance, or features of vendors' latest drivers. If you use Windows' Device Manager to check driver information for a given peripheral, you may see Microsoft credited as the author, and perhaps a release date that places the driver in the early XP era. Windows' default drivers work; that's all they're designed to do. For example, Windows' default device drivers for several built-in and aftermarket Wi-Fi chipsets don't enable WPA2 encryption. Windows default drivers tend to address a family of hardware, leveraging the peripheral's backward compatibility. The most common case is Windows' default use of video cards' ubiquitous, unaccelerated Super VGA mode. I think that Windows 7 will build on that.

Microsoft is setting itself up to be more answerable to users for Windows 7/Vista compatibility issues. There will inevitably be issues that Windows 7 can't work around. There's no such thing as foolproof. With such persistent fools out there, there will be failure scenarios that Microsoft hasn't predicted, and Microsoft will screw some things up themselves.

Still, Windows 7 will be a much, much smoother transition, and Microsoft has wired in a mechanism to improve it without making users wait for service packs. Sometimes Windows will ask your permission to send feedback to Microsoft. Do this. Do it often. If you do, then when apps crash and the Windows 7 failure dialog asks you to let Windows check for a solution, it is more likely to find one.

Copyright © 2009 IDG Communications, Inc.

How to choose a low-code development platform