Interoperability & Program Compatibilty on Windows Vista
Windows Vista has done well with program compatibilty, which has steadily improved since the first alpha & even beta builds. At any rate, it’s far better than when people started to use Windows XP straight from Windows 9x; that was a completely different kernel and gave everyone hell all over the place (remember Roxio anyone?).
Windows Vista offers several layers of program compatibility ranging in ease of use and likelihood of success.
- Basic backwards API compatibility
Windows Vista’s API preserves most (almost all) previous functions. This means that if you coded an application (or are using an application that was coded) in a way that is 100% compliant (or close to that) with the Windows API, not breaking any rules or using any unpublished hacks, the program should work perfectly on Windows Vista by RTM. This requires no end-user action, and works automatically, and without issue all of the time.
- Windows XP Compatibilty Mode Enabling Windows XP Compatibility Mode on Windows Vista takes place on a per-application basis. Basically, you view the properties for an executable file, and tell it to enable Compatibility Mode – and Vista “takes care” of the rest. Basically it attempts to head-off incorrectly coded programs by “intercepting” calls to no longer present files or functions in the Windows Core. Success rate is a modest 70% – 85% for most “normal” applications that don’t do any low-level access or modification. This isn’t Computer Programming 101, so that’s it for now.
- Virtual Store This is one of Windows Vista’s big changes. With the enormous underlying changes to the NT kernel with Windows Vista, sometimes the first two just don’t cut it. Microsoft has a decent solution of sorts, where it runs programs in a “virtual” environment. It’s not like Apple’s on-the-fly virtualization for pre-OS X software, but it provides a folder with on-the-fly sym-linking for any of the major files. It has all the old XP directories and DLLs (though they’re not actually there) and is an excellent idea for running old code well without resorting to the bad-performing virtual machines. But there is one problem: it doesn’t always pick up when it should be used and when it shouldn’t; and severe loss of data may occur.
Overall, Windows Vista’s compatibility with Windows XP programs is good. Not spectactular, but nowhere as poor as originally forecast.
Drivers on Windows Vista is another story. Theoretically, it’s good. Indeed most XP drivers work great with Windows Vista, even video and audio – which are the areas with new driver models, though they do disable the newer features such as virtual sound and Aero/DWM. But if a driver contains a single line of 16–bit code (as many “unified driver kits” do), Vista will go on the fritz and never boot again. Examples include the latest versions of XP drivers for Creative’s audio devices which include Unified Driver Support for the older 16–bit audio cards.
On the whole, interoperability is good.. Not perfect, but quite good and fairly thorough. In all likelihood, a user running the newest versions of the most popular media/productivity/business/eduction programs won’t have to bat an eye. But be careful nevertheless!