Windows_Server_2003体系结构
环境子系统的功能是运行为不同操作系统所编写的应用程序。它能够截取应用程序对特定操作系统API的调用,然后将它们转换成为Windows 2003可以识别的格式,转换后的API调用再传递到处理请求所需要的操作系统组件,最后再将调用所返回的返回码或返回信息转换回应用程序能够识别的格式。
这些子系统在Windows 2003中并不是新功能,但与在NT中相比,它们在这几年中已经有了显著的改进。一些实际应用表明,应用程序在Windows 2003中比在它们当初所设计的目标操作系统中运行得更好。很多应用程序在Windows 2003中也更加安全。例如,Windows 2003中止DOS应用程序时不会对服务器稳定性产生影响,而通常情况下,它会使运行DOS的机器崩溃。表1-1列出的是Windows 2003环境或应用程序子系统。
非Win32子系统只对非Win32的旧式应用程序提供基本支持。对于这些子系统并没有太多的要求,保留它们只是为了运行最简单的实用程序和兼容POSIX或OS/2的函数调用(这些调用通常使用C语言)。例如,POSIX子系统就是为了满足运行UNIX实用程序vi和grep的要求而设置的。
POSIX子系统不是作为UNIX和Windows 2003高级集成的一种方法保留的,例如,如果要在Windows 2003上运行UNIX shell,您仍然需要安装UNIX服务。
在Windows 2003上运行非Windows应用程序会受到一些局限和约束,这些影响来自基础操作系统。关于这些局限和约束,下面将有详细的列举描述,其中大部分约束也包括用户模式的、基于Win32的应用程序:
软件不能直接访问硬件。换句话说,如果应用程序要求硬盘空间时,系统将禁止它直接访问硬件以获得空间信息,它将访问的是用户模式对象。用户模式对象与内核模式对象进行对话,对话由内核模式对象向下传递到操作系统堆栈,再到硬件抽象层
(Hardware Abstraction Layer,HAL),然后信息再逐层向上传递,由堆栈到接口。这个过程就是通常所说的切换处理(handoff processing)。Win32代码中函数实质上都获得一个返回值,使开发人员不必和硬件对话。这对开发人员和操作系统都是有好处的。检查调用有效性的API可以保护操作系统,而开发人员则直接面对简单的调用级接口,它通常只需写一行代码,而不是一万行。
不能直接访问设备驱动程序。上述原则同样适用于设备驱动程序。硬件制造商为Windows 2003建立了访问硬件的驱动程序。驱动程序同样也不能对硬件进行直接访问,而是和由设备驱动程序API提供的抽象对象进行对话。
软件受限于内存中分配的地址空间。这项约束保护操作系统不受流氓应用程序的影响,这些应用程序会试图访问所有可访问的内存。这在Windows 2003中已经不可能了,应用程序只能在所分配的地址空间中活动。
Windows 2003与Windows 2000一样,使用硬盘空间作为准RAM(quasi-RAM)。应用程序并不在意内存的类型或来源,它对于应用程序是透明的。虚拟内存是系统中所有内
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Windows_Server_2003体系结构(3)在线全文阅读。
相关推荐: