最近有一个有意思的话题:Why did Windows 95 setup use three operating systems? 为什么 Windows 95 安装过程使用了三个操作系统?
资深 Windows 建设参与者 Raymond Chen 写了一篇博客回答了这个问题。
Windows 95 的安装过程中使用了三个操作系统的设计,是为了兼容从 MS-DOS、Windows 3.1 或 Windows 95 这三种不同的起始环境进行升级。这种设计选择避免了编写多个版本的安装程序的工作量,并且允许使用单一代码库来处理所有安装场景。
首先,从 MS-DOS 开始安装的用户需要安装一个小型的 Windows 3.1 版本,这个版本足够小,可以从少量的软盘中复制并安装。然后,系统会引导进入这个小型的 Windows 3.1 环境,并运行一个 16 位的图形用户界面(GUI)安装程序。
对于从 Windows 3.1 或 Windows 95 升级的用户,安装程序会作为一个 16 位的 Windows 应用程序运行,进行用户信息收集、硬件检测、驱动程序复制、Windows 95 文件迁移以及新操作系统的配置。
最后,在 Windows 95 环境中运行的第三个安装程序是一个 32 位的应用程序,它完成了一些需要在活动系统中运行的最终设置步骤,如安装打印机。这种分阶段的安装设计使得 Windows 95 可以在不同的起始点上使用相同的代码,同时确保了安装过程的连续性和效率。
所以这就是为什么 Windows 95 的安装实际上是三个连接在一起的安装程序。它允许使用一份代码来处理所有三种安装场景。每个程序都让你更接近目标。而且所有内容只实现了一次。
博客分析中有几个核心点值得关注:
- 为了避免重复编写三个不同的安装程序,Windows 95 选择了使用一个安装程序来适应从 MS-DOS、Windows 3.1 或 Windows 95 三种不同环境的升级过程。
- 如果将 Windows 95 安装程序作为 MS-DOS 应用程序,虽然可以在所有三个平台上运行,但它将是一个文本模式的程序,这会因为外观不佳而给用户留下不利的第一印象。
- 将安装程序作为一个 32 位的 GUI 程序,将面临一个困境:在从 MS-DOS 或 Windows 3.1 升级的情况下,需要在开始安装 Windows 95 之前先安装 Windows 95,这是一个典型的鸡与蛋的问题。
- 采用中间路径的方法,即在 MS-DOS 下安装一个小型的 Windows 3.1 版本,然后在这个环境中运行一个 16 位的 GUI 安装程序,这是一个既能避免重复编写代码,又能提供良好用户体验的解决方案。
- Windows 95 安装程序实际上是由三个连续的安装程序组成的,每个程序都将用户带到安装过程的下一个阶段,确保了从不同的起始点到达最终目标的一致性。
- 这种设计还受到了微软之前为 Excel 提供的 Windows 运行时版本的启发,这个版本足够小,可以让不具备 Windows 的用户也能使用 Excel。之前已经有一个微型版本的 Windows,勉强足以运行单个程序。微软 Excel 的原始 Windows 版本附带了一个运行时版本的 Windows 2.1,因此没有 Windows 的客户仍然可以使用 Excel。
- 安装过程中使用的硬件检测代码与 Windows 95 内部的硬件检测代码相同,这意味着即使在 Windows 3.1 环境下,也只需编写一次代码。
更多独家技术见解与热门话题讨论,尽在【开源中国 APP】,与数百万开发者一起,随时随地探索技术无限可能。