长期担任微软软件工程师的 Raymond Chen 最近在 X 上回答了一位游戏开发人员提出的一个有趣的复古技术问题。这位开发人员询问了 Windows 95 设置过程中使用的三种不同的用户界面,这些界面从 DOS 过渡到 Windows 3.x,最后又过渡到经典的 Win9x GUI。 Chen 解释说,这是一种有意的设计选择,目的是尽量减少 Windows 95 配置体验所需的代码量。
经验丰富的 PC 用户可能非常清楚 Win9x 生态系统中 MS-DOS 代码与图形用户界面环境之间的特殊关系。 然而,据Chen介绍,Windows 95 安装程序中内置的多操作系统支持远比最初看起来要复杂得多。
Chen拥有 30 多年影响 Windows 发展的经验,他对世界上使用最广泛的软件平台之一所隐藏的复杂性有着深刻的见解。 在撰写 The Old New Thing 博客时,他说Windows 95 设置的目的是为了从 MS-DOS、Windows 3.1 和 Windows 95 本身这三个可能的起点升级系统。 这种必要性决定了必须兼容三种不同的计算环境。
设置程序主要是作为 MS-DOS 应用程序编写的,但设计用于在三种不同的操作系统上运行,以执行不同的任务。 当从 MS-DOS 提示符启动设置程序时,DOS 部分是必要的,因为如果不首先在硬盘驱动器上安装 Win9x,就不可能访问 Win9x 环境。
MS-DOS 安装组件安装的是最小版本的 Windows 3.1,仅足以支持安装工具的 16 位部分。 启动到这个微型 Windows 3.1 环境后,16 位图形用户界面安装程序就会启动。 该程序还可以在完整的 Windows 3.x 环境中运行,甚至可以在已经安装的 Windows 95 操作系统中运行,使用户能够在必要时修复损坏的系统。
Chen 解释说,16 位 Windows 应用程序是整个过程的核心,因为它处理了"真正的"Windows 95 安装所需的大部分任务。 这个图形界面负责管理用户交互、收集配置数据、确定要安装的操作系统组件,并执行硬件检测以选择适当的驱动程序。
在将 Windows 95 文件和驱动程序复制到系统后,16 位安装程序启动进入 Win9x 环境。 第三个也是最后一个安装阶段涉及一个真正的 Win32 应用程序,它通过处理安装打印机和配置其他外围设备等任务来完成安装。
通过将这三个安装程序串联起来,微软能够在所有三个主要安装场景中重复使用一个代码库,从而简化开发过程。"每个程序都让你离目标更近一步。 一切都只实施一次,"开发人员说。