Windows 95/98系统其实根本不认识安装程序!完全靠“猜”

Windows 95系统已经是30年前的产物了,但是关于它,依然有很多不为人知的秘密。
据微软工程师、半官方Windows历史研究者Raymond Chen在其最新博客中透露,Windows 95包括后续的Windows 98,其实并不真正认识软件的安装程序,只是非常简单粗暴地读取exe可执行文件的名字,再对比一段硬编码关键字的列表,做出判断。
这份列表很简短:setup、install、inst、imposta、ayarla、felrak。
系统只要发现文件名中包含setup、install、inst的字样,就会认为它是安装程序,执行安装操作,同时触发修复流程,用于还原可能被安装程序篡改的系统文件。
Raymond Chen承认,install其实属于冗余条目,根本没必要,因为后人增加的inst已经在其中了,包含install的文件名必然也包含inst。
他推测,之所以加入inst,是用来匹配xxxinst这样的命名,但为了稳妥起见,却没有同时删掉install。
至于列表中的后三个词,Raymond Chen说这是他当年自行推测的意大利语、土耳其语、匈牙利语中对应的安装程序关键字。
是的,自行推测的,就这么随意。
另外,如果是通过inf文件安装的多媒体驱动程序,Windows 95系统还会单独进行一次实时校验,因为这类驱动经常会覆盖系统自带的dll动态链接库文件。

那么你可能会说了,如果在随意一个exe的文件名中加入以上字段,系统也会把它当成安装文件,是不是就可以为所欲为、篡改系统文件了?
微软当然没这么傻。
Raymond Chen之前就介绍过Windows 95/98等老系统的恢复保护机制,目的就是这套简单的软件安装机制。
当年的安装程序都比较随意,普遍不会校验系统文件版本,就直接覆盖,完全无视微软的明确规定:只允许用新版本替换旧系统文件。
举例来说,如果一款安装程序自带了Windows 3.1系统的旧版共享动态库,安装后就会覆盖Windows 95里的新版文件,这就导致所有依赖新版库的软件都会彻底失效。
作为应对,Windows 95会自动把频繁被覆盖的系统文件备份到一个隐藏目录C:WindowsSYSBCKUP。
安装程序运行完毕后,系统就会校验文件变动,如果有被降级覆盖的,就从备份目录中复制还原为正确的新版本。
不过,这套安全机制的最大缺陷,就是完全依赖系统能否准确识别安装程序。
如果有命名特殊的安装包,就不会触发校验,而像instant.exe这样的普通程序,只是因为名称中包含匹配关键词,就会触发不必要的系统备份恢复流程。
另外,文件校验也不会立刻执行,大多数会推迟到下次开机之后。
因为安装程序往往无法替换正在被占用的文件,需要退回到MS-DOS环境,通过批处理文件替换文件后再重启系统,因此清理修复流程必须等系统重启之后,才能发现所有的文件改动。

Windows 2000系统改用全新的NT架构,也放弃了安装程序文件名猜测机制,引入了更靠谱的Windows文件保护(WFP)。
WFP通过Winlogon进程注册文件变更监听,并从缓存目录%WinDir%System32dllcache中还原受保护的文件,而不再依靠文件名判断,也无需等待安装程序结束再恢复文件。
后续的Windows ME也是类似的系统文件保护机制。
Windows Vista及之后系统,则进一步升级为Windows资源保护(WRP),改用访问控制列表防护系统文件。
如今Windows 11中常用于修复系统的sfc /scannow命令,正是这套机制的延续。

Windows 95系统堪称划时代的伟大操作系统,一举奠定了Windows和微软的行业地位。
图形界面方面,更早的Windows 3.x依赖程序管理器、文件管理器,操作繁琐,Windows 95则首次引入开始菜单+任务栏+桌面图标三件套,把所有程序、设置收纳到开始菜单,通过底部任务栏实时切换窗口,普通用户零基础也能轻松上手,这套机制一直沿用至今,本质上从未改变。
长文件名、回收站、拖拽操作、窗口最大化/最小化、右键菜单,这些都让鼠标操作成为必选项,彻底告别了DOS操作机制。
技术层面,Windows 95首次彻底脱离DOS外壳,并采用16/32位混合架构,兼容海量老应用,还原生支持新应用,而且32位程序是独立内存空间,不会导致整机崩溃。
还有刚才提到的简易系统修复机制,以及PnP即插即用机制、多媒体支持、磁盘工具、FAT32磁盘分区、DirectX原生支持、串口/并口/USB原生支持等众多新技术,都是革命性的创新。
可以说,Windows 95虽然仍旧有很多不成熟的地方,但它首次统一了民用PC操作系统的标准,树立了一系列行业标杆,大大推动了PC的全民普及,从此全球用户的办公、娱乐都离不开它。
Windows 95发售后,第一天销售额7.2亿美元,4天卖了100万套,5个星期超过700万套,一年全球突破4000万套,全生命周期装机总量超过1亿台。
一直到Windows XP,才打破Windows 95的神话。
那么,你最早接触的微软系统是哪个?用过Windows 95吗?
