孩子想制作一款角色扮演游戏,询问我可参考的游戏,我便想到了以前玩过的《仙剑奇侠传》。在Steam上找到并下载后,复古而熟悉的界面瞬间映入眼帘。《仙剑奇侠传》的Windows版发布于1997年,距今近30年,仍然能够顺利运行在现在的Windows 11上。如果手中有20多年前的Office 2000,也能在Windows 11上正常使用。此外,1995年发布的Total Commander,能够从Windows 95一直支持到Windows 11。早在1998年发布的Visual Basic 6,现在依然可以维持运行,微软甚至给它提供了支持。2002年的经典Photoshop 7和2003年的Winamp 2.91,在Windows 11上也依旧流畅。这样的向后兼容性堪称无敌,难怪有人在Reddit上感慨:Windows是人类历史上最伟大的软件。
微软能够实现如此兼容性,凭借着两大绝招:
1. 为了兼容性,连程序中的Bug也不放过。在Windows 3.x时期,一个程序员在《模拟城市》中无意中写错代码,导致游戏在释放内存后仍然去读取这些内存,正常情况应当崩溃,但由于该系统内存管理较为简单,数据并不会被立即清除,因此游戏得以运行。等到Windows 95推出,引入了更严格的内存管理机制,导致《模拟城市》崩溃。为了解决这个问题,微软决定修改Windows 95的代码以兼容这个Bug,当检测到《模拟城市》运行时,自动切换到特殊的内存分配模式,从而确保该游戏能够顺利运行。还有在Windows 2000时代,DLL搜索规则较为简单,后来虽然改进了这一机制,但许多老程序因依赖不安全的规则而崩溃,微软则推出了Windows 2000兼容模式,以恢复老版的DLL加载机制。 南宫28ng娱乐最新官网
2. 若程序不合作,微软会想办法“欺骗”它。例如《最终幻想7》在移植到PC时效果不佳,会随机崩溃。在用户升级到Windows 2000和XP时,出现了多种问题。微软为此开发了一个名为“Win95VersionLie”的兼容性修复,使游戏认为自己运行在Windows 95上。在Windows Vista引入UAC后,许多旧程序面临安全权限问题,微软同样选择通过假装允许程序访问系统盘以维护兼容性,但实际则将数据写入其他目录。
面对日益增长的兼容性问题,微软在Windows XP开始实施应用程序兼容性框架,以更高效地支持老旧程序与新系统的兼容。