深入解析Windows操作系统(笔记2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flukeshen/article/details/85532377

  Windows内核模式组件有:Windows执行体(executive)、Windows内核(kernel)、设备驱动程序(device drivers)、硬件抽象层(HAL)、窗口和图形系统(User32.dll及Gdi32.dll的内核实现)。
  其中执行体在最上层,提供基本的操作系统服务,由中层的内核与驱动程序所支持,最下层为硬件抽象层隔离平台硬件差异。窗口和图形系统移进内核是当时为了提高UI性能,Vista之后又把这部分移回用户层了。

  Windows核心系统文件:
  Ntoskrnl.exe    执行体和内核
  Ntkrnlpa.exe    执行体和内核,支持物理地址扩展(PAE)
  Hal.dll        硬件抽象层
  Win32k.sys    Windows子系统的内核模式部分
  Ntdll.dll    系统服务存根和内部支持函数
  Kernel32.dll User32.dll Gdi32.dll    Windows子系统DLL

  考虑到性能,内核和HAL文件和单处理器和多处理器版本之分:
  Ntoskrnl.exe        Ntkrnlmp.exe
  Ntkrnlpa.exe        Ntkrpamp.exe
  Hal.dll、Halacpi.dll    Halmps.dll、Halmacpi.dll

  书里为窗口管理和GDI实现移至内核长篇大论辟了一通谣,可惜就在几年后的Vista一直到现在的Win10又把这部分实现移回至用户层,哈哈,打脸了。

  执行体的主要组件有:配置管理器、进程和线程管理器、I/O管理器、即插即用管理器、高速缓存管理器、内存管理器。
  内核提供一些最基本的机制,如线程调度、同步服务,代码主要用C编写。
  WDM驱动分类总线型驱动、功能型驱动、过滤型驱动。设备驱动程序和Windows服务都是在HKLM\SYSTEM\CurrentControlSet\Services中定义的,通过类型值来区分。

  系统线程通过PsCreateSystemThread函数创建。
  会话管理器(Smss.exe)是系统中第一个创建的用户模式进程,做完一些初始化任务后,启动登陆进程和子系统进程。
  登陆进程(Winlogon.exe)捕获密码后交由本地安全认证服务器进程(Lsass.exe)进行认证。完成认证后,LSASS生成一个访问令牌对象,登陆进程利用此访问令牌创建用户会话的初始进程Userinit.exe(HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon的Userinit字符串值配置)。
  Userinit.exe最后会创建Explorer.exe(HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon的Shell字符串值配置)。

展开阅读全文

没有更多推荐了,返回首页