天天看点

windows操作系统关键的系统组件

一、  1、NTDLL。DLL 系统支持库,用于子系统DLL,包含以下两种类型的函数: (1)系统服务分发存根,会调用WINDOWS执行体系统服务 (2)内部支持函数,供子系统、子系统DLL及其他的原生映像文件使用 第一组函数为执行体系统服务提供了接口,在用户模式下可以通过这些接口函数调用执行体的系统服务。对于每个这样的函数,NTDLL包含了一个同名的入口点。函数内部的代码包含了与处理器体系结构相关的模式切换指令,通过该指令可以转换到内核模式下,从而调用系统服务分发器,分发器检验了参数后,调用真正的内核模式系统服务,其中包括NTOSKRNL。EXE内部的实际代码。 2、执行体 执行体是NTOSKRNL。EXE的上层(内核是下层), 包括以下函数 (1)可在用户模式下调用的导出函数。通过NTDLL被导出

(2)通过DEVICEIOCONTROL函数来调用的设备驱动器函数 (3)只能在内核模式下调用的导出函数,且已经文档化 (4)在内核模式下调用但未文档化 (5)定义为全局符号但是未被导出的函数,包括在NTOSKRNL内调用的内部支持函数 (6)未定义为全局符号,而是在一个模块内部的函数 执行体 包括以下主要组件  (1)配置管理器。负责系统注册表的实现和管理 (2)进程和线程管理器,创建或终止进程和线程 (3)安全引用监视器,强制在本地计算机上实行安全策略 (4)I/O管理器,实现了与设备无关的I/O操作 (5)即插即用管理器 (6)电源管理器 (7)WDM WINDOWS管理堆满全程,允许设备驱动程序发布有关性能和配置的信息 (8)调整缓存管理器,提高了以文件基础的I/O操作的性能 (9)内存管理器,实现了虚拟内存  (10)逻辑预取器,加速系统和进程的启动过程 另外执行体还包含四组主要的支持函数 (1)对象管理器 (2)LPC设施,在同一台机器上的客户进程和服务器进程之间传递消息 (3)公共运行库函数,比如:字符串处理、算术操作、数据类型转换以及安全结构处理 (4)执行体支持例程,比如系统内存分配、同步对象等  二、 内核是由NTOSKRNL。EXE中的一组函数以及对于硬件体系结构的低层支持(比如中断和异常分发)构成,主要以C编写,对于特殊指令和寄存器,使用汇编 [内核对象]  提供一组定义明确的、可预知的操作系统低层原语和机制,从而使得执行体中的高层组件可以做它们需要做的事情。将所有策略决定给了执行体,仅有线程调度和分发展由内核自己来实现   从内核外部来看,执行体将线程和其他可共享的资源表示为对象,这些对象要求一些策略开销,这些开销在内核中不存在,内核实现一组简单的对象,执行体层的大部分对象包装了一个或多个内核对象。   一组称为控制对象的内核对象建立了有关控制各种操作系统功能的语义。   一组称为分发器对象的内核对象整合了同步的能力,改变或影响了线程的调度。 [硬件支持] 内核的另一个主要任务是将执行体和设备驱动程序从各种硬件体系结构中抽象出来,企图使公共代码最大化支持内核的这一功能,支持一组可移植的接口。    有些内核接口在HAL实现,有些涉及与X86有关的接口 三、 [ 硬件抽象层HAL] 设备驱动程序调用HAL例程来保持可移植性   [设备驱动程序] 可加载的内核模式模块,通过以。SYS结尾,在I/O管理器与相应的硬件之间建立起链接,设备驱动程序位于以下三种执行环境之一: 1、在发起I/O功能的用户线程环境中 2、在内核模式系统线程的环境中 3、作为一个中断的结果 通过调用HAL来维护硬件是设备驱动程序的工作,分为以下类型 1、硬件设备驱动程序 2、文件系统驱动程序 3、文件系统过滤器驱动程序 4、网络重定向器和服务器 5、协议驱动程序 6、内核流式过滤器驱动程序 从WDM的角度有以下几种: 1、总线型驱动程序 2、功能型驱动程序 3、过滤型驱动程序