55(77)----windows internals 6 mark david alex

unix子系统
SUA允许在windows上运行Unix程序。所有的服务器版本、企业版、旗舰版都有这个特性。SUA提供了2000个Unix函数以及300个unix工具, http://technet.microsoft.com/en-us/library/cc771470.aspx 有详细介绍。
第五章介绍了如何创建SUA进程。
早期的POSIX子系统
POSIX,定义是““a portable operating system interface based on UNIX,”(基于unix的可移植操作系统接口),指的是UNIX风格的操作系统的一组国际标准。POSIX标准鼓励提供UNIX风格的接口,以方便应用程序移植。
windows最早实现了一个标准,POSIX.1,是ISO/IEC 9945-1:1990或者IEEE POSIX standard 1003.1-1990.该标准主要用于满足1980晚期政府需求.在NIST制定的FIPS151-2标准中,政府采购必须支持POSIX.1兼容。WINDOWs NT 3.5 3.51和4支持FIPS 151-2.
由于必须支持POSIX.1,系统在设计之初就考虑,必须提供合适的底层支持,以保证能够顺利实现POSIX.1子系统。(fork在windows执行体中实现,硬文件链接在windows文件系统中实现)
NTdll.dll
NTdll主要供环境子系统使用。包含两种类型的函数
系统分发存根,windows执行体系统服务
内部支持函数,供子系统、子系统dll和其他本地映像使用。
第一类的函数提供了用户态可调用的windows执行体系统服务的接口。有400个多函数,如NTCreateFile,NTSetEvent。这些函数大多数都可以通过API来调用,只有一部分是仅供操作系统使用的。
对于这些函数,Ntdll包含同样的名字,函数包含了架构相关的指令,执行过程中会切换到内核模式来调用系统服务分发,后者验证参数之后,调用Ntoskrnl.exe中的代码。
Ntdll包含很多函数,比如说加载器(ldr开头),对象管理器,windows子系统通信函数(csr开头)。ntdll包含通用运行时函数(Rtl),开头),支持用户模式调试(DbgUi),开头)事件跟踪(Etw),)用户态异步过程调用(APC)分发器 异常分发器(第三章详细介绍apc和异常)。还包含一部分CRT,string和标准库的一部分(memcpy strcpy itoa)。
 
执行体
windows执行体位于ntoskrnl.exe上层。包含以下功能
用户模式可以调用的函数。ntdll导出的系统服务。大多数可以通过windows API或者其他子系统的API调用。还有一部分是未文档化的。(如ALPC或者NtQueryInformationProcess,NtCreatePagingFile,)
系统驱动,通过DeviceIOControl来使用。它提供了一个通用接口,供用户态和内核调用,来完成读写之外的任务。
只有内核模式能调用的WDK中的函数
只有内核模式能调用的函数,并且没有在WDK中显示,如以lnbv开头的启动视频驱动所需调用的函数。
定义但是没有导出的函数。包括Ntoskrnl,ntoskrnl调用的内部支持函数,如Iop(io管理器支持函数)或者mi(内存管理器支持函数)开头的函数。
模块内部函数
 
执行体包括以下组件
配置管理器(第4章介绍),实现,管理注册表
进程管理器(第5章介绍)创建,销毁进程和线程。windows内核实现了对进程和线程的支持,执行体添加了额外的功能。
安全引用监视器(security reference monitor  SRM,第6章介绍),为本地计算机实现安全策略。保护操作系统资源,运行时对象的保护和审计。
IO管理器(第二部分第8章介绍)实现设备无关IO,分发IO到合适的驱动程序。
即插即用管理器(Plug and Play (PnP),第二部分第八章),为设备自动查找驱动并且加载。枚举过程中获取每个硬件的资源需求,基于每个设备的资源需求,即插即用管理器分配合适的硬件资源如IO端口,IRQ DMA和内存位置。还负责发送设备改变事件通知(添加设备,卸载设备)。
电源管理器(第二部分第八章)协调电源事件,为驱动程序产生电源管理通知。系统空闲时,电源管理器可以让CPU休眠,以减轻电源消耗。单个设备的电源消耗由驱动程序来处理,通过电源管理器协调。
windows驱动模型,windows管理工具例程。(第4章介绍)允许驱动程序发布性能和配置信息,从用户模式的WMI服务接收命令。WMI的消费者可以位于本机或者网络。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值