分类: WINDOWS
2007-12-13 09:52:38
本章介绍全书使用的微软windows操作系统的关键概念和术语.比如: Windows API, processes, threads, virtual memory, kernel mode and user mode, objects, handles, security, and the registry. 同时介绍用于探索windows本质的工具,比如: kernel debugger, the Performance tool, and key tools from . 怎样通过Windows Device Driver Kit (DDK) and Platform Software Development Kit (SDK)寻找更多的windows本质.
本书基于微软Windows NT code 基线, Windows 2000, Windows XP (32-bit and 64-bit versions), and Windows Server 2003 (32-bit and 64-bit versions).
Table 1-1. Windows Operating System Releases |
||
Product Name |
Internal Version Number |
Release Date |
Windows NT 3.1 |
3.1 |
July 1993 |
Windows NT 3.5 |
3.5 |
September 1994 |
Windows NT 3.51 |
3.51 |
May 1995 |
Windows NT 4.0 |
4.0 |
July 1996 |
Windows 2000 |
5.0 |
December 1999 |
Windows XP |
5.1 |
August 2001 |
Windows Server 2003 |
5.2 |
March 2003 |
Windows NT vs. Windows 95
Windows NT是用来取代Windows 95 (and its subsequent releases, Windows 98 and Windows Millennium Edition)的,两大体系的比较如下:
*Windows NT 支持多处理器系统—Windows 95 不支持
*Windows NT 文件系统支持安全(如自由决定的访问控制),而Windows 95文件系统不支持
*Windows NT是一个完全的32位 (现在是 64位) 的操作系统—不包含16位的代码,除了支持16位的应用程序外。Windows 95 包含大量从更老版本(如Windows 3.1 and MS-DOS)继承下来的老的16位的代码.
*Windows NT 是完全 reentrant的—而 Windows 95 中重要的部分是 nonreentrant (主要是从 Windows 3.1 取得的16位代码)。这部分nonreentrant的代码包括大部分图形和window管理函数(GDI and USER)。当Windows 95中的一个32位应用程序试图调用一个用16位nonreentrant代码实现的系统服务时候,该程序必须首先取得一个系统全局锁(或者是 mutex)来阻止别的线程进入nonreentrant代码库。并且更糟糕的是,一个16位的应用程序会在运行的时候一直占用这个锁。结果,虽然 Windows 95的核心部分包括一个抢占式的32位多线程调度程序,但是由于很多系统代码仍然是以nonreentrant代码实现,应用程序经常只能单线程运行。
*Windows NT 提供了在16位windows应用程序本身地址空间运行的方法,而Windows 95 总是在共享的地址空间运行16位的程序,这样也就导致可能的互相的悬挂与破坏。
*在 Windows NT 上,只有那些被映射到相同内存单元的进程才可以看到进程共享内存。在 Windows 95 中,所有的共享内存可以被所有的进程看到和访问、修改。因此,任何进程都可以写或者是损坏被共同运转的进程所使用的共享内存。
*Windows 95 有一些特定的可以从用户模式(user mode)访问的操作系统页面(pages),这就导致了一个用户程序可能会损坏系统,甚至让系统崩溃。
Windows NT 不在支持所有老式的 MS-DOS and Windows 3.1 程序(它们都直接访问硬件),也不支持16-bit MS-DOS 设备驱动。Windows NT 支持在保护系统完整性和可靠性的前提下支持许多存在的16位程序。