在计算机操作系统的发展历史中,MS-DOS作为微软早期的主导产品,对后续Windows系列系统的演进起到了奠基作用。Windows 95作为微软在个人电脑领域的一次重大革新,同时也是首次将32位技术全面应用的操作系统,而MS-DOS在其中扮演的角色既复杂又关键,值得深入探讨。很多用户和技术爱好者常常误以为Windows 95是完全独立于MS-DOS运行的系统,实际情况远比表面看到的复杂。事实上,MS-DOS依然在Windows 95中占据不可或缺的地位,主要体现在操作系统启动和设备驱动兼容层两个方面。MS-DOS在Windows 95中最初的功能是作为引导加载器。换句话说,计算机启动时,系统首先会载入一个高度定制化版本的MS-DOS。
这套定制版MS-DOS负责执行传统的启动流程,包括读取并处理配置文件CONFIG.SYS,启动命令解释器COMMAND.COM,执行自动运行批处理脚本AUTOEXEC.BAT,最终调用WIN.COM程序启动Windows 95的内核。这套流程保证了Windows环境能够顺利接手硬件控制权并初始化系统核心组件。除了引导加载的本职工作,MS-DOS还承担了16位遗留设备驱动程序的兼容层角色。虽然Windows 95引入了32位虚拟机管理器(VMM),将更多操作迁移到更先进的32位保护模式,但依然要求对旧有的16位软件和驱动保持兼容。为此,定制版MS-DOS充当了一个复杂的“假象”,巧妙地骗过那些依赖于MS-DOS中断调用(如int 21h)的旧软件,让它们认为自己仍在一个纯正的MS-DOS环境下运行。具体来说,Windows 95启动后,会先进入保护模式,激活32位的文件系统管理器。
这个管理器取代了传统MS-DOS对文件操作的控制权,处理所有基于int 21h的系统调用。若某些程序或驱动出于兼容或其他目的修改了这些中断向量,系统则通过跳转回16位代码部分来执行它们安装的“挂钩”,确保旧软件能正常运作。这种机制保证了Windows 95既拥有32位现代操作系统的高效与稳定,同时又能无缝支持大量老旧应用程序和驱动。这其中,特别重要的一点是16位设备驱动程序和终结驻留程序(TSR)习惯于直接修改操作系统底层中断向量,包括硬盘I/O中断int 13h和文件系统中断int 21h。这些修改本质上是对MS-DOS的“补丁”,使它们能够执行特殊功能甚至实现网络支持。Windows 95通过一套称为IFSMGR.SYS的16位驱动,专门在启动时抢先挂钩这些中断,以便将控制权在16位与32位之间灵活切换。
这样,32位文件系统管理器能够监听和介入所有文件访问请求,同时兼顾16位驱动的合法挂钩需求。对于没有特殊挂钩的程序,32位文件系统管理器直接处理文件系统请求,更新MS-DOS内部状态数据,保持状态同步。这种“同步假象”极大减少了兼容性问题,使得每个“MS-DOS窗口”(即16位虚拟机)拥有独立的当前目录和文件句柄表,表面上看起来像是真正的MS-DOS环境,实际上所有文件操作均由Windows 95核心统一管理。至于硬盘驱动层面,Windows 95通过引入多线程支持的32位I/O子系统接管了对硬件设备的控制,这比传统的单线程16位驱动性能要好很多。然而,如果系统检测到无法识别的16位驱动,就会启用“实模式映射器”,依旧运行旧式驱动。虽然这种模式兼容性良好,但往往导致性能大幅下降,且系统容易被病毒利用,因为古老的MS-DOS病毒正是利用钩子和中断矢量篡改实现恶意控制。
借助于系统性能监控工具,用户甚至可以通过判断某些设备是否使用“MS-DOS兼容模式”来初步诊断潜在的病毒感染。值得注意的是,MS-DOS在Windows 95中的部分功能仍然保持原样。除了文件操作,像内存分配、字符串解析等辅助功能仍由16位MS-DOS代码提供。这不仅保证了程序的广泛兼容性,还避免了重新实现这些功能带来的复杂度和风险。总结来说,MS-DOS在Windows 95中扮演了引导加载器和16位设备驱动兼容层两个关键角色。它确保了传统MS-DOS应用和驱动能够顺利运行,同时通过与32位虚拟机管理器和文件系统管理器的紧密配合,使Windows 95成为兼顾传统与现代、实现无缝迁移的革命性操作系统。
这种混合结构不仅保证了系统的稳健性,也为后续的Windows NT架构发展积累了宝贵经验。从技术历史的角度来看,Windows 95利用MS-DOS这一遗产,展现了微软对向32位时代过渡的深刻理解和强大工程能力,也反映了操作系统设计中兼容性与创新之间的复杂权衡。