标题：win95
简介
Windows 95是一个混合的16位/32位Windows系统。Windows 95 是微软之前独立的操作系统MS-DOS和视窗产品的直接后续版本。第一次抛弃了对前一代16位x86的支持，因此它要求的80386处理器或者在保护模式下运行于一个兼容的速度更快的处理器。它以对GUI的重 
要的改进和底层工作为特征。同时也是第一个特别捆绑了一个版本的DOS的视窗版本（Microsoft DOS 7.0）。 这样，微软就可以保持由视窗3.x创建起来的GUI市场的统治地位，同时使得没有非微软的产品可以提供对系统的底层操作服务。也就是说，视窗95具有双重的角色。它带来了更强大的、更稳定、更实用的桌面图形用户界面，同时也结束了桌面操作系统间的竞争。（技术上说，Windows图形用户界面可以在DR-DOS上运行，也可能可以在PC-DOS上运行——这个情况直到几年后在法庭上被揭示，这时其它一些主要的DOS市场的商家已经退出市场了。）
发布
1995年8月24日，伴随着滚石乐队振聋发聩的《Start Me Up》，微软发布了Windows 95。微软对Windows 95中文版精雕细刻、力求完美。据统计，微软 在开发Windows 95中文版过程中总共投入了近10万人/小时；共派发了6000多套测试版本供用户测试及征求建议。与以往的Windows中文版本相比，Windows 95中文版是微软投入力量最大、持续开发时间最长、与西文版本推出的时间差最短的中文版本。 　中国广大计算机用户十分关注Windows 95中文版的发展，并表现出浓厚的兴趣。很多政府机构、企业用户和个人用户纷纷表露了将安装该软件的意向；一些软件开发商也正在Windows 95中文版的基础上开发系列应用软件。将与Windows 95中文版一同交付生产的，还有Microsoft Office95中文标准版和专业版软件。 　Office95中文标准版内含Microsoft Word 7.0中文版字处理软件、Microsoft Excel 7.0中文版电子表格软件和Microsoft PowerPoint 7.0演示图形软件。Office 95中文专业版内除含有以上3个软件外，还另有Microsoft Visual FoxPro 3.0中文版标准版关系数据库开发软件。 
特征
全新的用户界面Windows 95的全新用户界面给用户以全新的感受。对于初学Windows 95的用户，会体会到Windows 95启动和其任务栏上应用程序切换的简便性；对于熟悉Windows 95的用户，Windows 95将提供更多的对应用程序和Windows 95本身的控制权。新增的程序和附件Windows 95包含比Windows 3.X更多的程序和附件，如Microsoft Exchange、Microsoft 传真、Microsoft Network、写字板、画图、电话拔号程序、文件传送、超级终端、CD播放器、音量控制、MS-DOS方式、磁盘碎片整理程序、磁盘扫描程序、磁盘空间管理和备份。Web服务器功能Microsoft个人Web服务器是一个使用HTTP（超文本传输协议）按HTML文件格式传输信息的网络文件和应用程序服务器。个人Web服务器允许在Internet上或通过Intranet上的局域网（LAN）发布Web页，使用FTP（文件传输协议）服务发送或接收文件。对便携机的强力支持无论在家中还旅行途中，都可以通过Windows 95使用便携机实现诸如公文包、直接电缆联接和推迟打印等功能。公文包功能可以用来在两台计算机之间（如随身携带的便携机和办公室的计算机）更新文件。直接电缆联接功能是指使用一根串行电缆或高速并行电缆将便携机与其他计算机联接，这样可以通过便携机访问该计算机和与之相联的网络，并使用其中的共享资源。Windows 95的推迟打印特性是指在计算机和打印机断开的情况下仍可以将文档发送到打印机，当计算机重瓣与打印机联接时，自动将要打印的文档送到打印机打印。NetWare目录服务如果计算机联接到了正运行NetWare Directory Services(NDS)的Novell NetWare网络，在登录到Windows 95时可以登录到NDS，实现对NetWare资源的访问和管理。联网功能Windows 95使用了新的联网技术，提供简捷的网络浏览方式、资源共享方式、网络安装和配置操作、拨号网络和远程网络管理等。拨号网络功能利用调制解调器，实现网络互联。通过远程管理功能，网络系统管理员可以查看正在使用的计算机上的文件，并帮助解决问题。丰富多彩的Windows设计方案。
系统结构
系统保护环Windows 95充分利用386处理器的能力，支援两个特权级。它用0和3两个特权级管理微处理器，也可称为两个环。环0中的部件是操作系统的底层，如包括对低级内存储器管理的支持，环0里的软件在整个系统中功能最强，包括了几乎所有微处理器的指令，并能存取关键的数据结构，如页表等。因此环0里的软件最可靠。 　Windows 95允许用户安装新的虚拟设备驱动程序（VXD），这些VXD可以支持后加的硬件或提供系统范围内的软件服务。VXD都在环0里运作，因此，如果VXD有一点差错，就会使整个系统崩溃。而如果要开发一种软件，使其能和失败的VXD分离，那将是非常困难的。 　在Intel处理器中，环的过度（特权级的改变）会增加程序的运作时间,以 Intel 486为例，如果没有环的过度，一个子程序调用另一个段中的代码需要20个时钟周期，有环的过度则需要69个时钟周期。这是因为当处理器的特权级变化时，处理器控制会发生变化，寄存器要重装。因此，较少的环过度意味着性能的提高，这也是Windows 95 把其圆形系统的多数代码放在环3的主要原因。 　32位 Windows应用程序优先装入的空间为 4MB—1·5GB，标准开发工具也缺省地用这个空间，这主要和 Windows NT相匹配。当然，用户也可以选择较低的地址空间，这时，用户需要做起额外的工作。系统为每个32位应用标记的低16KB空间不可获得，这主要是为了捕获程式的错误。许多程式常犯的错误是使用空指针，在Windows 95中，空地址将产生内存储器错误，这对开发者及时发现指针错误是有益的。虚拟机管理器虚拟机管理器VMM是Windows 95系统的核心，VMM的效率对整个系统的性能有着重要影响。系统中许多复杂的部件都在这里。虚拟机管理器的代码包含以下几项特性：在每个过程的私有地址空间里，32位的Windows应用程序都是抢先调度的；每个32位的应用程序有一个私有的消息队列；VXD能够动态装载和定位，减少系统的操作集；许多系统资源都是按32位内存储器模式开发的，大大提高了系统能力。 　Windows 95有两种基本的VM：一是系统VM，KERNEL，USER，GDI部件和Windows的应用程序都在这里；M是 MS－DOS VM，运作一个MS－DOS应用程序，这个程序既能运作在虚拟8086模式，也能运作在保护模式。支持MS－DOS应用程序Windows支持MS-DOS应用程序，这就意味着当用户工作基于DOS的应用时，不必离开Windows 95。Windows 95软件也提供最新的MS－DOS 6．X版的代码和数据。Windows 95支持单一的 MS－DOS应用模式。这种模式对MS－DOS应用提供绝对的兼容性。虽然开发人员做了很大的努力，使更多的MS－DOS程序能在MS－DOS VM下运作，但这种单一的MS－DOS应用模式为那些不能在Windows下运作的MS－DOS程序提供真正的兼容性，这就是说，此模式对以前的DOS版本向下兼容。 Windows 95因 MS DOS之关系，与Windows 3.1的最大区别是：基于Windows的应用完全不需要MS DOS代码支持。Windows已有许多的版本（如Windows 3.1，Windows for Workgroups 3.1，Windows 3.11等），每种都支持越来越多的MS DOS INT软件服务。而且，基于Windows的应用程序在进出虚拟86模式时，对MS DOS代码的需要也在减少。 
虚拟机调度方式Windows 95中的过程调度和虚拟机管理关系十分密切。在Windows 95中，线程是系统调度程序要处理的主要对象，也是调度的基本单元，假如用户熟悉Windows NT，就会习惯处理线程。线程的特征： 　1）在过程里是一个可执行路径； 　2）能够被任何32位的Windows程序或运作在 Windows 95里的 VXD创建； 　3）有自己私有的堆叠存储器和执行价前后关系； 　4）固定的过程分享存储器； 　5）一个过程可以创建许多并发的线程。调试程序Windows 95的VMM实际上有两个调试程序，即主调度程序和时间片调度程序。前者负责并保证最高优先级的线程一直在执行；后者负责动态调整线程的优先级，以便提供合理的多任务。 　首先，主调度程序先检查系统中的每一个线程，然后选择出优先级最高的线程来执行。为了与Windows NT兼容，优先级从0到31，共32级，数字越大优先级越高。同时，为了与以前的Windows版本兼容，设备驱动程序的优先级能设置成比这32级还高。比最高优先级低的线程，主调度程序不予考虑。这里，最高优先级未必是31，假如只有两个线程，优先级一个是20，一个是16，那么最高优先级就是20；如果此时又来一个优先级是21的线程，那么21就成为最高优先级。 　除了纯粹的定量求优先级的值外，时间调度程序根据当前VM的状态来决定时间片的分配。假如一个VM有当前的执行焦点（典型）情况是它的视窗是显示的活动视窗，那么，它就是前台VM。当重新计算当前优先级时，调度程序就使前台的优先级提高，而其他VM作为后台考虑，继续没有升高的优先级。系统虚拟机内的调度所有基于Windows应用程序的线程都运作在系统VM下，它是支  系统服务基本结构
持多任务的唯一VM。系统VM中，一个支持16位应用的子系统，多个是支持32位的Windows应用的。在系统VM下，通常包括多个有效一的，具有相同优先级的线程，为了处理这种情况，调度程序采用Round－Robin调度策略，以确保每个线程公平分配时间片。 一旦系统VM中的线程用完了给它的时间片，调度程序就把它放到了这种优先级相同的线程尾部。假如选择的线程失败地用完了分给它的时间片，那么，调度程序就把处理器交给下一个优先级相同的线程，并允许失败的线程利用时间片的剩余部分。调度程序控制调度程序控制有两种不同的影响，一种是它本身的一套内部算法，试图为每个线程提供一种平滑的多任务环境。“平滑”的目标是给线程提供一个合理的处理器时间，既要使它能很好地完成工作，又不能太长，以免其他线程被锁住的时间太长。另一个对调度程序的影响是 VXD能够直接调用的一套系统服务。为了达到这一目的，调度程序内部采用了三种线程优先级的动态升高，定时的损耗优先级的继承。线程的应用Windows的设计者面临的问题之一是如何更好地处理失败的运作程序。要开发完全没有错误的软件是不可能的，因此，Windows必须能够处理应用程序中的错误。其处理过程包括两步：一是恰当地处理失败的程序，即允许用户关闭应用而不掉失数据；二是做好后续的事，除了打开档案外，应用程序都会利用和处理系统提供的资源，如内存储器段、笔、刷等。假如系统不能释放这些资源占用的内存储器，那么可以获得的资源就会减少。 　大多数应用程序共有的错误都是寻址时引起的错误。这类错误是由于应用程序试图用无效的指针指向某些对象引起的。在Windows 3.1下就产生 GP错误，用户会看到一个对话框，它提供了产生错误的程序模块的细节以及关闭错误程序的选项。支持多消息队列Windows程序都是事件驱动的，这种特性要求系统能提供一种由应用程序传递消息的方法。消息可由设备驱动程序、应用程序和系统发出。系统把所有硬件的初始化消息放在一个被称为原始输入队列（RawInput Queue）的数据结构中。 　Windows 95支持多消息队列，这种设计的改进来自 Windows NT。因为有效的消息流对好的响应时间和平滑多任务是极其重要的，而这种支持多消息队列的设计技术是关键。它能够保证系统在一个应用程序失败时不至于死锁。这种多消息队列技术称做 “异步输入”（Input Desynchronization）。在Windows 95下，经原始输入队列添加消息十分简单。系统中还有一个运作的线程，它有规律地把这消息移出队列转到各个私有应用消息队列。这种队列有两种：所有16位应用程序的单一队列和所有32位应用程序中的线程的私有队列。API层Win32 API是 Microsoft公司的战略性系统接口，它第一次出现在Wi  结构
ndows NT中，并把其子集Win32 API引入到Windows 3.1中。正是由于Win 32 API的强大功能及远大前途，Windows 95也包含了Win32。Microsoft公司希望每个应用程序都是32位的，而目前许多应用程序都是16位的，因此，Windows 95的特性必须支持16位应用程序。 对于 Windows 95，这就意味着要有新的编译器、汇编器和连接程序来开发32位应用程序。系统自身至少必须提供32位版本的包含 KERNEL、USER和 GDI的 Windows子系统来支持新的 Win32 API。这些代码必须小、速度快、易于测试，还要有好的文档。16/32位代码混合代码混合技术在以前的Windows版本、OS/2和 Windows NT中都已使用过，Windows 95中也用了这种技术，并解决了以下问题： 　1）32位代码使用32位线性寻址，而16位代码使用 16位段选择器加 16位偏移量来寻址。要使代码混合使用，必须在两种寻址方式之间有一种转换。解决这个问题的方法，包含一种称为“贴瓦”i-link"护的技术，即系统分配一个新的16位段选择子，它描述的存储器能覆盖此时存储器包含的参数。 　2）在C语言中，基于Win32的应用中整型是32位，而在16位的应用中是16位的。当调用16位代码时，32位的整数参数必须转换成16位，返回时扩展成32位。如果参数在寄存器中，这种转换就容易些。但许多Windows函数把参数放在堆叠中。 　3）返回32位值（如指针）的16位代码要用DX：AX这对寄存器，而32位代码希望返回值放入EAX寄存器中。 　4）32位代码用386的SS：ESP寄存器对为堆叠寻址，而 16位代码用 SS：SP寄存器对。这就必须进行反复的寄存器交换，可能还要进行参数拷贝。
游戏
游戏也开始在Windows下面运行得比较快了。因为在Windows 95面世 以前，那些运行在Windows下的游戏都是被取笑的对象。它们又慢，又难看，而且玩起来很无聊。人人都知道好游戏都要在DOS下面运行，否则它就根本算不上游戏。终于，Windows 95改变了这一切。游戏玩家再也不需要为获得可用的基本内存和扩展内存来运行某个游戏程序而整天折腾config.sys和autoexec.bat了。现在，只需安装Windows，安装好后就可以开始游戏了。  
问题
虽然Windows 95是首款32位系统，但由于又与16位系统混合，所以Windows 95的主要缺点就是稳定性，蓝屏、死机对Windows 95而言算得上是家常便饭，那时Windows 95被戏称为“瘟酒屋”、“晕倒死”。因此在一年之后才出现了Windows 95的修正版：Windows 95 OSR2，又称Windows 97。
影响
Windows 95的应用标明了一个“开始”按钮的介绍以及桌面个人电脑桌面上的工具条，这一直保留到现在视窗后来所有的产品中，并不断得到完善，直到即将推出的 Windows 8 “开始”按钮取消，换来的是新的“开始”屏幕。后来的Windows 95版本附带了Internet Explorer 3，然后是Internet Explorer 4。当Internet Explorer 4被集成到操作系统后，它将给系统带来一些新特征。Internet Explorer被用来给系统的桌面提供HTML支持。这个也是在微软的反托拉斯案中的焦点，因为集成Internet Explorer排挤了微软的竞争对手网景的产品。 　Windows 95的升级版本是Windows 98、Windows 98 SE、Windows Me，它们采用windows 9x内核。而Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows7、Windows Server 2008、Windows Server 2008 R2及windows 8采用windows NT内核，只属于windows 95的后续版本。
新硬件支持状态
windows95已经无法支持最新硬件，如需使用windows95系统，可以选择在虚拟机中运行windows95，从而在新式计算机上面运行那些为windows95开发的老程序。