检索:
子系统
- win32
- user层
- csrss.exe
- 控制窗口
- 创建/删除,进程,线程
- dll
- csrss.exe
- 内核层
- win32k.sys
- user层
- POSIX
- OS/2
原文:
说到win32k.sys,要先说一下win32子系统。win32k.sys是win32子系统的一部分。
子系统指操作系统的一部分,为操作系统的上层应用程序提供运行环境和接口(API)。windows 2000/xp包含三个子系统:win32、POSIX、OS/2,其中最重要的子系统是win32子系统,其他子系统都要通过win32子系统接收用户的输入和显示输出。所以,win32子系统是windows系统必须的,伴随windows启动时运行,其他子系统则根据需要时加载运行。win32子系统包括两个部分:用户层、内核层。用户层部分主要为csrss.exe以及一组动态链接库。csrss.exe进程主要实现控制台窗口功能、创建/删除进程、线程;动态链接库则直接被连接到应用程序进程、实现文档化的API。win32子系统的内核部分主要为win32k.sys。下面详细讲解win32k.sys。
win32k.sys虽然为驱动文件但不处理I/O请求,主要为应用层提供大量服务。功能上主要实现窗口管理(收集、分发消息,控制窗口显示)和图形设备接口(各种图形绘制、文本输出)。win32.sys向内核注册一组调用函数,介入到内核的线程、进程,每个线程一旦调用win32.sys的服务就成了GUI线程。win32k.sys主要是user32.dll、GDI32.dll的内核实现。ntoskrnl.exe主要是kernel32.dll的内核实现。user32.dll、GDI32.dll、kernel32.dll中的API通过ntdll.dll主要实现功能的过度,最终调用的还是内核层win32k.sys和ntoskrnl.exe提供的服务。ntoskrnl.exe是Windows的大脑,它的上层被称为Executive,下层被称作Kernel。Win32k.sys提供与显示有关的system service。
-----------------------------------------
用户层(ring3)
GDI32.dll user32.dll kernel32.dll
------------------------------------------
ntdll.dll
------------------------------------------
win32k.sys ntoskrnl.exe
------------------------------------------
(图中有些不标准)
先贴出这些,更多的部分在整理中。
没有评论:
发表评论