Thursday, 30 May 2013

Software and Hardware

Solutions provider takeaway: Windows 7 compatibility has improved in some areas, but there are still some issues to take note of. Take a look at this chapter excerpt to see the hardware compatibility improvements over previous versions, including finding and installing Windows 7 drivers without issue and resolving software incompatibilities.


Understanding Windows 7 Compatibility Issues
Any discussion of PC compatibility, of course, encompasses two very different but related topics: hardware and software. In order for a given hardware device—a printer, graphics card, or whatever—to work correctly with Windows 7, it needs a working driver. In many cases, drivers designed for older versions of Windows will actually work just fine in Windows 7. However, depending on the class (or type) of device, many hardware devices need a new Windows 7–specific driver to function properly on Microsoft's latest operating system.
Software offers similar challenges. While Windows 7 is largely compatible with the 32-bit software applications that Windows users have enjoyed for over a decade, some applications— and indeed, entire application classes, such as security software—simply won't work properly in Windows 7. Some applications can be made to work using Windows 7's built-in compatibility modes, as discussed below. Some can't. Those that can't—like legacy 16-bit software or custom software typically found in small businesses—might be able to find solace in the new XP Mode feature in Windows 7. We examine XP Mode at the end of this chapter.
A final compatibility issue that shouldn't be overlooked is one raised by the ongoing migration to 64-bit (x64) computing. Virtually every single PC sold today does, in fact, include a 64-bit x64-compatible microprocessor, which means it is capable of running 64-bit versions of Windows 7. However, until Windows 7, virtually all copies of Windows sold were the more mainstream 32-bit versions of the system. We'll explain why this is so and how the situation is now changing in favor of 64-bit with Windows 7.
Secret: From a functional standpoint, x64 and 32-bit versions of Windows 7 are almost identical. The biggest difference is RAM support: while 32-bit versions of Windows "support" up to 4GB of RAM, the truth is, they can't access much more than 3.1GB or 3.2GB of RAM because of the underlying architecture of Windows. 64-bit versions of Windows 7, meanwhile, can access up to a whopping 192GB of RAM, depending on which version you get.
Hardware Compatibility
One of the best things about Windows historically is that you could go into any electronics retailer, buy any hardware device in the store, bring it home, and know it would work. Conversely, one of the worst things about any new version of Windows is that the previous statement no longer applies. Paul (who, let's face it, is old) often tells the story about the time he was wandering down the aisles of a Best Buy in Phoenix, Arizona, over a decade ago when Windows NT 4.0 first shipped, with a printed copy of the Windows NT Hardware Compatibility List (HCL) in his hand. He needed a network adapter but had to be sure he got one of the few models that worked in the then new NT 4.0 system.
Windows 7 users face a similar problem today, though there are some differences. First, there's no HCL available anymore, at least not a public one, so you're a bit more on your own when it comes to discovering what's going to work. Second, Windows 7 is already far more compatible with existing hardware than NT was back in the mid 1990s. Indeed, thanks to a 3-year head start with Windows Vista—with which Windows 7 shares the same compatibility infrastructure—Microsoft claims that Windows 7 is actually far more compatible with today's hardware than Windows XP was when it first shipped back in 2001. Based on our extensive testing and evidence provided by Microsoft, this is clearly the case. But then, that was true with Windows Vista as well, though overblown tales of that system's compatibility issues burned up the blogosphere during virtually its entire time in the market.
We've tested Windows 7 for over a year on a wide variety of systems, including several desktops (most of which use dual- and quad-core x64-compatible CPUs), Media Center PCs, notebook computers, Tablet PCs, TouchSmart PCs, netbooks, and even an aging Ultra-Mobile PC. Windows 7's out-of-the-box (OOTB) compatibility with the built-in devices on each system we've tested has been stellar, even during the beta, and it only got better over time. (In this case, OOTB refers to both the drivers that actually ship on the Windows 7 DVD as well as the drivers that are automatically installed via Automatic Updating the first time you boot into your new Windows 7 desktop.) On almost all of these systems, Windows 7 has found and installed drivers for every single device in or attached to the system. So much for all the compatibility nightmares.
Myths about how the Windows Aero user interface requirements would require mass hardware upgrades also dissipated during the Vista time frame. And sure enough, by the time we got to Windows 7, we stopped seeing anything other than the Windows Aero UI on every single modern (2006 or newer) PC we've tested. (With the following exception: when you install Windows 7 Home Basic or Starter, you don't gain access to Windows Aero—but this is due to limitations of the OS, not the hardware.)
As always, you could still run into hardware issues with older scanners, printers, and similar peripherals, especially if you're coming from Windows XP. Paul's network-attached Dell laser printer wasn't supported by Windows 7–specific drivers at launch (though it was in Windows Vista with Service Pack 1 and newer). But because it's really a Lexmark printer in disguise, he was able to get it up and running just fine using Lexmark drivers.
If you're coming from Windows Vista, or are using Windows Vista-era hardware, you're in much better shape. For the most part, everything should just work. TV-tuner hardware? Yep. Zune? Done. Apple's iPods? They all work (even on x64 systems). Windows Media–compatible devices? Of course; they all connect seamlessly and even work with Windows 7's Sync Center interface.
Software Compatibility
We regularly use and otherwise test what we feel is a representative collection of mostly modern software. This includes standard software applications—productivity solutions and the like—as well as games.
We both run a standard set of applications across most of our desktop and mobile PCs. We've also tested numerous video games to see how they fare under Windows 7. (Hey, someone has to do it.) The results have been very positive: not only do most Windows XP-compatible applications and games work just fine under Windows 7, many pre-Windows 7 games also integrate automatically into Windows 7's new Games Explorer as well. Unless it's a very new game designed specifically for Windows 7, you won't get performance information as you do with built-in games, but the game's Entertainment Software Ratings Board (ESRB) rating is enough to enable parents to lock kids out of objectionable video games using Windows 7's parental-control features. It's a nice touch.
If you're coming from Windows Vista, the extra performance boost you get from simply migrating to Windows 7 is astonishing. No, Windows 7 doesn't offer the same raw performance as does Windows XP. But it's close. And it's much faster than Windows Vista. Much faster.
Cross ref: See Chapter 16 for more information about gaming and Windows 7.
The biggest software-compatibility issues you're going to see in Windows 7 will involve very old applications that use 16-bit installers, and classes of applications—especially antivirus, antispyware, and other security solutions—that need to be rewritten to work within Windows 7's new security controls. Security vendors will fix their wares, no doubt about it. But what about 16-bit applications and other software that just won't run under Windows 7? Surprise. Microsoft has an answer. It's called XP Mode, and we examine this software later in the chapter.
x64: Is It Time?
The one dark horse in the Windows 7 compatibility story is x64, the 64-bit hardware platform that we're all using today (though few people realize it). The x64 platform is a miracle of sorts, at least from a technology standpoint, because it provides the best of both worlds: compatibility with virtually all of the 32-bit software that's been created over the past 15 years combined with the increased capacity and resources that only true 64-bit platforms can provide.
When Windows Vista first debuted back in late 2006, x64 compatibility was a mixed bag. Hardware compatibility, surprisingly, was excellent, and virtually any hardware device that worked on 32-bit versions of Windows Vista also worked fine on 64-bit versions. Software was another story. Too often, a critical software application simply wouldn't install or work properly on 64-bit versions of Windows, making these versions a nonstarter for most.
Time, however, truly heals all wounds. A huge number of compatibility issues were fixed over Windows Vista's first year on the market, and x64 versions of Windows Vista are now largely compatible, both from a hardware and software perspective, with anything that works with 32-bit versions of the system.
With Windows 7, the situation is even better. With this system, x64 is now the mainstream hardware and software computing architecture for the first time, and you will most likely obtain an x64 version of Windows 7, no matter how you acquire it. In our view, x64 is the way to go. So if you have a choice, open yourself up to the massive RAM improvements that accompany x64 versions of Windows 7.
Dealing with Software Incompatibility
Regardless of Windows 7's compatibility successes, compatibility issues can still bite you when you least expect it. Fear not: there are ways to get around most software incompatibility issues. You just have to know where to look.
Compatibility Mode
If you do run into an application that won't work properly in Windows 7, first try to run it within a special emulation mode called compatibility mode. This enables you to trick the application into thinking it is running on an older version of Windows. There are two ways to trigger this functionality: automatically via a wizard, or manually via the Explorer shell. There's also a third related function, the Program Compatibility Assistant, which appears automatically when Windows 7 detects you're having a problem installing or using an application.
Let's take a look at all three.
Using the Program Compatibility Wizard
The Program Compatibility Wizard is a simple application that detects issues on your PC and can automatically fix them for you. Or, if the wizard doesn't detect an issue, you can simply point it at the misbehaving application and have it do its thing, using recommended settings or a manual troubleshooting process.
You'd think that using a wizard would be easier than manually configuring compatibility mode; and that would true if you could just find the thing: unfortunately, the Program Compatibility Wizard isn't available from the Windows 7 user interface. Instead, you have to trigger it using this secret.
Open the Start menu and type program compatibility in Start Menu Search. One result will come up: Run programs made for previous versions of Windows (see Figure 3-6). You click that to start the Program Compatibility Wizard.
Yes, really.
The admittedly bare-bones-looking Program Compatibility Wizard (see Figure 3-7) steps you through the process of identifying the application to run in compatibility mode and which settings you'd like to configure.
When you click Next, the Program Compatibility Wizard will attempt to find any badly behaving applications. If it can't find any, you can choose the application from a list of applications or click Not Listed and manually show the wizard where to find the application in question.
Figure 3-6: It's well hidden, but the Program Compatibility Wizard might be just what you need to get that stubborn legacy application to run correctly in Windows 7.
Figure 3-7: It ain't pretty, but the Program Compatibility Wizard usually gets the job done.
Once you've identified the program you'd like to fix, you can try the recommended settings, which is always a good idea. If this fixes things, you can simply go about your business. If it doesn't, the wizard will walk you through the process, asking a series of questions, as shown in Figure 3-8.
Figure 3-8: Still not working? Tell the wizard your troubles.
For example, if you know an application worked on a previous version of Windows, and it's not working now in Windows 7, you can pick from an extensive list of Windows versions to emulate, including Windows Vista, Windows Vista with Service Pack 1 (SP1), Windows Vista with Service Pack 2 (SP2), Windows Server 2003 with SP1, Windows XP with SP2, Windows XP with SP3, Windows 2000, Windows NT. 4.0 with SP5, Windows 98/Windows ME, or Windows 95.
Once you've answered a few questions, the wizard will apply the appropriate settings to the application and prompt you to test-run the application to see how things work out. You can then either accept the configuration, go back and make changes, or just quit the wizard.
Enabling Compatibility Mode Manually
You don't actually have to hunt around for the Program Compatibility Wizard if you want to run an application in compatibility mode. Instead, find the executable (or, better yet, a shortcut to the executable, such as the ones you'll find in the Start menu), right-click, and choose Properties. Then, navigate to the Compatibility tab, shown in Figure 3-9.



Compatibility mode is a great (if hidden) feature, but it's no panacea. Some applications will simply never run on Windows 7, no matter what you do.
Figure 3-9: Any application can be run in compatibility mode.
Secret: Compatibility mode should not be used to enable older security applications such as antivirus software. These types of applications should be run only on the operating systems for which they were designed.
Understanding the Program Compatibility Assistant
When Windows 7 detects that you're installing an application with a known compatibility problem or suspects that a just-completed application installation has not concluded successfully, it will offer to fix the problem. This functionality, called the Program Compatibility Assistant, occurs automatically, as shown in Figure 3-10. You're free to decline the offer if you believe the application ran correctly. There is no way to trigger it manually, as you can with program-compatibility mode. Like any good neighbor, it will simply appear when needed.
Figure 3-10: The Program Compatibility Assistant will pop up whenever it thinks you need help.