ARTICLE / DEEP READING

行业资讯

从比赛现场到数据趋势,深入阅读每一篇值得关注的体育内容。

“人类历史上最伟大的软件:Windows !”文章配图
READ
IN DEPTH

FEATURED ARTICLE

“人类历史上最伟大的软件:Windows !”

孩子想开发个RPG游戏,让我找个游戏参考,我想起了多年前玩儿过的《仙剑奇侠传》。 到Steam上找了一个,下载运行,复古的、熟悉的界面立刻出现在眼前: 《仙剑奇侠传》Windows版是1997年上市的,快30年了,它依然可以顺畅地运行在现在的Window 11之上。 这也不算啥,如果你手头有20多年前发布的Office 2000: 也可以安装在Windows 11上试试,照样能用: 除此之外,还有1995年发布著名软件Total Commander 32位,可以从Windows 95 一路运行到 Windows 11。 1998年发布的开发神器 Visual Basic 6,现在微软还在给它兜底, VB 6写出的老程序,还可以运行在Windows 11上! 2002 年经典的 Photoshop 7 ,Windows 11上还能跑: 2003 年发布的 Winamp 2.91 在 Windows 11 上秒开,音效均衡器、EQ 调节以及经典 90 年代像素皮肤完美呈现,CPU 占用率接近 0%。 这向后兼容性可以说是无敌了! 怪不得Reddit上网友感慨道:Windows是人类历史上最伟大的软件。 0 1 微软的兼容性绝招 Windows实现这样的兼容性,可不是一件简单的事情,微软有两个绝招: 1.为了兼容,连Bug都不放过! 有个著名的游戏叫《模拟城市》,在Windows 3.x时代有个叫 Jon Ross 的程序员无意间写错了一段代码,导致游戏在释放了一段内存以后,依然去读取它。 这本来会导致游戏立刻崩溃,但是Windows 3.x 系统的内存管理比较简单,内存被释放后,里面的数据并不会立刻被清除或被其他程序覆盖,所以虽然代码写错了,但依然能歪打正着地正常运行。 等到Windows 95发布的时候,引入了更现代、更严格的内存管理机制,《模拟城市》一运行就崩溃。 微软该怎么办呢? 最直接的办法就是拿起电话,给《模拟城市》的开发商 Maxis 打电话,让他们现在、立刻、马上修复漏洞。 但是游戏已经通过光盘卖出去了,当时又没有网络更新,即使 Maxis 修复了 Bug 也无法解决所有的问题。 于是微软决定:保留这个Bug,直接修改 Windows 95 的代码来兼容它。 当 Windows 95 检测到《模拟城市》开始运行的时候,就自动切换到一个特殊的内存分配模式,故意延迟释放该游戏用过的内存,从而让《模拟城市》顺利运行。 还有一个著名的案例,在Windows 2000 时代,当时的 DLL 搜索规则比较简单,当前工作目录在搜索 DLL 时处于比较靠前的位置,很容易造成 DLL 劫持。 后来 Windows 改进了 DLL 搜索机制,但是许多老程序(甚至包括某些商业巨头的核心软件)在设计时,“意外”地依赖了 Windows 2000 时代不安全的搜索规则。当它们在新的 Windows 系统上运行时,因为找不到特定位置的 DLL 直接崩溃。 微软的解决方案是:推出 Windows 2000 兼容模式。 当程序开启该模式时,会还原 Windows 2000 时代的 DLL 加载机制,甚至恢复老旧版本堆分配器(Heap Allocator),相当于把已经修复的Bug重新打开了。 你看,Windows 的向后兼容,连前任系统的缺陷和漏洞一并当成珍贵的遗产继承了下来。 2.程序不配合?那就想办法骗过它! 《最终幻想 7》是PlayStation 平台上的游戏,移植到 PC 平台时做得非常糟糕,在运行时甚至会检查当前操作系统是不是Windows 95。 当大量用户升级到 Windows 2000、Windows XP时,游戏出现了各个问题:第一次战斗崩溃,CG和音频异常,陆行鸟比赛时必崩。 微软的做法很简单,给《最终幻想7》配了一个叫做“Win95VersionLie”的兼容性修复,专门对这个游戏撒谎,让它“以为”自己运行在Windows 95之上。 在 Windows XP 及更早时期,大量桌面用户和应用程序运行在管理员权限下,软件可以肆无忌惮地在 C:\Program Files\MyApp\ 下创建、修改配置文件或数据库。 到了 Windows Vista,微软引入了 UAC,彻底收紧了系统盘的写入权限,非管理员权限程序是无法直接访问的。 但是如果微软严格执行这套安全规则,数以百万计写死硬编码路径的老软件会在 Vista 上瞬间报废。 微软的做法依然是“欺骗”,假装允许访问这些系统盘,但实际上写到别的目录。 0 2 干脆整个框架吧! 兼容性问题越来越多,也总不能一直往 Windows 核心源码中加if else (特例)吧? 于是从Windows XP 开始,微软干脆搞了一个叫做应用程序兼容性框架的东西。 这套框架会在老程序和 Win

