商家名称 | 信用等级 | 购买信息 | 订购本书 |
Windows内核安全编程从入门到实践(林聚伟著) | |||
Windows内核安全编程从入门到实践(林聚伟著) |
文摘
版权页:
插图:
第2章 内核编程基础知识
2.1 Windows主要系统组件
2.1.1 对象管理器
Windows对象管理器用来管理对象。文件、设备、同步机制、注册表键值等在内核中都使用对象来表示。每个对象都有一个对象头(包含对象的一些信息,如名词、类型和位置等)和一个对象体(包含与各种对象类型相关的数据)。
Windows包含超过25种类型的对象,如文件、设备、线程、进程、事件、互斥体、信号量、注册表键、作业、内存区、符号链接等。
对象管理器执行如下的操作来管理对象:
?负责对象的创建和销毁;
?维护一个对象名字空间以跟踪对象信息;
?跟踪分配给每一个进程的资源;
?跟踪具体对象的访问权限;
?在对象的生命期内管理对象,判断对象何时可以被销毁。
对象管理器导出的接口函数通常包括一个“Ob”前缀,如ObGetObjectSecurity函数。
2.1.2内存管理器
Windows内存管理器用来管理物理内存,主要执行如下的操作:
?管理内存的分配和销毁:
?支持内存映射文件、共享内存及写时复制的实现。
内存管理器导出的接口函数通常包括一个“Mm”前缀,如MmGetPhysicalAddress函数。
2.1.3进程和线程管理器
进程即当前系统中正在运行的软件程序,每个进程都有一个ID;线程则代表了程序的哪部分正在运行,每个线程也有一个ID。
一个进程可能包括多个线程,每个线程通过占用CPU时间获得执行。在单核处理器的机器上,虽然一个进程可能拥有多个线程,但在某一时刻只有一个线程正在运行,且每个线程只运行很短的时间便切换到另一个线程继续执行,从而让用户产生错觉,似乎同一时间有多个程序在执行;在多核处理器机器上,在某一时刻可以有多个线程同时运行。如果一个程序包含有多个线程,那么多个线程可以在不同的处理器上同时运行。
Windows的进程和线程管理器负责处理进程中所有线程的执行问题。无论机器是单核或是多核,在驱动编程中都必须仔细地处理所有的线程,无论这些线程按照什么顺序获得执行,驱动程序都会稳定地运行。
进程和线程管理器导出的接口函数通常包括一个“Ps”前缀,如PsCreateSystemThread函数。
相关阅读:
更多图书资讯可访问读书图书频道:http://www.reAder8.cn/book/