深入研究WINDOWS内部原理笔记(1/16)
win nt架构
主要分成:
用户模式
内核模式
系统文件:
Ntoskrnl.exe:
执行体和内核
主要负责:
1.执行体功能:
进程和线程管理器
虚拟内存管理器
安全引用监视器
I/O管理
即插即用管理器
电源管理器
缓存管理器
其他一些服务组件,例如对象管理器,LPC,一些库函数和支持函数
2.内核功能
提供其他组件使用的低层操作系统原语
线程调度
中断处理
多处理器的同步
Ntkrnlpa.exe:
支持PAE(物理地址扩展)的执行体和内核(在支持大于4G内存的系统上用到)
主要负责:
Hal.dll:标准PC
Halacpi.dll:高级配置和电源接口(ACPI)PC
Halapic.dll:高级可编程中断控制器(APIC)PC
Halaacpi.dll:APIC ACPI PC
Halmps.dll:多处理器PC
Halmacpi.dll:多处理器ACPI PC
硬件抽象层
主要负责
把内核部分根底下的硬件抽象开来,把底层硬件屏蔽开来,使得NT内核可以在不同的硬件环境下保持可移植性
对硬件平台的细节进行了抽象,包括I/O接口,中断控制器
NT架构支持的硬件结构
1.Hal.dll
Win32k.sys:
Win32子系统的内核模式部分
主要负责:
1.窗口管理器
控制窗口显示
管理屏幕输出
收集来自键盘,鼠标和其他设备的输入
把用户消息传递给应用程序
2.图形设备接口GDI
一个针对图形输入设备的函数库,包括画线,文本和各种图形的函数,以及一些用于控制图形操作的函数
Ntdll.dll
内部支持函数和执行体函数的存根函数
(中间层)
主要负责
将用户模式的请求转译成内核模式的服务
在该层,处理器进行环境切换
(context switch)(sysenter/sysexit)
Kernel32,Advapi32,User32,GDI32等DLL
核心的Win32子系统DLL
windows子系统:
1.环境子系统(csrss.exe):
设计之初是为了兼容运行其他系统例如OS/2 POSIX等系统的程序,但后来由于windows3.0的成功使得windows更专注于对win子系统的支持,使得其兼容支持减弱。
职责:
控制台窗口
创建或删除进程或线程
对16为虚拟DOS机的支持
其他一些支持
2.内核模式驱动程序Win32k.sys
职责:
窗口管理器
图形设备接口GDI
3.子系统DLL
Kernel32.dll, Advapi32.dll, User32.dll和Gdi32.dll等
4.图形设备驱动程序
硬件相关的图形显示器驱动程序,打印机驱动程序和视频微端口驱动程序
系统进程和系统线程
会话管理器(Smss.exe)
登陆管理器WinLogon(Winlogon.exe)
服务控制管理器(Services.exe)
本地安全策略(LSASS.exe),管理活动目录,SAM服务器,事件记录器,LSA服务器
本笔记绝大多数内容出自technet网络广播之深入研究windows内部原理课程。