about image

SHARE THE IDEA

觉得有用?分享给朋友

让更多人看到这篇内容。

返回资讯列表

YOU MAY ALSO LIKE

推荐阅读

TRENDING STORIES

热点新闻

捞钱没底线,坑害老百姓,央媒痛批的四位明星,没有一个值得同情

捞钱没底线,坑害老百姓,央媒痛批的四位明星,没有一个值得同情

现在刷手机,动不动就能刷到明星翻车的新闻,不少曾经口碑挺好的老艺术家,也栽在了赚快钱这件事上。这回央媒直接下场点名,撕开了这些明星光鲜的面具,个个都把名气当提款机,坑的全是信任他们的普通老百姓。今天咱们就聊聊这四位,说真的,没一个值得可怜。 唐国强是家喻户晓的老戏骨,塑造过太多经典荧幕形象,观众原本对他抱有极高的好感。走红之后他接了大量商业代言,偏偏好多代言的产品都接连暴雷。曾经代言的黑发护理产品

辽宁舰率16艘战舰800垂发,中国海军双线破链,日本雷达集体沉默

辽宁舰率16艘战舰800垂发,中国海军双线破链,日本雷达集体沉默

最紧绷的,不是辽宁舰甲板上待命的歼-15,也不是美日军演里那5.7万人对峙的眼睛,而是日本西南诸岛上,盯着雷达屏幕的那几双眼睛。 因为他们看到了一个让他们后背发凉的东西:中国海军,不按套路出牌了。 10月27日,西太平洋,中国海军兵分两路,直接把第一岛链捅了个对穿。 第一路,大隅海峡。 055大驱带着052D、054A,身后还跟着一艘3000吨级的海警船——军警混编,直接开进远洋。以前海警在近海执

随着U17女足世界杯八强出炉,诞生4个不可思议,中国女足太棒了

随着U17女足世界杯八强出炉,诞生4个不可思议,中国女足太棒了

U17 女足世界杯八强名单全部尘埃落定。这一轮淘汰赛打完,一连串颠覆预期的结果接连上演,诞生了四个让人意想不到的现象。亚洲、非洲、南美、北美球队瓜分八强席位,曾经称霸青训赛场的欧洲队伍,这一次全员出局,冷门与惊喜交织,让这届 U17 女足世界杯悬念拉满。 第一个不可思议,就是中国 U17 女足,在全场被动的局面下咬牙守住防线,历史性闯入八强。面对欧洲劲旅法国,马晓旭指导选择五后卫稳守反击的战术,整

罗马诺:巴黎并未运作签下药厂中场马扎,只是进行常规的球探工作

罗马诺:巴黎并未运作签下药厂中场马扎,只是进行常规的球探工作

直播吧10月30日讯 据转会专家罗马诺报道,尽管有相关传闻,但巴黎圣日耳曼并未运作易卜拉欣·马扎的交易,没有谈判、没有报价、没有对话。 罗马诺这样谈道:“接下来,有很多朋友都在询问关于世界顶级天才之一易卜拉欣·马扎的问题。他在金球奖颁奖典礼现场,我也去了金球奖,当时有机会见到他。这是一个效力于勒沃库森的特殊人才。非常棒的球员。” “在金球奖的年度最佳 新秀 评选中,他进入了前十名。我们要谈论的是一

欧冠9-1惨案!39岁小法狂飙:执教3年打造新豪门 刷爆纪录

欧冠9-1惨案!39岁小法狂飙:执教3年打造新豪门 刷爆纪录

欧冠联赛阶段第4轮,科莫客场挑战朗斯。这场欧冠之战,科莫打出疯狂比分:9-1,血洗上赛季法甲亚军!这也是欧冠历史上,最疯狂的客场胜利。39岁的法布雷加斯,打出执教生涯代表作。 没多少人会想到,科莫如此疯狂。在朗斯主场3.7万球迷面前,科莫从比赛开始就狂攻,一直到比赛结束。杜维卡斯戴帽,尼科-帕斯、达库尼亚、肯普夫、利贝拉里、巴图里纳、帕帕奇奥利建功,科莫7人进球,9-1狂胜。 这是1场碾压式胜利,