Windows 95

Windows 95是微软于1995年推出的电脑操作系统。Windows 95是一个混合的16位/32位Windows系统，是Windows 9x系列的第一代产品，其版本号为4.0，开发代号为Chicago。于1995年7月14日发行给制造商（RTM），并于1995年8月24日发行零售版。

Windows 95整合了微软之前独立的MS-DOS和Windows操作系统，并在其前身的基础上进行了重大改进，最显著的是对图形使用者界面的重要的改进和简化的“即插即用”特性。操作系统的核心组件也进行了重大更改，例如从主要为协作式多任务的16位架构转变为抢占式多任务的32位架构；抛弃了对前一代16位x86的支持，因此它要求英特尔的80386处理器或者在保护模式下运行于一个兼容的速度更快的处理器。同时也是第一个特别捆绑一个版本的DOS的视窗版本（MS-DOS 7.0）。这样，微软就可以保持由Windows 3.x建立起来的GUI市场的统治地位，同时使得没有非微软的产品可以提供对系统的底层操作服务。也就是说，Windows 95具有双重的角色。它带来了更强大的、更稳定、更实用的桌面图形用户界面，同时也结束了桌面操作系统间的竞争。

## 历史

Windows 95以强大的攻势进行发布，包括商业性质的滚石乐队的歌曲《Start Me Up》。很多没有电脑的顾客受到宣传的影响而排队购买软件，有些人甚至不知道Windows 95是什么。

后来的Windows 95版本附带了Internet Explorer 3，然后是Internet Explorer 4。当Internet Explorer 4被整合到操作系统后，它将给系统带来一些新特征。Internet Explorer被用来给系统的桌面提供HTML支持。这个也是在微软的反托拉斯案中的焦点，因为整合后的Internet Explorer排挤了微软的竞争对手网景的产品。Windows 95的后续产品是Windows 98。

## 版本

Windows 95共有五种版本：

- Windows 95 零售版（发布日期1995年8月24日）
- Windows 95 OEM Service Release 1（OSR1）（发布日期1996年2月14日，包括 Windows 95 Service Pack 1）
- Windows 95 OEM Service Release 2（OSR2）（发布日期1996年8月24日，包括一些改良例如IE 3.0和FAT32的支援）
- Windows 95 OEM Service Release 2.1（OSR2.1）（发布日期1997年8月24日，包括基本USB和AGP的支援）
- Windows 95 OEM Service Release 2.5（OSR2.5）（发布日期1997年11月26日，包括以上版本多所有功能，另附IE 4.0与DirectX 5.0）

OSR2、OSR2.1和OSR2.5并没有对公众发行，而是由厂商预先安装在电脑上。

## 架构

<image>

Windows 95的架构由Windows for Workgroups的386增强模式演变而来，旨在最大程度地兼容现有的MS-DOS和16位Windows程序与设备驱动程序，同时提供更稳定和更出色的系统性能。Windows 95的最低运作水平包括以32位保护模式运行的大量虚拟设备驱动程序（VxD）以及以虚拟8086模式运行的一个或多个虚拟DOS计算机。虚拟驱动程序负责处理物理设备（例如视频卡与网卡）、模拟虚拟机所使用的虚拟设备或提供各种系统服务。三个最重要的虚拟设备驱动程序分别是：

虚拟机管理器（Virtual Machine Manager / VMM32.VXD）：负责内存管理、事件处理、中断处理、加载和初始化虚拟设备驱动程序、创建新虚拟机以及线程调度。

配置管理器（Configuration Manager / CONFIGMG）：负责实现随插即用功能、监控硬件配置变化、使用总线枚举器检测设备以及以无冲突的方式分配I/O端口、IRQ，DMA通道和内存。

可安装文件系统管理器（Installable File System Manager）；输入/输出子系统（Input/Output Subsystem）：协调对支持的文件系统的访问。Windows 95 最初附带支持FAT12，FAT16，VFAT扩展，ISO 9660（CDFS）和网络重定向器，而后期版本支持FAT32。

对物理媒体的访问请求被发送到输入/输出管理器，由其负责调度请求。每个物理介质都有自己的设备驱动程序：访问磁盘由端口驱动程序执行；访问SCSI设备则由在SCSI层上运作的微型端口驱动程序处理。端口与微型端口驱动程序绕过MS-DOS和BIOS，以32位保护模式执行读写操作，从而显着提高性能。若存储设备没有原生Windows驱动程序，或者设备被强制以兼容模式运行，则“实模式映射器”（Real Mode Mapper）可以通过MS-DOS访问此存储设备。

