提供原文如下:Windows 7 To Break Backwards Compatibility
Previous versions of Windows provided backwards compatibility with older versions of windows, making it easy for users to upgrades as their favourite programs would still work.
However, with Windows 7 Microsoft are approaching backwards compatibility differently, and Windows 7 will not be binary compatible with older versions. This won’t mean that older programs won’t run, but that virtualisation will be used to make them run. The key drivers for this are performance improvements, but also in an attempt to sidestep regulatory programs.
Vista struggles with performance because Microsoft choose to incorporate regulatory challenged features like Internet Explorer and Windows Media Player using a modular design, rather than the monolithic processes used in previous versions of windows. The greater use of componentisation led to performance issues due to the increased number of libraries within the operating system. Simply put, the more separate files your hard drive has to load, the slower your system is going to run.
Another reason why Vista runs so slowly is:
The operating system stores multiple copies of core system libraries, as each revision of a library typically adds/removes functions, and applications compiled with dynamic links to a specific version of a DLL file may call on functions not present in the currently installed library. Vista aims to solve this issue through the WinSxS collection; essentially a massive store of every differing version of libraries present on the system. That way, when an application makes a call for a dynamically linked library, Vista queries the WinSxS cache for the correct version, which is then loaded into memory. On the average system, this directory can be several gigabytes in size, with much of the code duplicated between the separate versions many times.
By not being binary compatible with previous versions of Windows and being built from the ground up, will give Windows 7 significant performance improvements. This will make it easier for developers to produce faster apps as they won’t have to worry about backwards compatibility, but it will increase the upgrade pain for users who may find that some of their existing applications will no longer work and will need upgrading.
Where do you lie on the trade-off between compatibility and speed? Do you think Microsoft are making a mistake here?