前言、目录与准备

写在最前面:书籍为《Windows内核原理与实现》,本章非正式内容,为前言、目录解读,后续工作梳理。

书之前言:

本书适合于已经有了操作系统基本概念的读者进一步理解 Windows 操作系统。通过学习本书的内容, 读者不仅可以掌握 Windows 的核心机制,也可以理解像 Windows 这样的现代操作系统是如何构建起来的。

本书定位:

一本按照操作系统基本概念和理论来阐释 Windows 实现机理的书籍。

对读者:

本书中描述的大多数细节是以 WRK(Windows Research Kernel)的代码为基础,但是,对于各种核心机制的介绍却是通用的,并不限于 WRK 内核,甚至适用于 各种版本的 Windows。

WRK的全称是“Windows Research Kernel”,它是微软为高校操作系统课程提供的可修改和跟踪的操作系统教学平台。它给出了Windows这个成功的商业操作系统的内核大部分代码,可以对其进行修改、编译,并且可以用这个内核启动Windows操作系统。可让学生将操作系统基本原理和商业操作系统内核联系起来,进一步加深对操作系统整体的理解。

如何去读:

  • 配合 WRK 代码来阅读本书是最理想的阅读方式;
  • 善用 windbg,并设置 Microsoft 提供的公共符号服务(参考本书附录 A),则可以在内核调试环境中查看到很多实现细节

前置知识:

  • 操作系统的基本知识
  • 较为熟练的编程能力
  • 硬件系统结构、汇编语言和编译原理等

内容组织

  • 从现代操作系统的概念模型出发,重点讨论了进程、线程和内存管理的基本概念以及在 Windows 中的实现细节,也讨论了 Windows 中的并发性和同步处理机制
  • 还讲述了 Windows 的存储体系结构,它把 Windows 系统中众多的内核组件,包括缓存管理器、文件系统、磁盘管理驱动 程序等,纳入到了一个统一的框架中。
  • 内核中的对象管理、配置管理(即注 册表服务)、系统内核日志、安全性管理、系统服务分发、LPC(Local Procedure Call, 本地过程调用),以及网络和 Windows 子系统等

:本书讨论的内容 以 Windows Server 2003 SP1 为基准系统,但同样适用于客户端操作系统

内容概述:9正文+2附录

  • 第 1 章介绍了操作系统的基础概念、Windows 操作系统的发展历史、Windows 内核 的发展,以及学习操作系统的一些前提知识,最后还介绍了操作系统的研究进展

    歌曰:可以简单过一下,当看故事了

  • 第 2 章从总体上介绍了 Windows 操作系统

    • 现代操作系统的基本模型
    • Windows 的总体结构与有关 WRK 和相应源代码 的一些说明
    • 内核中的 一些基本概念
    • Windows 内核中的公共管理设施
    • Windows 引导过程,包括内核初始化和用户会话建立过程

    歌曰:通过这一节建立整本书的知识框架

  • 第 3 章: Windows 中的进程和线程管理

  • 第 4 章: Windows 中的内存管理

  • 第 5 章: Windows 中的并发和同步机制

  • 第 6 章: Windows 的 I/O 模型

  • 第 7 章: Windows 的存储管理

  • 第 8 章: Windows 的系统服务

  • 第9章:Windows 中的网络结构、Windows 子系统, 以及Windows的内核日志

先要做的

学习编译 WRK,以及在虚拟机环境中运行 和调试 WRK

工具准备

  • ProcMon进程和线程监视工具。它可以实时地显示当前每个处理器正在执行哪些进程和线程。这些信息还可以被转储到一个文本文件中供进一步分析和查看。
  • MemMon内存监视工具。它可以显示当前系统内存空间和每一个进程的用户空间的内存布局。在进程内存空间,MemMon 能够显示进程中的模块、堆、栈等信息。
  • DPerfLite:一个可以揭示线程间同步关系的工具。它记录了当前系统中与同步有关的内核操作,允许用户在一个图形界面中直观地观察这些操作,并检查线程之间的各种同步关系。
  • IRPMon:IRP 完成情况的监视工具。它在内核中记录下每一个 I/O 请求的完成操作, 然后由 IRPMon 用户模式程序定期地从内核中获取这些记录,并显示在一个列表窗口中,供用户查看。
  • SdtViewer,SDT(服务描述符表)显示工具。此工具可以显示出当前系统中的 SDT; 如果有符号信息支持,它也能够显示 Windows 子系统的 SDT。

写在最后:操作系统是基础能力,无论什么专业都很重要,在安全领域也是如此。比如恶意代码通过Rootkit隐藏痕迹、漏洞研究中的系统漏洞、内核漏洞等。希望通过本书完成第一步,后续会在具体的实践中提高。