以下是Windows NT与Windows 95的对比,这些对比同样适用于Windows 2000/XP与Windows 98/Me的对比。
(1)Windows NT支持多处理器系统,而Windows 95不支持。
(2)Windows NT可以在各种体系结构的计算机上运行,而Windows 95只限于在x86平台上运行。
(3)Windows 95不具有支持安全性的文件系统(如自主访问控制)。
(4)Windows NT是完全32位的操作系统,不包含16代码。Windows 95继承了其前辈MS-DOS及Windows 3.1中大量的16位代码。
(5)Windows NT是完全可重入的,而Windows 95的重要部分是不可重入的(主要来源于Windows 3.1的早期16位代码)。这些不可重入的代码包括多数的图形和窗口管理函数(USRE和GDI)。当Windows 95中的一个32位应用程序试图调用一个由不可重入的16位代码实现的系统服务时,必须先获得一个系统范围的锁定(或互斥)来阻止其他线程进入这段不可重入的代码。更糟糕的是,16位应用程序在运行时保存这个锁定。因此,尽管Windows 95的内核Kernal中包含强制的32位多线程调度程序,但由于系统的大部分仍在不可重入代码中执行,因而应用程序在多数时间内运行单个线程。
(6)Windows NT提供在其自己的地址空间中运行16位Windows应用程序的选项;而Windows 95总是在共享的地址空间中运行16位Windows应用程序,在这个地址空间中,他们可能会彼此相互破坏,导致程序挂起。
(7)在Windows NT中共享的内存只对于有相同共享内存区域的进程是可见的(在Win32 API中称为“文件映射对象”)。在Windows 95中所有共享的内存对于所有进程来说都是可见和可写的。因此,任何进程都可以向任何文件映射对象中写入数据。
(8)Windows 95中有一些重要的操作系统页面,这些页面对于用户态是可写的,这样就允许用户用程序去破坏系统。但在Windows NT中,所有操作系统页面对于应用程序代码来说都是不可写的。
(9)在Windows 95上能够运行所有早期的MS-DOS和Windows 3.1应用程序,特别是那些需要直接访问系统硬件的应用程序,但Windows NT只支持大多数16位应用程序,由于Windows NT对I/O访问有严格的权限限制,因此对于直接访问系统硬件的16位应用程序不提供支持。