32位Windows程序能够自行分配内存段，且内存段的大小可以任意调整。程序无法访问段外的存储区。某个程序崩溃并不会使其他程序收到损坏。而在此之前，程序会使用固定的非独占64KB段。虽然64KB大小是DOS和Windows 3.x系统的严重障碍，但缺乏对排他性的保证是造成稳定性问题的原因，因为程序有时会彼此覆盖内存段。在Windows 3.x中，崩溃的程序会破坏其内存段周围的进程。

Win32 API由三个模块实现，每个模块由一个16位和一个32位组件组成：

内核：提供对内存和进程管理的高级访问，以及对文件系统的访问。由KRNL386.EXE、KERNEL32.DLL和VWIN32.VXD组成。

用户：负责管理和绘制用户界面组件，如窗口、菜单和按钮。由USER.EXE和USER32.DLL组成。

图形设备接口（GDI）：负责以独立于设备的方式绘制图形。由GDI.EXE和GDI32.DLL组成。

### 对MS-DOS的依赖

对于终端用户来说，MS-DOS是Windows 95的底层组件，例如用户可以阻止加载图形用户界面并将系统引导到实模式MS-DOS环境中。这引发了用户和专业人士之间程度不小的争论：Windows 95究竟是操作系统，还是仅仅在MS-DOS上运行的图形外壳。

在启动图形用户界面时，虚拟机管理器会接管与文件系统和磁盘相关的功能。MS-DOS本身被降级为16位设备驱动程序的兼容层。这与依赖于MS-DOS执行文件和磁盘访问的Windows早期版本形成对比（Windows for Workgroups 3.11在启用32位文件及磁盘访问时也能够在很大程度上绕过MS-DOS）。将MS-DOS保留在内存中允许Windows 95在合适的Windows驱动程序不可用时使用DOS设备驱动程序。Windows 95能够使用所有16位Windows 3.x驱动程序。

与Windows 3.1x不同，在Windows 95中运行的DOS程序不需要为鼠标、CD-ROM及声卡加载DOS驱动程序，而是使用Windows驱动程序。启动Windows 95仍然需要HIMEM.SYS，但EMM386和其他内存管理器仅由旧版DOS程序所使用。此外，CONFIG.SYS和AUTOEXEC.BAT的设置对Windows程序没有影响（除HIMEM.SYS外）。无法在Windows 3.x上运行的DOS游戏可以在Windows 95中运行（游戏往往会将Windows 3.x锁定或导致其他问题）。与Windows 3.x一样，使用EGA或VGA图形模式的DOS程序会在窗口模式下运行（CGA和文本模式程序可以继续以全屏模式运行）。

要激活Windows 95的MS-DOS组件，可以在启动Windows 95之前按下F8键暂停默认启动过程并显示DOS启动选项菜单，由此允许用户继续正常启动Windows、以安全模式启动Windows或打开DOS提示符。此时系统与早期版本的MS-DOS一样没有32位支持，必须为鼠标和其他硬件加载DOS驱动程序。

由于Windows 95基于DOS开发，Windows 95必须保持内部DOS数据结构与的数据结构同步。即使是原生32位Windows程序，启动程序时MS-DOS也会被短暂执行以创建称为“程序段前缀”的数据结构。MS-DOS甚至可能会在执行此操作时耗尽常规内存，从而阻止程序启动，而Windows 3.x首先在常规内存中分配固定段。由于内存段是固定分配的，Windows无法移动这些内存段，从而导致无法启动更多的程序。

Microsoft在Windows 95 OSR2（OEM Service Release 2）中部分删除了对文件控制块（DOS 1.x和CP/M的API保留）的支持。FCB功能可以读取但无法写入FAT32卷。

## 基本资料

- 操作系统家族：Microsoft Windows
- 开发者：微软公司
- 网站： www.microsoft.com/windows95
- 源码模式：不开放源代码
- 许可证：微软最终用户许可协议
- 支援平台：IA-32
- 内核类别：集成式内核
- 发布日期：1995年7月14日
- 正式发售日期：1995年8月24日
- 前一代：Windows 3.1x（1992－1993）
- 后一代：Windows 98（1998）
- support_status：在2001年12月31日停止支持