windows内核的分析
要Pdf的留邮箱
(c)Gloomy aka Peter Kosyh, Melancholy Coding2001
INTRO (写给NT研究者)
=============================
Мы всего лишь момент во времени
Отблеск в глазах,
Мечты о слепоте,
Образы умирающего рассудка...
(c) by Anathema
00.系统组件
01.Windows NT操作系统的内存格局
02.Windows NT与FLAT模型
03.线程信息块(THREAD INFORMATION BLOCK)
04.进程控制域(PROCESSOR CONTROL REGION)
00.系统组件
=====================
实际上,所有的Windows NT组件其本身都是DLL、PE格式的.EXE文件、导入导出函数。Windows NT的主要组件有:
*Ntoskrnl.exe
系统核心。系统执行函数都集中于此,这些函数又会调用其它组件。核心组件有:对象管理器、内存管理器、进线程创建、进线程控制、LPC、安全管理、异常处理、文件系统、输入输出、VDM、和т.д.一般都位于大于80100000h的地址上。
*Hal.dll
硬件抽象层(Hardware Abstraction Layer)- 硬件相关的模块。该隔离层将操作系统中硬件相关的部分隔离出来以增强系统的可移植性。主要的模块实现了非常底层的函数:程序控制中断、硬件输入输出等等。一般位于大于80100000h的地址上。
*Ntdll.dll
实现某些Win32 API函数。提供了核心模式与用户模式之间的接口。位于用户空间。换句话说,系统函数调用主要由这里导出。
*Kernel32.dll
实现了一些函数,类似于Win9x的核心。其中有很多的函数封装在ntdll.dll中。
*Csrss.exe
进程服务器子系统。其是一个单独的进程,因此受到保护以免受其它进程(位于其它进程的地址空间中)影响。对服务的请求要借助于LPC产生。
*Win32k.sys
驱动程序。用以减少调用Csrss服务开销损失。在此程序中实现了GDI和USER函数。不用LPC而用系统调用-这很明显提高了Windows NT4.0和2K的图形处理性能。
01.Windows NT Windows NT操作系统的内存格局
=============================
在Windows NT中高2G的32位线性地址空间保存了供系统使用的程序。这种格局,地址空间80000000 - ffffffff为系统组件:驱动程序、系统表、系统数据结构等等。系统内存的精确格局是不可能得到的,但是通过其功能用途和大致位置可以区分出各个区域。
*80000000-9FFFFFFF
系统代码。在这里驻留的是Hal和ntoskrnl的代码和数据,还有驱动程序(boot驱动和加载ntosldr的驱动)。GDT、IDT和TSS结构体同样驻留在这些区域中。
*C0000000-C0FFFFFF
系统表的区域。这个线性地址空间区域保存着进程的页表,页目录和其它与进程结构体有关的东西。这个区域不是全局性的,不像其它的系统空间区域,而且对于于每一个进程来说会映射到不同的物理空间,其保存着当前进程的数据结构。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>