May 21, 2009, 2:10 PM — Windows 7 may be looking faster and more polished than its predecessor, Windows Vista, but both operating systems are nearly identical under the hood.
That means some of the application compatibility problems that plagued Vista users could also strike Windows 7 users, especially corporate workers.
While many software and game makers have fixed the XP apps that broke under Vista three years ago, the same isn't true of custom applications running inside enterprises.
Often written in Microsoft languages such as .Net or Visual Basic, these apps can suddenly become a roadblock for enterprises intent on upgrading from XP to Windows 7, especially if they have thousands of them in use, said Chris Jackson, an associate software architect at Microsoft.
The disadvantage is that virtualized apps run slower, sometimes much slower. Also, companies may end up having to support the newer operating system as well as the one they upgraded from.
Enter shims, which are to programming what jujitsu is to hand-to-hand combat.
Essentially little bits of code, shims don't try to tackle app compatibility problems head-on, but use tricks to sidestep them.
For instance, one common problem is caused by a requirement in Windows Vista and Windows 7 that most users work in standard user mode rather than administrator mode. Because users in standard mode have fewer system rights, they are less likely to inadvertently install malware. But that also can break programs written for XP that assume users are running as administrators.
A shim either fools the app into believing the user has admin rights, or it simply bypasses the test. Since the user is still in standard user mode, no security is compromised, Jackson said. And no app code needs to be rewritten.
"Think of it as like rephrasing a question," Jackson said during a talk last week at Microsoft's TechEd conference in Los Angeles. "If I can't say yes to a question, I'll just change the question."
Microsoft has long created its own shims rather than making laborious bug fixes to Windows' oft-brittle code.
"If you walk too loudly down the hall near the [Windows] kernel developers, you'll break 20 to 30 apps," Jackson joked.
In the Release Candidate for Windows 7, Microsoft is providing shims for 6,999 applications, with more added in every patch update, according to Jeremy Chapman, a senior Windows program manager for Microsoft.
For IT pros who need to create shims for their custom apps, Microsoft offers its free Windows Application Compatibility Toolkit (ACT).
The toolkit helps IT pros diagnose app compatibility problems then apply the proper shims to get balky software running. The latest version 5.5 was released last month.
Besides sidestepping user rights problems, ACT can also apply a shim that tricks an app into believing it is running on a particular operating system. Some apps will disable themselves if they are not running on the right version of an operating system.
ACT also offers a shim that helps a custom app locate system files written in an unexpected directory due to different versions of the operating system.
While Jackson is enthusiastic about shims, he admits that they "can't fix everything." If a user is trying to do something that requires a certain credential or certificate, shims can't be used to bypass that, he said.
Also, approaches such as virtualization have at least one advantage over shims - continued support from most independent software vendors, Jackson said. The same can't be said of shimmed apps.
"If you need a support statement, shims are only a stopgap," Jackson said. The best strategy in that case is to wait for the free or paid upgrade to Windows 7, he said.