操作系统版本

 这本书包括三个基于WindowNT技术的最新的Windows操作系统:Window2000,WinXp(32位和64位)和Win2003(32位和64位)。本书大部分都是基于这三个版本之上的。表格1-1列出了发行的基于Windows NT产品的内部版本和产品名称。
从一开始公开WindowNT时,微软就解释说Window NT将取代Window95(Win95后相继发布Win98,WinMe)。下面就列出了WinNT与Win95在架构上的不同和它的优越性:
WinNT支持多线程-Win95不支持。
WinNT文件操作系统支持权限设置(例如目录访问权限)。Win95不支持。
WinNT是一个完全的32位(已有64位)操作系统-它不包含16位代码,且不支持16位Windows应用程序的运行。而Win95从Win3.1和MS-DOS继承了大量了16位代码。
WinNT是一个完全可重入-Win95有效部分是不可重入的。不可重入的代码包含在图形和Windows管理功能(GDI和USER)。当一个32位程序试图在Win95调用一个16位不支持重入的系统服务时,程序必须首先获得一个系统级的锁,以防止其它线程的调用。更糟糕的是一个16位程序持有此锁运行。以至于Win95拥有了超前32位程序的多线程模式,程序经常使用单线程是因为系统内部大多数都是实现的是不可重入的代码。
WinNT提供了一个可以跑16位程序的独立空间-Win95应用程序则都在互相被打断的共享空间上跑着16位程序。
只有进程被映射时在同一个内存区间上时,WinNT的进程共享内存才是可见的。在Win95上,所有进程的共享空间都是可见可写的。所以很多进程可写并且能够被进程程序所打断。
Win95有很多重要的系统页面可在用户模式下被写入,所以它也支持一个用户程序能够打断或者是和系统程序相互冲突。
虽然WinNT平台不能像Win95一样支持老的MS-DOS和Win3.1下的程序以及16位的MS-DOS驱动程序,但Win95 100%兼容MS-DOS和Win3.1的程序只是一个强制性的目标,对于WinNT目标是在保证系统可靠性和完整性的基础上同时进行大多数现有的16位程序。
基本概念和术语
在书中我们引用了一些结构和概念可能不被大多数读者所熟悉,在这节中,我们将对我们引用的术语进行定义。您应该能够在进入后边的章节之前熟悉它们。
Windows API
Windows 应用程序接口(API)是Windows操作系统家族中系统程序的接口,其中包括,Win2000,WinXp,Win2003,Win95,Win98,WinMe以及WinCE。第一个操作系统都继承了不同的WinAPI的一部分。Win95,Win98,WinME和WinCe并没有在本书中进行介绍。
在引入64位的WinXp和Win2003之前,32位的操作系统应用程序接口被叫作Win32API,原来16位操作系统上的接口叫作16位Windows API。在本书中,Windows API引用的是32位的Win2000和所有32位和64位的WinXP以及Win2003中的接口。
The Windows API consists of thousands of callable functions, which are divided into the following major categories:
Windows API由成千上万个函数组成,它们被分为以下几个主要类别:
基础服务
组件服务
用户接口服务
图形和多媒体服务
消息协作
网络
网络服务
配致力于内部关键基础服务,例如进程和线程,内存管理,I/O以及安全。
如何理解.Net和WinFX?
.NET框架包含的框架类库(FCL)和公共语言运行库(CLR),提供如实时编译、类型验证、垃圾回收、代码访问安全性的托管代码执行环境。在这些特征中,CLR提供一个加快程序执行效率和减少程序错误的开发环境。
公共语言运行库实现了传统的COM服务器,其代码存在于标准用户模式下的Windows动态连接库中。事实上,所有的.net框架组件都是由非托管函数的分层的标准用户模式下的Windows动态连接库实现的。图1-1说明了各个组件间的关系:
WinFX是新的Windows API。它是由.net框架和Vista之间的关系所演化而来的,它也能够被安装在Winxp和Win2003系统之上。WinFX提供下一代操作系统应用程序的接口。
有趣的是,Win32不能被原来的WinNT接口所选定。因为WinNT项目是开始于替换OS/2的第二个版本,主要程序接口是32位的OS/2 Presentation Manager上的API。但是,项目进行一年之后,Windows3.0受到市场打击并且开始下滑。结果微软改变了方向开始开发WinNT,使其在未来替代Windows系列其它产品,也相当于OS/2的替代产品。
虽然Windows API能够引入很多不能被用在Win3.1平台上新的功能,但微软决定开发新的API以兼容16位Windows API的函数名称、语义以及数据类型使在任何时候简单程序从Windows 16位平台到WinNT平台成为可能。所以当你第一次看Windows API时会惊奇的发现为什么很多函数名和接口看起来好像不一致必须保证统一的思想,其中一个原因就是这些不同都是为了确保Windows API兼容老的16位的Windows API。
服务,功能和常式
有几个术语在Windows用户和程序文档的上下文中有着不同的意思,比如,单词服务可引用在操作系统、设备驱动和服务器进程上。下面的列表描述了特殊术语在本书的意思:
Window API 函数文档:WindowsAPI可调用子程序。例如CreateProcess,CreateFile,GetMessage。
本地系统服务:无文档,用户模式下操作系统中的基础服务。比如:NtCreateProcess 是系统内部服务Windows CreateProcess函数用来创建新的进程。
内核支持函数:只能够调用内核模式下的操作系统子程序。比如,ExAllocatePool是一个驱动程序从操作系统堆内存中动态分配内存的方法。
Windows ServicesWindows服务管理进程。比如任务管理服务在用户模式下支持CMD命令。
DLL(动态连接库): 一个将子程序连接到一块能够动态加载程序并调用其子过程的二进制文件。比如Msvcrt.dll、Kernel32.dl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值