万本电子书0元读

万本电子书0元读

顶部广告

Windows 内核设计思想电子书

推荐: 《处理器虚拟化技术》 《x86/x64体系探索及编程》 《Windows环境下32位汇编语言程序设计(典藏版)》 《Windows内核设计思想》以源码结合调试来剖析 Windows 内核,从而方便大家更好地理解整个内核框架,可谓独树一帜。

售       价:¥

纸质售价:¥74.50购买纸书

150人正在读 | 0人评论 6.2

作       者:陈树宝

出  版  社:电子工业出版社

出版时间:2015-03-01

字       数:24.1万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
《Windows 内核设计思想》主要讲述Windows 内核的设计过程,从底层的细节使用源码一步一步分析,结合Bochs 和WinDbg 调试器行验证。《Windows 内核设计思想》提供全部源代码和能直编译的项目工程,集理论、架构、编码、运行和调试于一体行讲述,从多种角度呈现内核构架的基本流程。《Windows 内核设计思想》主要包括了Windows 内核加载器(ntldr)的分析,Windows 内核调试组件的设计,实现结构化异常处理的支持,并对内存管理和对象管理行了精心讲解,同时对基于IRP 请求包的I/O 系统行了论述,并且介绍了如何设计文件系统,后简单讲解了程和线程的一些基本知识。 《Windows 内核设计思想》适合希望深了解Windows 内核框架的程序员及对此感兴趣的读者阅读。<br/>【推荐语】<br/>推荐: 《处理器虚拟化技术》 《x86/x64体系探索及编程》 《Windows环境下32位汇编语言程序设计(典藏版)》 《Windows内核设计思想》以源码结合调试来剖析 Windows 内核,从而方便大家更好地理解整个内核框架,可谓独树一帜。<br/>
目录展开

推荐序1

推荐序2

序言

前言

第1章 搭建开发和调试环境

1.1 编译环境

1.2 使用Bochs运行ntos.img

1.3 使用VMware运行ntos.vmdk

1.4 模拟调试运行

1.5 编程思想(等差数列求和)

1.6 函数调用约定

1.7 模块扩展约定

1.8 本章总结

第2章 Windows内核加载器(SU)

2.1 主引导记录(MBR)

2.2 系统分区(Partition1)

2.3 SU模块(startup.com)

2.4 检测物理内存

2.5 开启A20地址线

2.6 重新定位GDT和IDT

2.7 保护模式

2.8 加载Loader模块

2.9 转移控制权

2.10 导出函数

2.11 本章总结

第3章 Windows内核调试设计

3.1 初始化调试系统

3.2 初始化模拟调试

3.3 初始化内核调试

3.4 分发异常

3.5 内核调试分发

3.6 内核调试引擎核心

3.7 调试通信协议

3.8 本章总结

第4章 Windows内核加载器(Loader)

4.1 NtProcessStartup

4.2 PcMachInit

4.3 初始化内存管理器

4.4 分页机制

4.5 Loader读/写支持

4.6 加载器参数块

4.7 加载和启动内核

4.8 本章总结

第5章 结构化异常处理

5.1 异常触发

5.2 分发异常(RtlDispatchException)

5.3 异常处理(_except_handler3)

5.4 全局展开(__global_unwind2)

5.5 局部展开(__local_unwind2)

5.6 冒泡排序(BubbleSort)

5.7 本章总结

第6章 内存管理

6.1 物理内存管理概述

6.2 虚拟地址空间布局

6.3 初始化内存系统(MmArmInitSystem)

6.4 初始化机器相关(MiInitMachineDependent)

6.5 初始化非分页池(MiInitializeNonPagedPool)

6.6 初始化系统PTE(MiInitializeSystemPtes)

6.7 映射页帧数据库(MiMapPfnDatabase)

6.8 初始化颜色表(MiInitializeColorTables)

6.9 初始化页帧号数据库(MiInitializePfnDatabase)

6.10 初始化池(InitializePool)

6.11 分配池页面(MiAllocatePoolPages)

6.12 释放池页(MiFreePoolPages)

6.13 建立分页池(MiBuildPagedPool)

6.14 分配池内存(ExAllocatePoolWithTag)

6.15 释放池内存(ExFreePoolWithTag)

6.16 初始化系统空间映射(MiInitializeSystemSpaceMap)

6.17 本章总结

第7章 对象管理

7.1 对象概述

7.1.2 对象头(object header)

7.1.4 对象类型例程模板(object type procedure template)

7.2 分配对象内存空间(ObpAllocateObject)

7.3 释放对象内存空间(ObpDeallocateObject)

7.4 初始化对象系统(ObInitSystem)

7.5 创建句柄表(ExCreateHandleTable)

7.6 创建对象类型(ObCreateObjectType)

7.7 创建目录对象(NtCreateDirectoryObject)

7.8 创建对象(ObCreateObject)

7.9 插入对象(ObInsertObject)

7.10 查找对象名(ObpLookupObjectName)

7.11 查找目录项(ObpLookupEntryDirectory)

7.12 创建无名句柄(ObpCreateUnnamedHandle)

7.13 分配句柄表项(ExpAllocateHandleTableEntry)

7.14 解析符号链接(ObpParseSymbolicLink)

7.15 Section和Segment

7.16 本章总结

第8章 I/O系统

8.1 初始化I/O系统(IoInitSystem)

8.2 创建驱动对象(IopCreateDriver)

8.3 创建设备对象(IoCreateDevice)

8.4 分配I/O请求包(IoAllocateIrp)

8.5 传递I/O请求包(IoCallDriver)

8.6 释放I/O请求包(IoFreeIrp)

8.7 解析设备(IopParseDevice)

8.8 磁盘读/写支持

8.9 本章总结

第9章 文件系统设计

9.1 文件系统初始化(DriverEntry)

9.2 挂载卷(NtfsMountVolume)

9.3 打开文件(NtfsOpenFile)

9.4 读文件(NtfsReadFile)

9.5 关闭文件(NtfsCloseFile)

9.6 发起卷挂载请求

9.7 加载NTDLL

9.8 本章总结

第10章 进程和线程

10.1 进程和线程初始化

10.2 线程优先级(priority)

10.3 线程状态(thread state)

10.4 线程调度(thread dispatch)

10.5 分配进程虚拟内存(NtAllocateVirtualMemory)

10.6 创建用户进程(smss.exe)

10.7 本章总结

附录A PE格式

累计评论(1条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部