Windows内核原理与实现

Windows内核原理与实现
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2010-05
版次: 1
ISBN: 9787121105289
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 689页
字数: 850千字
正文语种: 简体中文
264人买过
  •   《Windows内核原理与实现》从操作系统原理的角度,详细解析了Windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的I/O模型。在介绍这些关键部件时,《Windows内核原理与实现》直接以Windows的源代码(WRK,WindowsResearchKernel)为参照,因而读者可以了解像Windows这样的复杂操作系统是如何在x86处理器上运行的。
      在内容选取方面,《Windows内核原理与实现》侧重于Windows内核中最基本的系统部件,同时也兼顾到作为一个操作系统的完整性,所以,《Windows内核原理与实现》也介绍了像存储体系、网络、Windows环境子系统等,这些虽然并不位于内核模块但却支撑整个Windows运行的重要部件。在《Windows内核原理与实现》最后,也介绍了WindowsServer2003以后的内核发展和变化。
      虽然书中有大量关于Windows代码实现的描述,但是《Windows内核原理与实现》并没有罗列WRK中的代码,即使读者不对照WRK的源代码,也可以从这些章节的描述中理解Windows的实现机理。在每一个技术专题的介绍中,《Windows内核原理与实现》几乎都提供了一个框架图,并且有关键细节的实现分析,这样做的意图是让读者既能够对一项技术有总体上的把握,也通晓关键的实现细节。
      Windows操作系统已经有20年历史了,市面上有大量关于Windows技术的文档和书籍,但是,真正从源代码来诠释Windows底层机理的,《Windows内核原理与实现》还是第一次尝试。在《Windows内核原理与实现》覆盖的内容中,有相当一部分是第一次以文字形式披露出来的,期望这些内容能消除人们对于Windows的神秘感。
      写作《Windows内核原理与实现》的目的是让对Windows有好奇心的人真正了解到Windows中的核心机理,让计算机专业的学生和老师,以及系统软件工程师可以快速地领略到Windows中先进的系统技术,以及在Windows上编写出更加高效的软件。《Windows内核原理与实现》也配备了一些小工具,通过这些小工具,读者可以查看内核中的静态或动态的信息,甚至观察系统的行为,可通过Internet下载这些工具。 潘爱民,浙江海宁人,获得了南开大学数学学士学位,清华大学工学硕士学位,以及北京大学计算机科学博士学位。他从中学时代开始接触计算机编程,经历了从DOS到Windows各种版本的发展历程。潘爱民曾经长期从事软件技术的研究和开发工作,撰写了大量软件技术文章,1999年曾经是 第1章概述1
    1.1操作系统基础2
    1.1.1计算机系统的硬件资源管理2
    1.1.2为应用程序提供执行环境5
    1.2学习操作系统之必备知识7
    1.3WINDOWS操作系统发展历史9
    1.4WINDOWS内核的版本11
    1.5操作系统的研究与发展13
    1.6本章总结16

    第2章WINDOWS系统总述17
    2.1现代操作系统的基本结构17
    2.2WINDOWS系统结构18
    2.2.1Windows内核结构20
    2.2.2Windows内核中的关键组件22
    2.2.3Windows子系统29
    2.2.4系统线程和系统进程32
    2.3关于WINDOWS研究内核34
    2.3.1WRK包含了什么35
    2.3.2WRK源代码说明36
    2.3.3本书对WRK源代码的引用38
    2.4WINDOWS内核的基本概念39
    2.4.1处理器模式40
    2.4.2内存管理41
    2.4.3进程和线程管理43
    2.4.4中断和异常45
    2.4.5同步48
    2.5WINDOWS内核中的公共管理设施50
    2.5.1Windows内核中的对象管理50
    2.5.2注册表和配置管理器58
    2.5.3事件追踪(ETW)69
    2.5.4安全性管理72
    2.6WINDOWS引导过程79
    2.6.1内核加载79
    2.6.2内核初始化86
    2.6.3建立用户登录会话91
    2.7本章总结97

    第3章WINDOWS进程和线程99
    3.1进程基本概念99
    3.1.1多进程模型99
    3.1.2进程和程序101
    3.2线程基本概念104
    3.2.1线程模型104
    3.2.2线程调度算法106
    3.2.3线程和进程的关系108
    3.3WINDOWS中进程和线程数据结构108
    3.3.1内核层的进程和线程对象108
    3.3.2执行体层的进程和线程对象120
    3.4WINDOWS的进程和线程管理131
    3.4.1Windows进程中的句柄表131
    3.4.2获得当前线程和进程136
    3.4.3进程和线程的创建过程137
    3.4.4进程和线程的结束147
    3.4.5系统初始进程和线程149
    3.5WINDOWS中的线程调度151
    3.5.1线程优先级152
    3.5.2线程状态转移154
    3.5.3时限管理164
    3.5.4优先级调度和环境切换166
    3.6进程和线程状态监视工具172
    3.6.1ProcMon使用示例172
    3.6.2ProcMon实现原理174
    3.7本章总结174

    第4章WINDOWS内存管理175
    4.1内存管理概述176
    4.1.1页式内存管理177
    4.1.2段式内存管理181
    4.1.3内存管理算法介绍184
    4.1.4Windows内存管理概述192
    4.2WINDOWS系统内存管理194
    4.2.1系统地址空间初始化194
    4.2.2系统地址空间内存管理209
    4.2.3系统PTE区域的管理224
    4.3进程虚拟内存管理229
    4.3.1地址空间的创建和初始化229
    4.3.2地址空间切换234
    4.3.3虚拟地址空间的管理235
    4.3.4内存区对象241
    4.4内存页面交换249
    4.4.1x86中的PTE250
    4.4.2软件PTE:无效PTE和原型PTE253
    4.4.3页面错误处理257
    4.4.4Windows的写时复制263
    4.5物理内存管理265
    4.5.1PFN数据库265
    4.5.2物理页面的状态变化270
    4.5.3物理页面链表的管理和操作274
    4.5.4修改页面写出器279
    4.5.5进程/栈交换器281
    4.5.6低内存通知和高内存通知284
    4.6工作集管理285
    4.6.1Windows工作集管理器285
    4.6.2平衡集管理器291
    4.7内存监视工具MEM_MON292
    4.7.1Mem_Mon使用介绍292
    4.7.2Mem_Mon实现原理293
    4.8本章总结294

    第5章WINDOWS中的并发和同步295
    5.1进程和线程同步基础295
    5.1.1并发性基础296
    5.1.2进程或线程之间的通讯299
    5.1.3经典的同步问题303
    5.2WINDOWS中断与异常308
    5.2.1硬件中断的发生和处理308
    5.2.2中断请求级别(IRQL)314
    5.2.3中断对象317
    5.2.4DPC(延迟过程调用)320
    5.2.5时钟中断和定时器管理324
    5.2.6APC(异步过程调用)328
    5.2.7异常分发333
    5.3不依赖于线程调度的同步机制340
    5.3.1提升IRQL实现数据同步340
    5.3.2互锁操作342
    5.3.3无锁的单链表实现343
    5.3.4自旋锁345
    5.4基于线程调度的同步机制351
    5.4.1线程进入等待351
    5.4.2分发器对象358
    5.4.3门等待365
    5.4.4执行体资源(executiveresource)367
    5.4.5推锁(pushlock)370
    5.4.6死锁375
    5.5使用工具DPERFLITE376
    5.5.1DPerfLite使用示例376
    5.5.2DPerfLite实现原理378
    5.6本章总结379

    第6章WINDOWSI/O系统381
    6.1I/O概述382
    6.1.1现代计算机系统的I/O382
    6.1.2I/O软件技术386
    6.1.3Windows的I/O系统结构388
    6.2I/O管理器390
    6.2.1驱动程序初始化390
    6.2.2驱动程序对象和设备对象397
    6.2.3文件对象401
    6.2.4对象生命周期管理405
    6.3即插即用管理器406
    6.3.1即插即用的基本要求407
    6.3.2Windows中驱动程序的即插即用支持408
    6.3.3设备列举与设备树409
    6.4电源管理器411
    6.4.1电源管理概述412
    6.4.2Windows中的电源管理415
    6.5设备驱动程序420
    6.5.1驱动程序分类420
    6.5.2例子驱动程序toaster423
    6.5.3驱动程序的代码结构425
    6.5.4toaster设备的设备栈430
    6.5.5过滤驱动程序的配置和加载431
    6.5.6非即插即用驱动程序435
    6.6I/O处理437
    6.6.1I/O请求包(IRP)438
    6.6.2针对独立设备对象的I/O处理444
    6.6.3处理I/O请求过程中的事项449
    6.6.4针对设备栈的I/O处理459
    6.6.5I/O完成端口463
    6.7I/O监视工具IRPMON466
    6.7.1IRPMon使用介绍466
    6.7.2IRPMon实现原理467
    6.8本章总结468

    第7章WINDOWS存储管理469
    7.1存储管理概述469
    7.1.1硬件存储体系(Memoryhierarchy)470
    7.1.2Windows的存储管理结构472
    7.2WINDOWS缓存管理474
    7.2.1Windows缓存空间的内存管理474
    7.2.2缓存管理器的数据访问路径481
    7.2.3直接使用缓存中的数据484
    7.2.4缓存管理器的预读处理491
    7.2.5缓存管理器的延迟写494
    7.3WINDOWS卷管理497
    7.3.1Windows中存储栈结构497
    7.3.2卷的挂载501
    7.3.3卷与文件系统504
    7.3.4文件对象的I/O处理508
    7.4WINDOWS文件系统510
    7.4.1文件系统驱动程序结构511
    7.4.2RAW文件系统和FsRtl516
    7.4.3文件系统的过滤520
    7.4.4FAT文件系统527
    7.4.5NTFS文件系统532
    7.5本章总结540

    第8章WINDOWS系统服务541
    8.1WINDOWS系统服务原理541
    8.1.1Intelx86的用户模式-内核模式切换541
    8.1.2Windows的用户模式-内核模式切换546
    8.1.3Windows中的系统服务分发550
    8.1.4增加系统服务表或表项557
    8.2LPC(本地过程调用)服务561
    8.2.1LPC结构模型561
    8.2.2LPC端口和LPC消息563
    8.2.3LPC通讯模型的实现565
    8.2.4LPC应用571
    8.3命名管道(NAMEDPIPE)服务573
    8.3.1命名管道的名称解析573
    8.3.2命名管道的通讯模型575
    8.3.3命名管道的实现577
    8.4邮件槽(MAILSLOT)服务580
    8.4.1邮件槽的名称解析580
    8.4.2邮件槽的通讯模型581
    8.4.3邮件槽的实现581
    8.5SDT显示工具SDTVIEWER583
    8.5.1SDTViewer使用介绍583
    8.5.2SDTViewer实现原理584
    8.6本章总结585

    第9章WINDOWS内核高级话题587
    9.1网络587
    9.1.1Windows网络体系结构587
    9.1.2TDI(传输驱动程序接口)591
    9.1.3NDSI(网络驱动程序接口规范)594
    9.1.4WindowsVista以后的网络结构597
    9.2WINDOWS子系统599
    9.2.1Windows子系统结构599
    9.2.2Windows子系统初始化与GUI线程602
    9.2.3窗口管理606
    9.2.4GDI(图形设备接口)616
    9.2.5WindowsVista以后的子系统变化622
    9.3内核日志625
    9.3.1WRK中的内核记录器625
    9.3.2利用ETW信息诊断性能问题628
    9.4WINDOWSVISTA/SERVER2008/7的重要变化636
    9.4.1MinWin工程636
    9.4.2??639

    附录A建立编译和调试WRK环境641
    A.1编译WRK641
    A.2启动WRK645
    A.3调试WRK648
    附录B内核代码插入工具KINJECTTOOLKIT657
    B.1KINJECTTOOLKIT功能介绍658
    B.2KINJECTTOOLKIT的代码实现659
    B.3KINJECTTOOLKIT的限制663
  • 内容简介:
      《Windows内核原理与实现》从操作系统原理的角度,详细解析了Windows如何实现现代操作系统的各个关键部件,包括进程、线程、物理内存和虚拟内存的管理,Windows中的同步和并发性支持,以及Windows的I/O模型。在介绍这些关键部件时,《Windows内核原理与实现》直接以Windows的源代码(WRK,WindowsResearchKernel)为参照,因而读者可以了解像Windows这样的复杂操作系统是如何在x86处理器上运行的。
      在内容选取方面,《Windows内核原理与实现》侧重于Windows内核中最基本的系统部件,同时也兼顾到作为一个操作系统的完整性,所以,《Windows内核原理与实现》也介绍了像存储体系、网络、Windows环境子系统等,这些虽然并不位于内核模块但却支撑整个Windows运行的重要部件。在《Windows内核原理与实现》最后,也介绍了WindowsServer2003以后的内核发展和变化。
      虽然书中有大量关于Windows代码实现的描述,但是《Windows内核原理与实现》并没有罗列WRK中的代码,即使读者不对照WRK的源代码,也可以从这些章节的描述中理解Windows的实现机理。在每一个技术专题的介绍中,《Windows内核原理与实现》几乎都提供了一个框架图,并且有关键细节的实现分析,这样做的意图是让读者既能够对一项技术有总体上的把握,也通晓关键的实现细节。
      Windows操作系统已经有20年历史了,市面上有大量关于Windows技术的文档和书籍,但是,真正从源代码来诠释Windows底层机理的,《Windows内核原理与实现》还是第一次尝试。在《Windows内核原理与实现》覆盖的内容中,有相当一部分是第一次以文字形式披露出来的,期望这些内容能消除人们对于Windows的神秘感。
      写作《Windows内核原理与实现》的目的是让对Windows有好奇心的人真正了解到Windows中的核心机理,让计算机专业的学生和老师,以及系统软件工程师可以快速地领略到Windows中先进的系统技术,以及在Windows上编写出更加高效的软件。《Windows内核原理与实现》也配备了一些小工具,通过这些小工具,读者可以查看内核中的静态或动态的信息,甚至观察系统的行为,可通过Internet下载这些工具。
  • 作者简介:
    潘爱民,浙江海宁人,获得了南开大学数学学士学位,清华大学工学硕士学位,以及北京大学计算机科学博士学位。他从中学时代开始接触计算机编程,经历了从DOS到Windows各种版本的发展历程。潘爱民曾经长期从事软件技术的研究和开发工作,撰写了大量软件技术文章,1999年曾经是
  • 目录:
    第1章概述1
    1.1操作系统基础2
    1.1.1计算机系统的硬件资源管理2
    1.1.2为应用程序提供执行环境5
    1.2学习操作系统之必备知识7
    1.3WINDOWS操作系统发展历史9
    1.4WINDOWS内核的版本11
    1.5操作系统的研究与发展13
    1.6本章总结16

    第2章WINDOWS系统总述17
    2.1现代操作系统的基本结构17
    2.2WINDOWS系统结构18
    2.2.1Windows内核结构20
    2.2.2Windows内核中的关键组件22
    2.2.3Windows子系统29
    2.2.4系统线程和系统进程32
    2.3关于WINDOWS研究内核34
    2.3.1WRK包含了什么35
    2.3.2WRK源代码说明36
    2.3.3本书对WRK源代码的引用38
    2.4WINDOWS内核的基本概念39
    2.4.1处理器模式40
    2.4.2内存管理41
    2.4.3进程和线程管理43
    2.4.4中断和异常45
    2.4.5同步48
    2.5WINDOWS内核中的公共管理设施50
    2.5.1Windows内核中的对象管理50
    2.5.2注册表和配置管理器58
    2.5.3事件追踪(ETW)69
    2.5.4安全性管理72
    2.6WINDOWS引导过程79
    2.6.1内核加载79
    2.6.2内核初始化86
    2.6.3建立用户登录会话91
    2.7本章总结97

    第3章WINDOWS进程和线程99
    3.1进程基本概念99
    3.1.1多进程模型99
    3.1.2进程和程序101
    3.2线程基本概念104
    3.2.1线程模型104
    3.2.2线程调度算法106
    3.2.3线程和进程的关系108
    3.3WINDOWS中进程和线程数据结构108
    3.3.1内核层的进程和线程对象108
    3.3.2执行体层的进程和线程对象120
    3.4WINDOWS的进程和线程管理131
    3.4.1Windows进程中的句柄表131
    3.4.2获得当前线程和进程136
    3.4.3进程和线程的创建过程137
    3.4.4进程和线程的结束147
    3.4.5系统初始进程和线程149
    3.5WINDOWS中的线程调度151
    3.5.1线程优先级152
    3.5.2线程状态转移154
    3.5.3时限管理164
    3.5.4优先级调度和环境切换166
    3.6进程和线程状态监视工具172
    3.6.1ProcMon使用示例172
    3.6.2ProcMon实现原理174
    3.7本章总结174

    第4章WINDOWS内存管理175
    4.1内存管理概述176
    4.1.1页式内存管理177
    4.1.2段式内存管理181
    4.1.3内存管理算法介绍184
    4.1.4Windows内存管理概述192
    4.2WINDOWS系统内存管理194
    4.2.1系统地址空间初始化194
    4.2.2系统地址空间内存管理209
    4.2.3系统PTE区域的管理224
    4.3进程虚拟内存管理229
    4.3.1地址空间的创建和初始化229
    4.3.2地址空间切换234
    4.3.3虚拟地址空间的管理235
    4.3.4内存区对象241
    4.4内存页面交换249
    4.4.1x86中的PTE250
    4.4.2软件PTE:无效PTE和原型PTE253
    4.4.3页面错误处理257
    4.4.4Windows的写时复制263
    4.5物理内存管理265
    4.5.1PFN数据库265
    4.5.2物理页面的状态变化270
    4.5.3物理页面链表的管理和操作274
    4.5.4修改页面写出器279
    4.5.5进程/栈交换器281
    4.5.6低内存通知和高内存通知284
    4.6工作集管理285
    4.6.1Windows工作集管理器285
    4.6.2平衡集管理器291
    4.7内存监视工具MEM_MON292
    4.7.1Mem_Mon使用介绍292
    4.7.2Mem_Mon实现原理293
    4.8本章总结294

    第5章WINDOWS中的并发和同步295
    5.1进程和线程同步基础295
    5.1.1并发性基础296
    5.1.2进程或线程之间的通讯299
    5.1.3经典的同步问题303
    5.2WINDOWS中断与异常308
    5.2.1硬件中断的发生和处理308
    5.2.2中断请求级别(IRQL)314
    5.2.3中断对象317
    5.2.4DPC(延迟过程调用)320
    5.2.5时钟中断和定时器管理324
    5.2.6APC(异步过程调用)328
    5.2.7异常分发333
    5.3不依赖于线程调度的同步机制340
    5.3.1提升IRQL实现数据同步340
    5.3.2互锁操作342
    5.3.3无锁的单链表实现343
    5.3.4自旋锁345
    5.4基于线程调度的同步机制351
    5.4.1线程进入等待351
    5.4.2分发器对象358
    5.4.3门等待365
    5.4.4执行体资源(executiveresource)367
    5.4.5推锁(pushlock)370
    5.4.6死锁375
    5.5使用工具DPERFLITE376
    5.5.1DPerfLite使用示例376
    5.5.2DPerfLite实现原理378
    5.6本章总结379

    第6章WINDOWSI/O系统381
    6.1I/O概述382
    6.1.1现代计算机系统的I/O382
    6.1.2I/O软件技术386
    6.1.3Windows的I/O系统结构388
    6.2I/O管理器390
    6.2.1驱动程序初始化390
    6.2.2驱动程序对象和设备对象397
    6.2.3文件对象401
    6.2.4对象生命周期管理405
    6.3即插即用管理器406
    6.3.1即插即用的基本要求407
    6.3.2Windows中驱动程序的即插即用支持408
    6.3.3设备列举与设备树409
    6.4电源管理器411
    6.4.1电源管理概述412
    6.4.2Windows中的电源管理415
    6.5设备驱动程序420
    6.5.1驱动程序分类420
    6.5.2例子驱动程序toaster423
    6.5.3驱动程序的代码结构425
    6.5.4toaster设备的设备栈430
    6.5.5过滤驱动程序的配置和加载431
    6.5.6非即插即用驱动程序435
    6.6I/O处理437
    6.6.1I/O请求包(IRP)438
    6.6.2针对独立设备对象的I/O处理444
    6.6.3处理I/O请求过程中的事项449
    6.6.4针对设备栈的I/O处理459
    6.6.5I/O完成端口463
    6.7I/O监视工具IRPMON466
    6.7.1IRPMon使用介绍466
    6.7.2IRPMon实现原理467
    6.8本章总结468

    第7章WINDOWS存储管理469
    7.1存储管理概述469
    7.1.1硬件存储体系(Memoryhierarchy)470
    7.1.2Windows的存储管理结构472
    7.2WINDOWS缓存管理474
    7.2.1Windows缓存空间的内存管理474
    7.2.2缓存管理器的数据访问路径481
    7.2.3直接使用缓存中的数据484
    7.2.4缓存管理器的预读处理491
    7.2.5缓存管理器的延迟写494
    7.3WINDOWS卷管理497
    7.3.1Windows中存储栈结构497
    7.3.2卷的挂载501
    7.3.3卷与文件系统504
    7.3.4文件对象的I/O处理508
    7.4WINDOWS文件系统510
    7.4.1文件系统驱动程序结构511
    7.4.2RAW文件系统和FsRtl516
    7.4.3文件系统的过滤520
    7.4.4FAT文件系统527
    7.4.5NTFS文件系统532
    7.5本章总结540

    第8章WINDOWS系统服务541
    8.1WINDOWS系统服务原理541
    8.1.1Intelx86的用户模式-内核模式切换541
    8.1.2Windows的用户模式-内核模式切换546
    8.1.3Windows中的系统服务分发550
    8.1.4增加系统服务表或表项557
    8.2LPC(本地过程调用)服务561
    8.2.1LPC结构模型561
    8.2.2LPC端口和LPC消息563
    8.2.3LPC通讯模型的实现565
    8.2.4LPC应用571
    8.3命名管道(NAMEDPIPE)服务573
    8.3.1命名管道的名称解析573
    8.3.2命名管道的通讯模型575
    8.3.3命名管道的实现577
    8.4邮件槽(MAILSLOT)服务580
    8.4.1邮件槽的名称解析580
    8.4.2邮件槽的通讯模型581
    8.4.3邮件槽的实现581
    8.5SDT显示工具SDTVIEWER583
    8.5.1SDTViewer使用介绍583
    8.5.2SDTViewer实现原理584
    8.6本章总结585

    第9章WINDOWS内核高级话题587
    9.1网络587
    9.1.1Windows网络体系结构587
    9.1.2TDI(传输驱动程序接口)591
    9.1.3NDSI(网络驱动程序接口规范)594
    9.1.4WindowsVista以后的网络结构597
    9.2WINDOWS子系统599
    9.2.1Windows子系统结构599
    9.2.2Windows子系统初始化与GUI线程602
    9.2.3窗口管理606
    9.2.4GDI(图形设备接口)616
    9.2.5WindowsVista以后的子系统变化622
    9.3内核日志625
    9.3.1WRK中的内核记录器625
    9.3.2利用ETW信息诊断性能问题628
    9.4WINDOWSVISTA/SERVER2008/7的重要变化636
    9.4.1MinWin工程636
    9.4.2??639

    附录A建立编译和调试WRK环境641
    A.1编译WRK641
    A.2启动WRK645
    A.3调试WRK648
    附录B内核代码插入工具KINJECTTOOLKIT657
    B.1KINJECTTOOLKIT功能介绍658
    B.2KINJECTTOOLKIT的代码实现659
    B.3KINJECTTOOLKIT的限制663
查看详情
您可能感兴趣 / 更多
Windows内核原理与实现
单片机系统设计与应用开发
潘爱民 著
Windows内核原理与实现
金工实训
潘爱民、朱海燕 编
Windows内核原理与实现
中国房地产市场非有效性问题研究
潘爱民 著
Windows内核原理与实现
金属工艺学
潘爱民、景红芹 主编
Windows内核原理与实现
Windows内核原理与实现
潘爱民 著
Windows内核原理与实现
玄同教材 机械制图
潘爱民、薛慧 编
Windows内核原理与实现
程序员的自我修养:链接、装载与库
潘爱民、俞甲子、石凡 著
Windows内核原理与实现
COM原理与应用
潘爱民 著