注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信網(wǎng)絡(luò)服務(wù)深入解析Windows操作系統(tǒng)下冊(cè)(第6版)

深入解析Windows操作系統(tǒng)下冊(cè)(第6版)

深入解析Windows操作系統(tǒng)下冊(cè)(第6版)

定 價(jià):¥128.00

作 者: (美)馬克-拉希諾維奇,大衛(wèi)-A.所羅門,艾力克斯-伊納蘇
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121336430 出版時(shí)間: 2018-03-01 包裝:
開本: 16開 頁數(shù): 592 字?jǐn)?shù):  

內(nèi)容簡介

  本書是Windows技術(shù)**參考書的*新版本,本書主要介紹了基于Windows 7 and Windows Server 2008 R2的核心技術(shù)與底層技術(shù),全面闡釋W(xué)indows技術(shù)機(jī)理,是廣大Windows開發(fā)人員必備的參考書。

作者簡介

  Mark Russinovich(馬克?拉希諾維奇)是微軟windows Azure組技術(shù)人員,是Sysinternals工具的作者之一,合著了《深入解析Windows操作系統(tǒng)》系列圖書;David A.Solomon(大衛(wèi)?A.所羅門)是《深入解析Windows操作系統(tǒng)》系列圖書的合著者,并為全球成千上萬的開發(fā)人員和IT專業(yè)人士,包括微軟員工,講授Windows內(nèi)幕課程。他時(shí)常在微軟舉辦的會(huì)議中發(fā)言,包括TechNet和PDC范德成,2004年畢業(yè)于上海交通大學(xué),在微軟和SAP公司有多年項(xiàng)目經(jīng)驗(yàn),構(gòu)建了微型開源項(xiàng)目Robbie's Shell.潘愛民,任職于阿里巴巴,長期從事軟件和系統(tǒng)技術(shù)的研究與開發(fā)工作,撰寫了大量軟件技術(shù)文章,著譯了多部經(jīng)典計(jì)機(jī)圖書,在國內(nèi)外學(xué)術(shù)刊物上發(fā)表了30多篇文章。曾經(jīng)任教于北京大學(xué)和清華大學(xué)(兼職),后進(jìn)入工業(yè)界,先后任職于微軟亞洲研究院、盛大網(wǎng)絡(luò)發(fā)展有限公司和阿里云計(jì)算有限公司,目前也是工信部移動(dòng)操作系統(tǒng)專家組成員。潘愛民先生獲得了數(shù)學(xué)學(xué)士學(xué)位和計(jì)算機(jī)科學(xué)博士學(xué)位,主要研究領(lǐng)域包括軟件設(shè)計(jì)、信息安全、操作系統(tǒng)和互聯(lián)網(wǎng)技術(shù)。

圖書目錄

第8章 I/O系統(tǒng) 1
8.1 I/O系統(tǒng)組件 1
I/O管理器 3
典型的I/O處理過程 4
8.2 設(shè)備驅(qū)動(dòng)程序 5
設(shè)備驅(qū)動(dòng)程序的類型 5
WDM驅(qū)動(dòng)程序 6
分層的驅(qū)動(dòng)程序 7
實(shí)驗(yàn):查看已加載的驅(qū)動(dòng)程序列表 9
驅(qū)動(dòng)程序的結(jié)構(gòu) 11
驅(qū)動(dòng)程序?qū)ο蠛驮O(shè)備對(duì)象 13
實(shí)驗(yàn):看一看設(shè)備對(duì)象 15
實(shí)驗(yàn):顯示驅(qū)動(dòng)程序和設(shè)備對(duì)象 17
打開設(shè)備 18
實(shí)驗(yàn):查看設(shè)備句柄 21
實(shí)驗(yàn):查看Windows設(shè)備名稱之間的映射 23
8.3 I/O處理 24
I/O類型 24
同步I/O和異步I/O 24
快速I/O 25
實(shí)驗(yàn):查看一個(gè)驅(qū)動(dòng)程序登記的快速I/O例程 25
映射文件I/O和文件緩存 26
分散/聚集I/O 27
I/O請(qǐng)求包 27
IRP棧單元 28
實(shí)驗(yàn):查看驅(qū)動(dòng)程序的分發(fā)例程 29
實(shí)驗(yàn):查看一個(gè)線程的未完成IRP 29
IRP緩沖區(qū)管理 30
針對(duì)單層驅(qū)動(dòng)程序的I/O請(qǐng)求 32
為一個(gè)中斷提供服務(wù) 33
完成一個(gè)I/O請(qǐng)求 34
同步 36
針對(duì)分層的驅(qū)動(dòng)程序的I/O請(qǐng)求 38
實(shí)驗(yàn):查看一個(gè)設(shè)備棧 39
實(shí)驗(yàn):查看IRP 40
線程無關(guān)I/O 45
I/O取消 45
用戶發(fā)起的I/O取消 46
線程終止時(shí)的I/O取消 47
實(shí)驗(yàn):調(diào)試一個(gè)無法被殺死的進(jìn)程 48
I/O完成端口 49
IoCompletion對(duì)象 50
使用完成端口 50
I/O完成端口操作 52
I/O優(yōu)先級(jí)支持 54
I/O優(yōu)先級(jí) 54
優(yōu)先化策略 55
I/O優(yōu)先級(jí)反轉(zhuǎn)的避免(I/O優(yōu)先級(jí)繼承) 57
I/O優(yōu)先級(jí)提升和撞升 57
實(shí)驗(yàn):“非常低”和“正常”I/O吞吐量的對(duì)比 58
實(shí)驗(yàn):I/O優(yōu)先級(jí)提升/撞升的性能分析 59
帶寬預(yù)留(計(jì)劃的文件I/O) 60
容器通知 60
驅(qū)動(dòng)程序檢驗(yàn)器(Driver Verifier) 61
8.4 內(nèi)核模式驅(qū)動(dòng)程序框架(KMDF) 63
KMDF驅(qū)動(dòng)程序的結(jié)構(gòu)和操作 64
實(shí)驗(yàn):顯示KMDF驅(qū)動(dòng)程序 65
KMDF數(shù)據(jù)模型 66
KMDF的I/O模型 69
8.5 用戶模式驅(qū)動(dòng)程序框架(UMDF) 72
8.6 即插即用(PnP)管理器 76
即插即用支持的級(jí)別 77
驅(qū)動(dòng)程序?qū)τ诩床寮从玫闹С?77
驅(qū)動(dòng)程序加載、初始化和安裝 79
Start值 80
設(shè)備列舉 81
實(shí)驗(yàn):將設(shè)備樹轉(zhuǎn)儲(chǔ)出來 84
設(shè)備棧 85
設(shè)備棧的驅(qū)動(dòng)程序加載 86
實(shí)驗(yàn):在設(shè)備管理器中查看詳細(xì)的devnode信息 88
驅(qū)動(dòng)程序安裝 90
實(shí)驗(yàn):檢查一個(gè)驅(qū)動(dòng)程序的INF文件 92
實(shí)驗(yàn):查看目錄(catalog)文件 93
8.7 電源管理器 94
電源管理器的操作 96
驅(qū)動(dòng)程序的電源操作 97
實(shí)驗(yàn):查看一個(gè)驅(qū)動(dòng)程序的電源映射關(guān)系 97
實(shí)驗(yàn):查看系統(tǒng)的電源能力和策略 98
驅(qū)動(dòng)程序和應(yīng)用程序?qū)τ谠O(shè)備電源的控制 100
電源可用性請(qǐng)求 100
實(shí)驗(yàn):在調(diào)試器中查看一個(gè)電源可用性請(qǐng)求 101
實(shí)驗(yàn):利用Powercfg查看電源可用性請(qǐng)求 103
處理器電源管理(PPM) 103
核心停運(yùn)的策略 104
利用率函數(shù) 105
實(shí)驗(yàn):查看利用率和頻率的信息 106
實(shí)驗(yàn):查看利用率和頻率的歷史 107
算法覆蓋 108
增加/減少動(dòng)作 108
各種閾值和策略的設(shè)置 109
實(shí)驗(yàn):查看當(dāng)前的核心停運(yùn)策略 111
“性能檢查”算法 112
實(shí)驗(yàn):查看當(dāng)前的PPM檢查信息 116
8.8 本章總結(jié) 118
第9章 存儲(chǔ)管理 119
9.1 有關(guān)存儲(chǔ)的術(shù)語 119
9.2 磁盤設(shè)備 120
旋轉(zhuǎn)磁盤 120
磁盤的扇區(qū)格式 120
固態(tài)硬盤 122
NAND型閃存 122
文件的刪除和irim命令 124
9.3 磁盤驅(qū)動(dòng)程序 125
Winload 125
磁盤類、端口和小端口驅(qū)動(dòng)程序 126
iSCSI驅(qū)動(dòng)程序 127
多路徑I/O(MPIO)驅(qū)動(dòng)程序 128
實(shí)驗(yàn):觀察物理磁盤I/O 130
磁盤設(shè)備對(duì)象 130
分區(qū)管理器 131
9.4 卷的管理 132
基本磁盤 133
MBR風(fēng)格的分區(qū) 133
GPT(GUID分區(qū)表)分區(qū)方案 133
基本磁盤卷管理器 134
動(dòng)態(tài)磁盤 135
LDM數(shù)據(jù)庫 135
實(shí)驗(yàn):使用LDMDump來查看LDM數(shù)據(jù)庫 137
LDM和GPT或MBR風(fēng)格的分區(qū)方案 139
動(dòng)態(tài)磁盤的卷管理器 140
多分區(qū)卷的管理 140
跨距卷 141
條帶卷 142
實(shí)驗(yàn):觀察鏡像卷的I/O操作 143
RAID-5卷 145
卷名字空間 145
掛載管理器 146
掛載點(diǎn) 147
卷的掛載 148
實(shí)驗(yàn):查看VPB 149
卷的I/O操作 152
虛擬磁盤服務(wù) 153
9.5 虛擬硬盤(VHD文件)支持 155
附載VHD的操作 156
嵌套的文件系統(tǒng) 156
9.6 BitLocker驅(qū)動(dòng)器加密 157
加密密鑰 159
可信平臺(tái)模塊(TPM) 161
BitLocker引導(dǎo)過程 163
BitLocker密鑰的恢復(fù) 165
全卷加密驅(qū)動(dòng)程序 166
BitLocker的管理 167
BitLocker To Go 168
9.7 卷影像(shadow)拷貝服務(wù) 170
影像拷貝 170
“克隆”影像拷貝 170
“寫時(shí)復(fù)制”影像拷貝 170
VSS的架構(gòu) 170
VSS的操作 171
影像拷貝提供者 172
實(shí)驗(yàn):查看Microsoft影像拷貝提供者的過濾型設(shè)備對(duì)象 173
Windows中的用途 174
備份 174
實(shí)驗(yàn):查看影像卷的設(shè)備對(duì)象 174
“之前的版本”和系統(tǒng)還原 175
實(shí)驗(yàn):導(dǎo)航到“之前的版本” 176
實(shí)驗(yàn):映射卷影像設(shè)備對(duì)象 177
9.8 本章總結(jié) 178
第10章 內(nèi)存管理 179
10.1 內(nèi)存管理器簡介 179
內(nèi)存管理器組件 180
內(nèi)部同步 181
檢查內(nèi)存的使用情況 182
實(shí)驗(yàn):查看系統(tǒng)內(nèi)存信息 182
10.2 內(nèi)存管理器提供的服務(wù) 184
大頁面和小頁面 185
保留頁面和提交頁面 187
實(shí)驗(yàn):保留的頁面對(duì)比提交的頁面 188
提交限額 190
鎖住內(nèi)存 190
分配粒度 191
共享內(nèi)存和映射文件 192
實(shí)驗(yàn):查看內(nèi)存映射文件 193
保護(hù)內(nèi)存 194
“不可執(zhí)行”頁面保護(hù) 196
實(shí)驗(yàn):查看進(jìn)程上的DEP保護(hù) 199
軟件的數(shù)據(jù)執(zhí)行保護(hù) 200
寫時(shí)復(fù)制 201
地址窗口擴(kuò)展 203
10.3 內(nèi)核模式堆(系統(tǒng)內(nèi)存池) 204
內(nèi)存池的大小 205
實(shí)驗(yàn):確定最大的池大小值 206
監(jiān)視內(nèi)存池的使用 208
實(shí)驗(yàn):診斷內(nèi)存池泄漏 210
快查表(Look-Aside List) 211
實(shí)驗(yàn):查看系統(tǒng)的快查表 212
10.4 堆管理器 212
堆的類型 213
堆管理器結(jié)構(gòu) 214
堆同步 215
低碎片堆 215
堆的安全特性 216
堆的調(diào)試特性 217
pageheap 218
容錯(cuò)堆 218
10.5 虛擬地址空間的布局結(jié)構(gòu) 219
x86地址空間的布局結(jié)構(gòu) 221
實(shí)驗(yàn):檢查一個(gè)應(yīng)用程序能否感知大地址空間 222
x86系統(tǒng)地址空間的布局結(jié)構(gòu) 223
x86會(huì)話空間 224
實(shí)驗(yàn):查看會(huì)話 224
實(shí)驗(yàn):查看會(huì)話空間的使用情況 225
系統(tǒng)頁表項(xiàng)(PTE,Page Table Entry) 226
實(shí)驗(yàn):查看會(huì)話空間的使用情況 226
64位地址空間布局結(jié)構(gòu) 227
x64虛擬尋址的限制 230
Windows x64的16TB限制 231
動(dòng)態(tài)的系統(tǒng)虛擬地址空間管理 233
實(shí)驗(yàn):查詢系統(tǒng)虛擬地址的用量 234
實(shí)驗(yàn):設(shè)置系統(tǒng)虛擬地址的限制值 235
系統(tǒng)的虛擬地址空間配額 236
用戶地址空間的布局結(jié)構(gòu) 237
實(shí)驗(yàn):對(duì)用戶虛擬地址空間進(jìn)行分析 238
映像隨機(jī)化 239
棧的隨機(jī)化 240
堆的隨機(jī)化 240
內(nèi)核地址空間中的ASLR 240
對(duì)安全性緩和措施的控制 240
實(shí)驗(yàn):查看進(jìn)程上的ASLR保護(hù) 241
10.6 地址轉(zhuǎn)譯 241
x86虛擬地址轉(zhuǎn)譯 242
頁目錄 245
實(shí)驗(yàn):檢查頁目錄和PDE 245
頁表和頁表項(xiàng) 246
頁表項(xiàng)中硬件和軟件的“寫”位 247
頁面內(nèi)的字節(jié) 248
地址轉(zhuǎn)譯快查緩沖區(qū) 248
物理地址擴(kuò)展(PAE) 249
實(shí)驗(yàn):轉(zhuǎn)譯地址 251
x64虛擬地址轉(zhuǎn)譯 253
IA64虛擬地址轉(zhuǎn)譯 254
10.7 頁面錯(cuò)誤處理 255
無效PTE 256
原型PTE 258
頁面換入I/O 259
沖突的頁面錯(cuò)誤 260
聚簇的頁面錯(cuò)誤 260
頁面文件 261
實(shí)驗(yàn):查看系統(tǒng)頁面文件 262
提交用量和系統(tǒng)提交限額 263
提交用量和頁面文件的大小 266
實(shí)驗(yàn):利用任務(wù)管理器來查看頁面文件使用量 266
10.8 棧 268
用戶棧 268
實(shí)驗(yàn):創(chuàng)建最大數(shù)量的線程 268
內(nèi)核棧 269
實(shí)驗(yàn):觀察內(nèi)核棧的使用量 269
DPC棧 270
10.9 虛擬地址描述符 270
進(jìn)程的VAD 271
實(shí)驗(yàn):查看虛擬地址描述符 272
旋轉(zhuǎn)VAD 272
10.10 NUMA 273
10.11 內(nèi)存區(qū)對(duì)象 274
實(shí)驗(yàn):查看內(nèi)存區(qū)對(duì)象 275
實(shí)驗(yàn):查看控制區(qū)域 277
10.12 驅(qū)動(dòng)程序檢驗(yàn)器 280
10.13 頁面幀編號(hào)數(shù)據(jù)庫 284
實(shí)驗(yàn):查看PFN數(shù)據(jù)庫 287
頁面列表的動(dòng)態(tài)變化 288
實(shí)驗(yàn):空閑列表和零頁面列表 289
實(shí)驗(yàn):已修改列表和備用列表 291
頁面優(yōu)先級(jí) 296
實(shí)驗(yàn):觀察區(qū)分優(yōu)先級(jí)的備用列表 298
已修改頁面寫出器 299
PFN數(shù)據(jù)結(jié)構(gòu) 301
實(shí)驗(yàn):查看PFN項(xiàng) 304
10.14 物理內(nèi)存的限制 305
Windows客戶版本的限制 306
32位客戶的有效內(nèi)存限制 307
10.15 工作集 309
按需換頁 309
邏輯預(yù)取器 310
實(shí)驗(yàn):窺探預(yù)取文件內(nèi)部 312
實(shí)驗(yàn):觀察預(yù)取文件的讀和寫 312
放置策略 313
工作集管理 314
實(shí)驗(yàn):查看進(jìn)程工作集大小 316
實(shí)驗(yàn):工作集與虛擬大小 316
實(shí)驗(yàn):在調(diào)試器中查看工作集列表 317
平衡集管理器和交換器 318
系統(tǒng)工作集 319
內(nèi)存通知事件 320
實(shí)驗(yàn):查看內(nèi)存資源通知事件 321
10.16 主動(dòng)式內(nèi)存管理(Superfetch) 322
各個(gè)組件 322
跟蹤過程和日志記錄 324
場(chǎng)景 325
頁面優(yōu)先級(jí)和重平衡 326
魯棒性能 328
RAM優(yōu)化軟件 329
ReadyBoost 330
ReadyDrive 331
統(tǒng)一緩存 332
進(jìn)程反射 334
實(shí)驗(yàn):利用Preflect來觀察進(jìn)程反射的行為 336
10.17 本章總結(jié) 337
第11章 緩存管理器 338
11.1 緩存管理器的關(guān)鍵特性 338
單個(gè)中心化的系統(tǒng)緩存 339
內(nèi)存管理器 339
緩存一致性 339
虛擬塊緩存 341
流式緩存機(jī)制 341
對(duì)可恢復(fù)文件系統(tǒng)的支持 341
11.2 緩存的虛擬內(nèi)存管理 342
11.3 緩存的大小 344
緩存的虛擬大小 344
緩存的工作集大小 344
實(shí)驗(yàn):查看系統(tǒng)緩存的工作集 345
緩存的物理大小 345
11.4 緩存的數(shù)據(jù)結(jié)構(gòu) 347
系統(tǒng)范圍的緩存數(shù)據(jù)結(jié)構(gòu) 347
實(shí)驗(yàn):查看系統(tǒng)緩存的工作集 349
針對(duì)每個(gè)文件的緩存數(shù)據(jù)結(jié)構(gòu) 350
實(shí)驗(yàn):查看共享的和私有的緩存表 353
11.5 文件系統(tǒng)接口 355
從緩存中來回拷貝數(shù)據(jù) 356
通過映射和鎖定接口進(jìn)行緩存 356
通過直接內(nèi)存訪問接口進(jìn)行緩存 357
11.6 快速I/O 357
11.7 預(yù)讀(Read Ahead)和滯后寫(Write Behind) 359
智能預(yù)讀 359
回寫緩存(Write-Back Caching)和延遲寫(Lazy Writing) 361
實(shí)驗(yàn):觀察緩存管理器的活動(dòng)情況 362
禁止一個(gè)文件的延遲寫出行為 367
強(qiáng)迫緩存被直寫(write-through)到磁盤上 367
刷新映射文件 367
實(shí)驗(yàn):觀察緩存的刷新 368
寫節(jié)流(Write Throttling) 369
實(shí)驗(yàn):查看寫節(jié)流參數(shù) 370
系統(tǒng)線程 370
11.8 本章總結(jié) 371
第12章 文件系統(tǒng) 372
12.1 Windows文件系統(tǒng)格式 373
CDFS 373
UDF 374
FAT12、FAT16和FAT32 374
exFAT 377
NTFS 377
12.2 文件系統(tǒng)驅(qū)動(dòng)程序總體結(jié)構(gòu) 378
本地FSD 379
遠(yuǎn)程FSD 380
鎖定 381
實(shí)驗(yàn):查看已注冊(cè)文件系統(tǒng)的列表 383
文件系統(tǒng)操作 387
顯式文件I/O 388
內(nèi)存管理器的修改頁面寫出器和映射頁面寫出器 392
緩存管理器的延遲寫出器(Lazy Writer) 392
緩存管理器的預(yù)讀線程 392
內(nèi)存管理器的頁面錯(cuò)誤處理器 393
文件系統(tǒng)過濾型驅(qū)動(dòng)程序 393
進(jìn)程監(jiān)視器 393
實(shí)驗(yàn):查看進(jìn)程監(jiān)視器的過濾型驅(qū)動(dòng)程序 394
12.3 診斷文件系統(tǒng)的問題 395
進(jìn)程監(jiān)視器的基本和高級(jí)模式 395
實(shí)驗(yàn):在一個(gè)空閑系統(tǒng)上查看文件系統(tǒng)的活動(dòng) 395
進(jìn)程監(jiān)視器診斷技巧 396
12.4 公用日志文件系統(tǒng) 397
列集操作 397
日志的類型 398
日志的布局結(jié)構(gòu) 400
日志序列號(hào) 401
日志塊 401
所有者頁面 402
虛擬LSN到物理LSN的轉(zhuǎn)譯 403
管理策略 404
12.5 NTFS設(shè)計(jì)目標(biāo)和特性 404
高端(High-End)文件系統(tǒng)的需求 404
可恢復(fù)性 405
安全性 405
數(shù)據(jù)冗余和容錯(cuò)能力 405
NTFS的高級(jí)特性 406
多數(shù)據(jù)流 406
實(shí)驗(yàn):查看數(shù)據(jù)流 408
基于Unicode的名稱 408
通用的索引設(shè)施 409
動(dòng)態(tài)的壞簇重新映射 409
硬鏈接(link)和交接(junction) 409
實(shí)驗(yàn):創(chuàng)建一個(gè)硬鏈接 410
符號(hào)(軟)鏈接和交接(junction) 410
實(shí)驗(yàn):創(chuàng)建一個(gè)符號(hào)鏈接 412
壓縮文件和稀疏文件 412
變化日志 413
針對(duì)每個(gè)用戶的卷配額 413
鏈接跟蹤 414
加密 415
POSIX支持 416
碎片整理 416
動(dòng)態(tài)分區(qū) 417
12.6 NTFS文件系統(tǒng)驅(qū)動(dòng)程序 419
12.7 NTFS在磁盤上的結(jié)構(gòu) 421
卷(volume) 421
簇(cluster) 422
主文件表(MFT) 423
實(shí)驗(yàn):查看NTFS信息 425
文件記錄號(hào) 426
文件記錄 426
文件名 429
隧道傳輸 431
駐留的和非駐留的屬性 432
數(shù)據(jù)壓縮和稀疏文件 435
壓縮稀疏數(shù)據(jù) 435
壓縮非稀疏數(shù)據(jù) 437
稀疏文件 439
變化日志文件 439
實(shí)驗(yàn):讀取變化日志 441
索引 442
對(duì)象ID 444
配額跟蹤 444
統(tǒng)一的安全性 445
重解析點(diǎn) 447
事務(wù)支持 447
隔離性 448
實(shí)驗(yàn):理解和管理事務(wù) 449
事務(wù)型API 450
資源管理器 451
實(shí)驗(yàn):查詢資源管理器的信息 452
磁盤上的實(shí)現(xiàn) 453
日志的實(shí)現(xiàn) 454
恢復(fù)的實(shí)現(xiàn) 455
12.8 NTFS的恢復(fù)支持 455
設(shè)計(jì) 456
元數(shù)據(jù)日志記錄 457
日志文件服務(wù)(LFS) 457
日志記錄類型 459
恢復(fù) 461
分析掃描(Analysis Pass) 462
重做掃描(Redo Pass) 463
撤銷掃描(Undo Pass) 463
NTFS的壞簇恢復(fù) 465
自我修復(fù) 468
12.9 加密文件系統(tǒng)(EFS)安全性 469
第一次加密一個(gè)文件 472
加密文件數(shù)據(jù) 473
解密過程 474
加密文件的備份 474
實(shí)驗(yàn):查看EFS信息 475
加密文件的復(fù)制 475
12.10 本章總結(jié) 476
第13章 啟動(dòng)和停機(jī) 477
13.1 引導(dǎo)過程 477
BIOS引導(dǎo)準(zhǔn)備 477
BIOS引導(dǎo)扇區(qū)和Bootmgr 481
UEFI引導(dǎo)過程 495
從iSCSI引導(dǎo) 496
初始化內(nèi)核和執(zhí)行體子系統(tǒng) 497
實(shí)驗(yàn):加載器參數(shù)塊 497
Smss、Csrss和Wininit 504
未完成的文件重命名操作 507
ReadyBoot 509
自動(dòng)啟動(dòng)的映像文件 510
實(shí)驗(yàn):Autoruns 511
13.2 引導(dǎo)和啟動(dòng)問題的故障檢查 511
最后已知的好配置 512
安全模式 512
安全模式下的驅(qū)動(dòng)程序加載 513
能感知安全模式的用戶程序 514
安全模式下的引導(dǎo)日志 515
Windows恢復(fù)環(huán)境(WinRE) 516
引導(dǎo)狀態(tài)文件 519
解決常見的引導(dǎo)問題 520
MBR損壞 520
引導(dǎo)扇區(qū)損壞 520
BCD的錯(cuò)誤配置 520
系統(tǒng)文件損壞 521
Windows資源保護(hù) 522
System儲(chǔ)巢損壞 523
啟動(dòng)屏幕之后的崩潰或者掛起 523
13.3 停機(jī) 525
實(shí)驗(yàn):驗(yàn)證HungAppTimeout值 526
13.4 本章總結(jié) 528
第14章 崩潰轉(zhuǎn)儲(chǔ)分析 529
14.1 Windows為什么會(huì)崩潰 529
14.2 藍(lán)屏 530
Windows崩潰的原因 531
14.3 診斷崩潰問題 533
14.4 崩潰轉(zhuǎn)儲(chǔ)文件 535
實(shí)驗(yàn):查看轉(zhuǎn)儲(chǔ)文件的信息 539
崩潰轉(zhuǎn)儲(chǔ)的生成 540
14.5 Windows錯(cuò)誤報(bào)告 542
14.6 在線崩潰分析 543
14.7 基本的崩潰轉(zhuǎn)儲(chǔ)分析 545
Notmyfault 545
基本的崩潰轉(zhuǎn)儲(chǔ)分析 546
詳細(xì)的分析 547
14.8 使用崩潰診斷工具 549
緩沖區(qū)溢出、內(nèi)存破壞和特殊內(nèi)存池 550
實(shí)驗(yàn):通過驅(qū)動(dòng)程序檢驗(yàn)器啟用特殊內(nèi)存池 552
代碼改寫和系統(tǒng)代碼寫保護(hù) 553
14.9 高級(jí)的崩潰轉(zhuǎn)儲(chǔ)分析 554
棧破壞 555
掛起的或無響應(yīng)的系統(tǒng) 557
實(shí)驗(yàn):利用LiveKd來生成Hyper-V客戶的轉(zhuǎn)儲(chǔ) 559
當(dāng)沒有崩潰轉(zhuǎn)儲(chǔ)時(shí) 561
實(shí)驗(yàn):附載一個(gè)內(nèi)核調(diào)試器 562
14.10 對(duì)常見停止代碼的分析 564
0xD1 - DRIVER_IRQL_NOT_LESS_OR_EQUAL 564
0x8E - KERNEL_MODE_EXCEPTION_NOT_HANDLED 566
0x7F - UNEXPECTED_KERNEL_MODE_TRAP 567
0xC5 - DRIVER_CORRUPTED_EXPOOL 569
硬件故障 571
實(shí)驗(yàn):藍(lán)屏屏幕保護(hù)程序 572
14.11 本章小結(jié) 572

譯者序一

在所有介紹Windows操作系統(tǒng)的圖書中,我相信都離不開Windows Internals系列提供的信息。除了公開可見到的Windows源代碼以外,本書是披露Windows系統(tǒng)機(jī)理最為詳盡的一份資料,尤其對(duì)于Windows的每一個(gè)最新版本。本書第6版專門針對(duì)Windows 7和Windows Server 2008 R2進(jìn)行了大幅度更新。由于篇幅的增加,這一版本改成了上下兩冊(cè)來發(fā)行,由此也可見本書的“分量”。本書上冊(cè)中文版已于2014年4月出版,這幾年間,我經(jīng)常收到讀者的詢問,本書下冊(cè)是否出版?,F(xiàn)在,下冊(cè)中文版終于要出版了,讀者們可以如愿看到本書了。
在Windows操作系統(tǒng)的發(fā)展歷程中,Windows 7是一個(gè)具有特殊意義的版本。它可以算得上是最為復(fù)雜的單機(jī)操作系統(tǒng),無論是從代碼規(guī)模、代碼復(fù)雜度,還是從系統(tǒng)適應(yīng)場(chǎng)景的復(fù)雜程度,都超過了以前所有的版本。從某種意義上,Windows 7代表了軟件工程的一個(gè)頂峰――人類可以構(gòu)造出如此復(fù)雜且能穩(wěn)定工作的軟件系統(tǒng)!與此相對(duì)應(yīng),要用一本書來涵蓋其中的各種機(jī)理也同樣是一項(xiàng)艱巨的任務(wù),本書作者基于他們過去所做的大量工作,以及對(duì)Windows的深入理解,出色地完成了這一詮釋工作。
本書的權(quán)威性毋庸置疑。Mark Russinovich因在Windows內(nèi)核探索方面所作出的貢獻(xiàn)而成為Microsoft Fellow(現(xiàn)為Azure CTO),本書中用到的大量Sysinternals工具均出自他的手筆。David Solomon長期從事Windows NT內(nèi)部機(jī)理的培訓(xùn),他不僅在全球各地培訓(xùn)Windows系統(tǒng)程序員,甚至也為Microsoft的內(nèi)部員工提供Windows內(nèi)核培訓(xùn)服務(wù),他從本書第2版開始奠定了卓有成效的敘述風(fēng)格。Alex Ionescu是一名年輕的黑客型Windows專家,曾經(jīng)為ReactOS(一個(gè)開源的操作系統(tǒng)項(xiàng)目,旨在兼容Windows 2000/XP/Server 2003的應(yīng)用程序)編寫了絕大多數(shù)內(nèi)核代碼。他曾經(jīng)發(fā)現(xiàn)和報(bào)告了一些與Windows內(nèi)核相關(guān)的軟件漏洞,也跟David Solomon一起講授Windows內(nèi)部機(jī)理的課程。有如此強(qiáng)大的作者組合,再加上Microsoft的內(nèi)部支持(包括提供源代碼,以及Windows開發(fā)組的細(xì)致解釋),本書無疑是Windows最新版本的第一手技術(shù)資料。
每一個(gè)對(duì)Windows操作系統(tǒng)有濃厚興趣的讀者都不應(yīng)該錯(cuò)過這本書。本書上冊(cè)介紹了Windows的系統(tǒng)架構(gòu)、系統(tǒng)機(jī)制、管理機(jī)制、進(jìn)程與線程、安全性和網(wǎng)絡(luò)。下冊(cè)是上冊(cè)的直接延續(xù),共有7章,分別介紹了Windows I/O、存儲(chǔ)管理、內(nèi)存管理、緩存管理器、文件系統(tǒng)、啟動(dòng)與停機(jī),以及崩潰轉(zhuǎn)儲(chǔ)分析。每一章都是一個(gè)重要話題,讀者既可以在上冊(cè)的基礎(chǔ)上繼續(xù)深入鉆研Windows各個(gè)子系統(tǒng),也可以有選擇地閱讀某些章節(jié)。在閱讀過程中,最好能動(dòng)手做一做書中描述的實(shí)驗(yàn)。做這些實(shí)驗(yàn)的門檻并不高,但效果非常好,既可以讓你直觀地領(lǐng)會(huì)Windows內(nèi)部的一些設(shè)計(jì)與實(shí)現(xiàn),也可以積累一些洞察Windows內(nèi)部活動(dòng)的方法,這些方法對(duì)于排查Windows平臺(tái)上出現(xiàn)的問題往往很有幫助。
我與本書的淵源是從第4版(針對(duì)Windows XP/Server 2003)開始的,后來第5版(針對(duì)Windows Vista/Server 2008)錯(cuò)過了出版周期,直至這次第6版又有機(jī)會(huì)翻譯。這三個(gè)版本,連同后來的第7版(針對(duì)Windows 10/Server 2016)都采用同樣的敘述框架,只是針對(duì)最新的Windows版本做了更新。本書講述的內(nèi)容,雖然是針對(duì)Windows 7/Server 2008 R2,但更新幅度較大,尤其是有關(guān)64位系統(tǒng)的介紹,有較多新內(nèi)容。即使讀者已經(jīng)在Windows 8或者Windows 10上工作,本書中的內(nèi)容仍然對(duì)你有價(jià)值。另外,如果讀者不滿足于本書Windows系統(tǒng)機(jī)理的系列介紹,而希望進(jìn)一步理解Windows操作系統(tǒng)的源代碼實(shí)現(xiàn)以及內(nèi)核中的各種基礎(chǔ)算法,則推薦閱讀另一本書《Windows內(nèi)核原理與實(shí)現(xiàn)》,這是我在Windows XP/Server 2003 SP1內(nèi)核代碼基礎(chǔ)上寫作的一本講解Windows內(nèi)核的書,它幾乎將Windows內(nèi)核大白于天下。
最后,我要特別感謝范德成先生,他在我第4版譯稿的基礎(chǔ)上,更新到了第6版。也要感謝電子工業(yè)出版社的編輯劉皎,依然把第6版的翻譯工作交給了我,使我有機(jī)會(huì)彌補(bǔ)第5版中文版未能出版之缺憾。
潘愛民
2018年1月于杭州
譯者序二

微軟的Windows操作系統(tǒng)歷經(jīng)三十年左右的發(fā)展,早已成為一個(gè)博大精深的桌面及服務(wù)器操作系統(tǒng),并在市場(chǎng)上獲得了很大的成功。但近十年來,以亞馬遜、谷歌、Facebook等為代表的互聯(lián)網(wǎng)企業(yè)在市場(chǎng)和技術(shù)兩方面開疆拓土,極大地推動(dòng)了移動(dòng)設(shè)備、云計(jì)算、大數(shù)據(jù)和人工智能等行業(yè)的發(fā)展,顯著影響了包括微軟在內(nèi)的各大傳統(tǒng)軟件巨頭的發(fā)展態(tài)勢(shì)。繼2006年亞馬遜提出云計(jì)算之后,微軟于2008年首度公開Azure虛擬機(jī)云平臺(tái),SAP也在2012年公開其應(yīng)用程序云平臺(tái)。盡管各種新的技術(shù)不斷涌現(xiàn),但本書的定位焦點(diǎn)仍然在Windows操作系統(tǒng)本身,在我看來,這本書的價(jià)值依然很高,因?yàn)榧夹g(shù)的本源有共通性,Windows操作系統(tǒng)又可謂是微軟技術(shù)的中流砥柱――微軟的Azure云平臺(tái)的操作系統(tǒng)就是基于Windows開發(fā)的,其上運(yùn)行的虛擬機(jī)管理器正是最早在Windows Server 2008中發(fā)布的Hyper-V。
如果你對(duì)Windows操作系統(tǒng)有著濃厚的興趣,自然不應(yīng)該錯(cuò)過本書。如果你是分布式系統(tǒng)架構(gòu)師,也同樣能從本書中受益。這是因?yàn)?,分布式系統(tǒng)和操作系統(tǒng)在許多方面都有著或多或少的相似性,對(duì)操作系統(tǒng)設(shè)計(jì)原理的掌握自然會(huì)對(duì)分布式系統(tǒng)的設(shè)計(jì)有重大啟發(fā)和幫助。比如,操作系統(tǒng)的線程調(diào)度和分布式系統(tǒng)的負(fù)載均衡、操作系統(tǒng)的磁盤緩存和分布式系統(tǒng)的緩存設(shè)計(jì)、操作系統(tǒng)的文件系統(tǒng)和分布式系統(tǒng)的文件系統(tǒng)、虛擬機(jī)管理器的VLAN和分布式系統(tǒng)的軟件定義網(wǎng)絡(luò)(SDN)、操作系統(tǒng)的性能監(jiān)視器與分布式系統(tǒng)服務(wù)器的性能監(jiān)視平臺(tái)等之間都有不少相似性。
以事務(wù)處理為例,Windows Vista中引入了KTM(內(nèi)核事務(wù)管理器,參見本書第12章),它所實(shí)現(xiàn)的事務(wù)的隔離級(jí)別類似于數(shù)據(jù)庫的READ COMMITTED級(jí)別,是一種幾乎所有SQL數(shù)據(jù)庫都會(huì)實(shí)現(xiàn)的隔離級(jí)別;而分布式系統(tǒng)中的Paxos共識(shí)算法所能實(shí)現(xiàn)的分布式事務(wù),其隔離級(jí)別也類似于READ COMMITTED。又以磁盤緩存為例(參見本書第11章),操作系統(tǒng)的磁盤緩存是強(qiáng)一致性的,而分布式系統(tǒng)緩存可以做成應(yīng)用服務(wù)器內(nèi)的,或者是專門的緩存層,前一種實(shí)現(xiàn)對(duì)負(fù)載均衡調(diào)度有特殊要求,而普通的負(fù)載均衡會(huì)大大降低緩存命中率從而導(dǎo)致系統(tǒng)性能低下,后一種實(shí)現(xiàn)則在網(wǎng)絡(luò)延遲上稍差些。兩種實(shí)現(xiàn)都要考慮是做成強(qiáng)一致性的還是最終一致性的,前者需要在寫的同時(shí)更新緩存,后者則需要自動(dòng)淘汰舊的緩存數(shù)據(jù)。緩存的粒度也很重要,粒度過小可能導(dǎo)致索引數(shù)據(jù)量過大,這和操作系統(tǒng)磁盤緩存的原理是類似的。所以,理解操作系統(tǒng)的知識(shí)能拓展眼界,進(jìn)而對(duì)基于這些系統(tǒng)的設(shè)計(jì)產(chǎn)生正面影響。
此外,理解操作系統(tǒng)的行為有助于設(shè)計(jì)性能更高的分布式程序。比如,了解操作系統(tǒng)磁盤緩存的原理,有助于設(shè)計(jì)出高性能的對(duì)象存儲(chǔ)服務(wù)――可以想辦法提高對(duì)象存儲(chǔ)在操作系統(tǒng)上的緩存命中率,或者在必要時(shí)禁用操作系統(tǒng)緩存而改為自己實(shí)現(xiàn)緩存機(jī)制。又如,了解操作系統(tǒng)網(wǎng)絡(luò)棧的工作模式,有助于編寫做高速網(wǎng)絡(luò)傳輸?shù)某绦颍踔量梢陨钊腧?qū)動(dòng)程序?qū)用孀鲞M(jìn)一步的性能優(yōu)化。
我是Windows操作系統(tǒng)的深度用戶,學(xué)習(xí)和研究了包括Windows、Linux、FreeBSD、OpenBSD在內(nèi)的多種操作系統(tǒng)。從1995年首次接觸Windows 3.1開始,就與Windows結(jié)下了不解之緣。陸續(xù)使用過Windows 3.1、Windows 95、Windows 98、Windows ME、Windows NT 4.0、Windows 2000、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1和Windows 10等各個(gè)版本,還接觸過Windows Server 2000、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2等服務(wù)器版本,以及其上的Microsoft Virtual PC、Virtual Server和Hyper-V虛擬化技術(shù)。我會(huì)好奇它們有著怎樣的功能和性能,底層是怎樣工作的,為什么這樣設(shè)計(jì)而不是那樣設(shè)計(jì)的;正是因?yàn)檫@種好奇,所以Windows Internals一直是我十分感興趣的一本書。在完成本書上冊(cè)的翻譯工作后,我寫了一篇后記(http://www.fandecheng.com/personal/ interests/pwindows/wi_translation_ps.pdf里面講了很多個(gè)人的理解和感悟)。2012年,當(dāng)好友高博打電話告訴我有機(jī)會(huì)參與《深入解析Windows操作系統(tǒng)》第6版的翻譯時(shí),我非常欣喜。在高博的引薦下,我首次見到了仰慕已久的潘愛民老師。因此我非常感謝高博的引薦和潘愛民老師的認(rèn)可,感謝電子工業(yè)出版社的劉皎和白濤兩位編輯,本書的出版離不開他們的策劃和編輯。
范德成
2018年1月于上海浦東張江
引言

《深入解析Windows操作系統(tǒng)(第6版)》的讀者對(duì)象是那些想要理解Microsoft Windows 7和Windows Server 2008 R2操作系統(tǒng)的核心組件內(nèi)部工作機(jī)理的高級(jí)計(jì)算機(jī)專業(yè)人員(包括開發(fā)人員和系統(tǒng)管理員)。開發(fā)人員利用這些知識(shí),可以在構(gòu)建Windows平臺(tái)上的應(yīng)用程序時(shí)更好地理解各種設(shè)計(jì)決策背后的基本原理,調(diào)試復(fù)雜的問題。系統(tǒng)管理員也可以從這些信息中獲益,因?yàn)槔斫饬瞬僮飨到y(tǒng)背后的工作原理,有助于理解系統(tǒng)的性能行為,并且在事情變?cè)銜r(shí)更容易診斷各種系統(tǒng)問題。在閱讀了這本書以后,你應(yīng)該可以更好地理解Windows是如何工作的,以及它為什么有這樣那樣的表現(xiàn)。
本書的結(jié)構(gòu)
《深入解析Windows操作系統(tǒng)(第6版)》第一次被分成了上下冊(cè)來出版。為Windows的每一個(gè)版本更新這本書需要花相當(dāng)多的時(shí)間,所以,按照上下冊(cè)來組織本書內(nèi)容使我們可以更快地出版上冊(cè)部分。
本書上冊(cè)的前兩章為“概念和工具”和“系統(tǒng)結(jié)構(gòu)”:第1章定義了關(guān)鍵的概念,并介紹了本書后面用到的工具;第2章講述了總體系統(tǒng)結(jié)構(gòu)和組件。接下來的兩章展示了系統(tǒng)中關(guān)鍵的底層機(jī)制和管理機(jī)制。上冊(cè)部分還覆蓋了操作系統(tǒng)的三個(gè)核心組件:進(jìn)程、線程和作業(yè);安全性;網(wǎng)絡(luò)。
本書下冊(cè)的內(nèi)容覆蓋了剩余的核心子系統(tǒng):I/O、存儲(chǔ)、內(nèi)存管理、緩存管理器和文件系統(tǒng)。下冊(cè)最后部分還描述了啟動(dòng)和停機(jī)過程,并介紹了崩潰轉(zhuǎn)儲(chǔ)分析。
本書的歷史
本書以前的名稱是“Inside Windows NT”(Microsoft Press,1992,中文版的名稱是《Windows NT技術(shù)內(nèi)幕》),現(xiàn)在是第6版。第1版由Helen Custer撰寫(在Microsoft Windows NT 3.1最初發(fā)布之前出版)。Inside Windows NT是第一本關(guān)于Windows NT的書籍,它提供了有關(guān)Windows NT系統(tǒng)架構(gòu)和設(shè)計(jì)方面的關(guān)鍵要點(diǎn)。Inside Windows NT (Second Edition)(Microsoft Press, 1998)由David Solomon撰寫,在內(nèi)容上做了更新,涵蓋了Windows NT 4.0,并且大大地提高了技術(shù)深度的層次。
“Inside Windows 2000 (Third Edition)”(Microsoft Press,2000)由David Solomon和Mark Russinovich合著完成。第3版增加了許多新的話題,比如啟動(dòng)和停機(jī)、Windows服務(wù)的內(nèi)部機(jī)理、注冊(cè)表的內(nèi)部機(jī)理、文件系統(tǒng)驅(qū)動(dòng)程序、網(wǎng)絡(luò)。它也覆蓋了Windows 2000中內(nèi)核的變化,比如Windows驅(qū)動(dòng)程序模型(WDM,Windows Driver Model)、即插即用、電源管理、Windows管理設(shè)施(WMI,Windows Management Instrumentation)、加密、作業(yè)對(duì)象和終端服務(wù)。Windows Internals (Fourth Edition)是針對(duì)Windows XP和Windows Server 2003的更新,它加入了更多的內(nèi)容,主要集中在幫助IT專業(yè)人員更好地利用Windows的內(nèi)部機(jī)理的知識(shí),比如使用Windows Sysinternals (www.microsoft.com/technet/sysinternals)的關(guān)鍵工具,以及分析崩潰轉(zhuǎn)儲(chǔ)。Windows Internals (Fifth Edition)是針對(duì)Windows Vista和Windows Server 2008的更新,它包含的新內(nèi)容有:映像加載器、用戶模式調(diào)試設(shè)施,以及Hyper-V。
第6版的變化
這一最新的版本在內(nèi)容上做了更新,以覆蓋Windows 7和Windows Server 2008 R2中所做的內(nèi)核變化。練習(xí)用的實(shí)驗(yàn)也相應(yīng)地做了更新,以反映出工具中的變化。
練習(xí)實(shí)驗(yàn)
即使沒有訪問Windows源代碼,你也可以通過一些工具(比如內(nèi)核調(diào)試器,以及來自Sysinternals和Winsider Seminars & Solutions的工具)獲得許多有關(guān)Windows內(nèi)部機(jī)理的知識(shí)。當(dāng)可以通過一個(gè)工具來揭示或演示W(wǎng)indows內(nèi)部行為的某一方面時(shí),本書的“實(shí)驗(yàn)”輔助章節(jié)就會(huì)列出讓你自己試用該工具時(shí)遵從的步驟。這樣的實(shí)驗(yàn)遍布全書,我們鼓勵(lì)你在閱讀本書時(shí)試一試這些實(shí)驗(yàn)――看一看Windows內(nèi)部是如何工作的,這比你僅僅讀一遍本書印象要深刻得多。
本書沒有覆蓋的話題
Windows是一個(gè)大而復(fù)雜的操作系統(tǒng)。本書并沒有覆蓋與Windows內(nèi)部機(jī)理相關(guān)的一切內(nèi)容,而是把焦點(diǎn)集中在基本的系統(tǒng)組件上。例如,本書沒有講述COM+(Windows分布式面向?qū)ο缶幊袒A(chǔ)設(shè)施),也沒有講述Microsoft .NET框架(托管代碼應(yīng)用程序的基礎(chǔ))。
因?yàn)檫@是一本講述內(nèi)部機(jī)理的書籍,不是一本用戶指南、程序設(shè)計(jì)或系統(tǒng)管理類型的書籍,所以,本書沒有描述如何使用、編程或配置Windows。
提醒和告誡
因?yàn)楸緯v述的是Windows操作系統(tǒng)中未文檔化的內(nèi)部結(jié)構(gòu)和內(nèi)部操作的行為(比如內(nèi)核結(jié)構(gòu)和函數(shù)),所以,這些內(nèi)容有可能會(huì)在不同發(fā)行版本之間有所變化。(外部的接口,比如Windows API,則不會(huì)受到不兼容變化的影響。)
說到“受版本變化的影響”,我們并不是指本書所講述的細(xì)節(jié)將在不同發(fā)行版本之間一定有所變化,但是你不能認(rèn)為它們不會(huì)改變。任何使用了這些未文檔化接口的軟件都有可能在將來的Windows版本上無法正常工作。更糟的是,在內(nèi)核模式下運(yùn)行并且用到了這些未文檔化接口的軟件(比如設(shè)備驅(qū)動(dòng)程序)在新的Windows發(fā)行版本上運(yùn)行時(shí)可能會(huì)導(dǎo)致系統(tǒng)崩潰。
致謝
首先,感謝Azius LLC的Jamie Hanrahan和BrianCatlin加入這一項(xiàng)目――沒有他們的幫助,本書將無法完成。他們對(duì)“安全性”和“網(wǎng)絡(luò)”這兩章做了大量的更新,也為“管理機(jī)制”和“進(jìn)程和線程”這兩章的更新做出了很多貢獻(xiàn)。Azius提供了Windows內(nèi)部機(jī)理和設(shè)備驅(qū)動(dòng)程序的訓(xùn)練。更多信息參見www.a(chǎn)zius.com。
我們想要感謝Alex Ionescu,在這一版本中他是一名完全的聯(lián)合作者。這包含了Alex在本書第5版所做的大量工作,以及在這一版本中持續(xù)做的工作。
同時(shí)感謝Daniel Pearson,他更新了“崩潰轉(zhuǎn)儲(chǔ)分析”一章。他多年來的轉(zhuǎn)儲(chǔ)分析經(jīng)驗(yàn),使得本章內(nèi)容更加貼近真實(shí)場(chǎng)景。
感謝Eric Traut和Jon DeVaan,繼續(xù)讓David Solomon可以為了寫作本書而訪問Windows源代碼,以及繼續(xù)開發(fā)他的Windows Internals課程。
有三個(gè)關(guān)鍵的評(píng)審者尚未因?yàn)樗麄儗?duì)第5版的評(píng)審和貢獻(xiàn)而被致以感謝,他們是:Arun Kishan、Landy Wang和Aaron Margosis。再次感謝他們!再次感謝Arun和Landy為這一版本所做的詳細(xì)審查和極有幫助的見地。
若沒有來自Microsoft Windows開發(fā)組關(guān)鍵成員的審查、建議和支持,這本書不會(huì)擁有現(xiàn)在這樣的技術(shù)細(xì)節(jié)深度和精確度。因此,我們感謝下面的人員,他們?yōu)楸緯峁┝思夹g(shù)審查和建議:Greg Cottingham、Joe Hamburg、Jeff Lambert、Pavel Lebedinsky、Joseph East、Adi Oltean、Alexey Pakhunov、Valerie See。
同時(shí)感謝Scott Lee、Tim Shoultz和Eric Kratzer在編寫“崩潰轉(zhuǎn)儲(chǔ)分析”這章時(shí)所提供的協(xié)助。
對(duì)于“網(wǎng)絡(luò)”這一章,特別感謝Gianluigi Nusca和Tom Jolly,他們所做的遠(yuǎn)遠(yuǎn)超出了他們的責(zé)任范圍:Gianluigi在BranchCache的材料方面提供了特別有用的幫助,以及大量的建議(他還寫了許多段落材料);Tom Jolly不僅提供了優(yōu)秀的審查意見和建議,而且讓許多其他的開發(fā)人員幫忙做技術(shù)審查。下面是所有對(duì)“網(wǎng)絡(luò)”這一章做了審查和貢獻(xiàn)的人員:Roopesh Battepati、Molly Brown、Greg Cottingham、Dotan Elharrar、Eric Hanson、Tom Jolly、Manoj Kadam、Greg Kramer、David Kruse、Jeff Lambert、Darene Lewis、Dan Lovinger、Gianluigi Nusca、Amos Ortal、Ivan Pashov、Ganesh Prasad、Paul Swan、Shiva Kumar Thangapandi。
Amos Ortal和Dotan Elharrar對(duì)NAP的內(nèi)容提供了幫助,Shiva Kumar Thangapandi對(duì)EAP部分提供了大量幫助。
感謝Gerard Murphy為本書審閱Windows 7停機(jī)機(jī)制的內(nèi)容,并清楚地解釋了不同組策略下的行為。
感謝Microsoft電源管理組的Tristan Brown,有好幾天他在辦公室陪Alex一起加班到深夜,仔細(xì)解釋處理器核心的停運(yùn)算法和行為。他還提供了一幅珍貴的插圖。
感謝Apurva Doshi給Alex發(fā)了一份詳細(xì)解釋了緩存管理器在Windows 7中改變的文檔,本書中所介紹的一些新的行為和改變正是由于該文檔的幫助才研究清楚的。
感謝Matthieu Suiche,是他提供的內(nèi)核符號(hào)文件數(shù)據(jù)庫讓Alex能發(fā)現(xiàn)最核心的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中新增和去除的字段,并由此引發(fā)了他對(duì)底層功能變化的探索和發(fā)現(xiàn)。
感謝Cenk Ergan、Michael Fortin和Mehmet Iyigun對(duì)Superfetch細(xì)節(jié)部分的審查和建議。
Christophe Nasarre作為總體技術(shù)評(píng)審人,他所做的詳細(xì)檢查極大地提高了本書的技術(shù)精確度和一致性。
我們也要再次感謝Hex-Rays(www.hex-rays.com)的Ilfak Guilfanov,因?yàn)樗麄優(yōu)锳lex Ionescu提供了IDA Pro Advanced and Hex Rays許可,所以Alex可以加快對(duì)Windows內(nèi)核的逆向工程。
最后,作者們要感謝Microsoft Press的同事們,他們?cè)诒澈笞隽撕芏喙ぷ?,將這本書變成現(xiàn)實(shí)。Devon Musgrave作為本書的策劃編輯,承擔(dān)了雙重職責(zé):既要考慮成本,也要考慮本書的發(fā)展;Carol Dillingham是本書的項(xiàng)目編輯。編輯和產(chǎn)品經(jīng)理Steve Sagman、版權(quán)編輯Roger LeBanc、校對(duì)編輯Audrey Marr和索引編輯Christina Yeager都為本書的質(zhì)量做出了貢獻(xiàn)。
最后,感謝Microsoft Press的發(fā)行人Ben Ryan,他始終相信為讀者提供如此詳細(xì)程度的Windows知識(shí)是極其重要的!
勘誤和本書支持
我們做了各種努力來確保本書的精確性。自本書出版以來已經(jīng)報(bào)告的任何錯(cuò)誤都將在http://go.microsoft.com/FWLink/?Linkid=245675上列出。
如果你遇到了尚未列出的錯(cuò)誤,你可以通過以上頁面將錯(cuò)誤報(bào)告給我們。
如果你需要額外的支持,請(qǐng)發(fā)送電子郵件給Microsoft Press Book Support:mspinput@microsoft.com。
請(qǐng)注意,通過上述地址并不會(huì)提供有關(guān)Microsoft軟件產(chǎn)品的支持。
傾聽你的聲音
讓你滿意是我們最高優(yōu)先級(jí)的工作,你的反饋也是我們最有價(jià)值的財(cái)富。
注冊(cè)博文視點(diǎn)社區(qū)(www.broadview.com.cn)用戶,即享受以下服務(wù):
? 提勘誤賺積分:可在【提交勘誤】處提交對(duì)內(nèi)容的修改意見,若被采納將獲贈(zèng)博文視點(diǎn)社區(qū)積分(可用來抵扣購買電子書的相應(yīng)金額)。
? 交流學(xué)習(xí):在頁面下方【讀者評(píng)論】處留下您的疑問或觀點(diǎn),與作譯者和其他讀者共同交流。
頁面入口:http://www.broadview.com.cn/33643。
保持聯(lián)系
讓我們保持熱線聯(lián)系,我們?cè)赥witter上的地址是:http://twitter.com/MicrosoftPress。
Contents
目錄

第8章 I/O系統(tǒng) 1
8.1 I/O系統(tǒng)組件 1
I/O管理器 3
典型的I/O處理過程 4
8.2 設(shè)備驅(qū)動(dòng)程序 5
設(shè)備驅(qū)動(dòng)程序的類型 5
WDM驅(qū)動(dòng)程序 6
分層的驅(qū)動(dòng)程序 7
實(shí)驗(yàn):查看已加載的驅(qū)動(dòng)程序列表 9
驅(qū)動(dòng)程序的結(jié)構(gòu) 11
驅(qū)動(dòng)程序?qū)ο蠛驮O(shè)備對(duì)象 13
實(shí)驗(yàn):看一看設(shè)備對(duì)象 15
實(shí)驗(yàn):顯示驅(qū)動(dòng)程序和設(shè)備對(duì)象 17
打開設(shè)備 18
實(shí)驗(yàn):查看設(shè)備句柄 21
實(shí)驗(yàn):查看Windows設(shè)備名稱之間的映射 23
8.3 I/O處理 24
I/O類型 24
同步I/O和異步I/O 24
快速I/O 25
實(shí)驗(yàn):查看一個(gè)驅(qū)動(dòng)程序登記的快速I/O例程 25
映射文件I/O和文件緩存 26
分散/聚集I/O 27
I/O請(qǐng)求包 27
IRP棧單元 28
實(shí)驗(yàn):查看驅(qū)動(dòng)程序的分發(fā)例程 29
實(shí)驗(yàn):查看一個(gè)線程的未完成IRP 29
IRP緩沖區(qū)管理 30
針對(duì)單層驅(qū)動(dòng)程序的I/O請(qǐng)求 32
為一個(gè)中斷提供服務(wù) 33
完成一個(gè)I/O請(qǐng)求 34
同步 36
針對(duì)分層的驅(qū)動(dòng)程序的I/O請(qǐng)求 38
實(shí)驗(yàn):查看一個(gè)設(shè)備棧 39
實(shí)驗(yàn):查看IRP 40
線程無關(guān)I/O 45
I/O取消 45
用戶發(fā)起的I/O取消 46
線程終止時(shí)的I/O取消 47
實(shí)驗(yàn):調(diào)試一個(gè)無法被殺死的進(jìn)程 48
I/O完成端口 49
IoCompletion對(duì)象 50
使用完成端口 50
I/O完成端口操作 52
I/O優(yōu)先級(jí)支持 54
I/O優(yōu)先級(jí) 54
優(yōu)先化策略 55
I/O優(yōu)先級(jí)反轉(zhuǎn)的避免(I/O優(yōu)先級(jí)繼承) 57
I/O優(yōu)先級(jí)提升和撞升 57
實(shí)驗(yàn):“非常低”和“正?!盜/O吞吐量的對(duì)比 58
實(shí)驗(yàn):I/O優(yōu)先級(jí)提升/撞升的性能分析 59
帶寬預(yù)留(計(jì)劃的文件I/O) 60
容器通知 60
驅(qū)動(dòng)程序檢驗(yàn)器(Driver Verifier) 61
8.4 內(nèi)核模式驅(qū)動(dòng)程序框架(KMDF) 63
KMDF驅(qū)動(dòng)程序的結(jié)構(gòu)和操作 64
實(shí)驗(yàn):顯示KMDF驅(qū)動(dòng)程序 65
KMDF數(shù)據(jù)模型 66
KMDF的I/O模型 69
8.5 用戶模式驅(qū)動(dòng)程序框架(UMDF) 72
8.6 即插即用(PnP)管理器 76
即插即用支持的級(jí)別 77
驅(qū)動(dòng)程序?qū)τ诩床寮从玫闹С?77
驅(qū)動(dòng)程序加載、初始化和安裝 79
Start值 80
設(shè)備列舉 81
實(shí)驗(yàn):將設(shè)備樹轉(zhuǎn)儲(chǔ)出來 84
設(shè)備棧 85
設(shè)備棧的驅(qū)動(dòng)程序加載 86
實(shí)驗(yàn):在設(shè)備管理器中查看詳細(xì)的devnode信息 88
驅(qū)動(dòng)程序安裝 90
實(shí)驗(yàn):檢查一個(gè)驅(qū)動(dòng)程序的INF文件 92
實(shí)驗(yàn):查看目錄(catalog)文件 93
8.7 電源管理器 94
電源管理器的操作 96
驅(qū)動(dòng)程序的電源操作 97
實(shí)驗(yàn):查看一個(gè)驅(qū)動(dòng)程序的電源映射關(guān)系 97
實(shí)驗(yàn):查看系統(tǒng)的電源能力和策略 98
驅(qū)動(dòng)程序和應(yīng)用程序?qū)τ谠O(shè)備電源的控制 100
電源可用性請(qǐng)求 100
實(shí)驗(yàn):在調(diào)試器中查看一個(gè)電源可用性請(qǐng)求 101
實(shí)驗(yàn):利用Powercfg查看電源可用性請(qǐng)求 103
處理器電源管理(PPM) 103
核心停運(yùn)的策略 104
利用率函數(shù) 105
實(shí)驗(yàn):查看利用率和頻率的信息 106
實(shí)驗(yàn):查看利用率和頻率的歷史 107
算法覆蓋 108
增加/減少動(dòng)作 108
各種閾值和策略的設(shè)置 109
實(shí)驗(yàn):查看當(dāng)前的核心停運(yùn)策略 111
“性能檢查”算法 112
實(shí)驗(yàn):查看當(dāng)前的PPM檢查信息 116
8.8 本章總結(jié) 118
第9章 存儲(chǔ)管理 119
9.1 有關(guān)存儲(chǔ)的術(shù)語 119
9.2 磁盤設(shè)備 120
旋轉(zhuǎn)磁盤 120
磁盤的扇區(qū)格式 120
固態(tài)硬盤 122
NAND型閃存 122
文件的刪除和irim命令 124
9.3 磁盤驅(qū)動(dòng)程序 125
Winload 125
磁盤類、端口和小端口驅(qū)動(dòng)程序 126
iSCSI驅(qū)動(dòng)程序 127
多路徑I/O(MPIO)驅(qū)動(dòng)程序 128
實(shí)驗(yàn):觀察物理磁盤I/O 130
磁盤設(shè)備對(duì)象 130
分區(qū)管理器 131
9.4 卷的管理 132
基本磁盤 133
MBR風(fēng)格的分區(qū) 133
GPT(GUID分區(qū)表)分區(qū)方案 133
基本磁盤卷管理器 134
動(dòng)態(tài)磁盤 135
LDM數(shù)據(jù)庫 135
實(shí)驗(yàn):使用LDMDump來查看LDM數(shù)據(jù)庫 137
LDM和GPT或MBR風(fēng)格的分區(qū)方案 139
動(dòng)態(tài)磁盤的卷管理器 140
多分區(qū)卷的管理 140
跨距卷 141
條帶卷 142
實(shí)驗(yàn):觀察鏡像卷的I/O操作 143
RAID-5卷 145
卷名字空間 145
掛載管理器 146
掛載點(diǎn) 147
卷的掛載 148
實(shí)驗(yàn):查看VPB 149
卷的I/O操作 152
虛擬磁盤服務(wù) 153
9.5 虛擬硬盤(VHD文件)支持 155
附載VHD的操作 156
嵌套的文件系統(tǒng) 156
9.6 BitLocker驅(qū)動(dòng)器加密 157
加密密鑰 159
可信平臺(tái)模塊(TPM) 161
BitLocker引導(dǎo)過程 163
BitLocker密鑰的恢復(fù) 165
全卷加密驅(qū)動(dòng)程序 166
BitLocker的管理 167
BitLocker To Go 168
9.7 卷影像(shadow)拷貝服務(wù) 170
影像拷貝 170
“克隆”影像拷貝 170
“寫時(shí)復(fù)制”影像拷貝 170
VSS的架構(gòu) 170
VSS的操作 171
影像拷貝提供者 172
實(shí)驗(yàn):查看Microsoft影像拷貝提供者的過濾型設(shè)備對(duì)象 173
Windows中的用途 174
備份 174
實(shí)驗(yàn):查看影像卷的設(shè)備對(duì)象 174
“之前的版本”和系統(tǒng)還原 175
實(shí)驗(yàn):導(dǎo)航到“之前的版本” 176
實(shí)驗(yàn):映射卷影像設(shè)備對(duì)象 177
9.8 本章總結(jié) 178
第10章 內(nèi)存管理 179
10.1 內(nèi)存管理器簡介 179
內(nèi)存管理器組件 180
內(nèi)部同步 181
檢查內(nèi)存的使用情況 182
實(shí)驗(yàn):查看系統(tǒng)內(nèi)存信息 182
10.2 內(nèi)存管理器提供的服務(wù) 184
大頁面和小頁面 185
保留頁面和提交頁面 187
實(shí)驗(yàn):保留的頁面對(duì)比提交的頁面 188
提交限額 190
鎖住內(nèi)存 190
分配粒度 191
共享內(nèi)存和映射文件 192
實(shí)驗(yàn):查看內(nèi)存映射文件 193
保護(hù)內(nèi)存 194
“不可執(zhí)行”頁面保護(hù) 196
實(shí)驗(yàn):查看進(jìn)程上的DEP保護(hù) 199
軟件的數(shù)據(jù)執(zhí)行保護(hù) 200
寫時(shí)復(fù)制 201
地址窗口擴(kuò)展 203
10.3 內(nèi)核模式堆(系統(tǒng)內(nèi)存池) 204
內(nèi)存池的大小 205
實(shí)驗(yàn):確定最大的池大小值 206
監(jiān)視內(nèi)存池的使用 208
實(shí)驗(yàn):診斷內(nèi)存池泄漏 210
快查表(Look-Aside List) 211
實(shí)驗(yàn):查看系統(tǒng)的快查表 212
10.4 堆管理器 212
堆的類型 213
堆管理器結(jié)構(gòu) 214
堆同步 215
低碎片堆 215
堆的安全特性 216
堆的調(diào)試特性 217
pageheap 218
容錯(cuò)堆 218
10.5 虛擬地址空間的布局結(jié)構(gòu) 219
x86地址空間的布局結(jié)構(gòu) 221
實(shí)驗(yàn):檢查一個(gè)應(yīng)用程序能否感知大地址空間 222
x86系統(tǒng)地址空間的布局結(jié)構(gòu) 223
x86會(huì)話空間 224
實(shí)驗(yàn):查看會(huì)話 224
實(shí)驗(yàn):查看會(huì)話空間的使用情況 225
系統(tǒng)頁表項(xiàng)(PTE,Page Table Entry) 226
實(shí)驗(yàn):查看會(huì)話空間的使用情況 226
64位地址空間布局結(jié)構(gòu) 227
x64虛擬尋址的限制 230
Windows x64的16TB限制 231
動(dòng)態(tài)的系統(tǒng)虛擬地址空間管理 233
實(shí)驗(yàn):查詢系統(tǒng)虛擬地址的用量 234
實(shí)驗(yàn):設(shè)置系統(tǒng)虛擬地址的限制值 235
系統(tǒng)的虛擬地址空間配額 236
用戶地址空間的布局結(jié)構(gòu) 237
實(shí)驗(yàn):對(duì)用戶虛擬地址空間進(jìn)行分析 238
映像隨機(jī)化 239
棧的隨機(jī)化 240
堆的隨機(jī)化 240
內(nèi)核地址空間中的ASLR 240
對(duì)安全性緩和措施的控制 240
實(shí)驗(yàn):查看進(jìn)程上的ASLR保護(hù) 241
10.6 地址轉(zhuǎn)譯 241
x86虛擬地址轉(zhuǎn)譯 242
頁目錄 245
實(shí)驗(yàn):檢查頁目錄和PDE 245
頁表和頁表項(xiàng) 246
頁表項(xiàng)中硬件和軟件的“寫”位 247
頁面內(nèi)的字節(jié) 248
地址轉(zhuǎn)譯快查緩沖區(qū) 248
物理地址擴(kuò)展(PAE) 249
實(shí)驗(yàn):轉(zhuǎn)譯地址 251
x64虛擬地址轉(zhuǎn)譯 253
IA64虛擬地址轉(zhuǎn)譯 254
10.7 頁面錯(cuò)誤處理 255
無效PTE 256
原型PTE 258
頁面換入I/O 259
沖突的頁面錯(cuò)誤 260
聚簇的頁面錯(cuò)誤 260
頁面文件 261
實(shí)驗(yàn):查看系統(tǒng)頁面文件 262
提交用量和系統(tǒng)提交限額 263
提交用量和頁面文件的大小 266
實(shí)驗(yàn):利用任務(wù)管理器來查看頁面文件使用量 266
10.8 棧 268
用戶棧 268
實(shí)驗(yàn):創(chuàng)建最大數(shù)量的線程 268
內(nèi)核棧 269
實(shí)驗(yàn):觀察內(nèi)核棧的使用量 269
DPC棧 270
10.9 虛擬地址描述符 270
進(jìn)程的VAD 271
實(shí)驗(yàn):查看虛擬地址描述符 272
旋轉(zhuǎn)VAD 272
10.10 NUMA 273
10.11 內(nèi)存區(qū)對(duì)象 274
實(shí)驗(yàn):查看內(nèi)存區(qū)對(duì)象 275
實(shí)驗(yàn):查看控制區(qū)域 277
10.12 驅(qū)動(dòng)程序檢驗(yàn)器 280
10.13 頁面幀編號(hào)數(shù)據(jù)庫 284
實(shí)驗(yàn):查看PFN數(shù)據(jù)庫 287
頁面列表的動(dòng)態(tài)變化 288
實(shí)驗(yàn):空閑列表和零頁面列表 289
實(shí)驗(yàn):已修改列表和備用列表 291
頁面優(yōu)先級(jí) 296
實(shí)驗(yàn):觀察區(qū)分優(yōu)先級(jí)的備用列表 298
已修改頁面寫出器 299
PFN數(shù)據(jù)結(jié)構(gòu) 301
實(shí)驗(yàn):查看PFN項(xiàng) 304
10.14 物理內(nèi)存的限制 305
Windows客戶版本的限制 306
32位客戶的有效內(nèi)存限制 307
10.15 工作集 309
按需換頁 309
邏輯預(yù)取器 310
實(shí)驗(yàn):窺探預(yù)取文件內(nèi)部 312
實(shí)驗(yàn):觀察預(yù)取文件的讀和寫 312
放置策略 313
工作集管理 314
實(shí)驗(yàn):查看進(jìn)程工作集大小 316
實(shí)驗(yàn):工作集與虛擬大小 316
實(shí)驗(yàn):在調(diào)試器中查看工作集列表 317
平衡集管理器和交換器 318
系統(tǒng)工作集 319
內(nèi)存通知事件 320
實(shí)驗(yàn):查看內(nèi)存資源通知事件 321
10.16 主動(dòng)式內(nèi)存管理(Superfetch) 322
各個(gè)組件 322
跟蹤過程和日志記錄 324
場(chǎng)景 325
頁面優(yōu)先級(jí)和重平衡 326
魯棒性能 328
RAM優(yōu)化軟件 329
ReadyBoost 330
ReadyDrive 331
統(tǒng)一緩存 332
進(jìn)程反射 334
實(shí)驗(yàn):利用Preflect來觀察進(jìn)程反射的行為 336
10.17 本章總結(jié) 337
第11章 緩存管理器 338
11.1 緩存管理器的關(guān)鍵特性 338
單個(gè)中心化的系統(tǒng)緩存 339
內(nèi)存管理器 339
緩存一致性 339
虛擬塊緩存 341
流式緩存機(jī)制 341
對(duì)可恢復(fù)文件系統(tǒng)的支持 341
11.2 緩存的虛擬內(nèi)存管理 342
11.3 緩存的大小 344
緩存的虛擬大小 344
緩存的工作集大小 344
實(shí)驗(yàn):查看系統(tǒng)緩存的工作集 345
緩存的物理大小 345
11.4 緩存的數(shù)據(jù)結(jié)構(gòu) 347
系統(tǒng)范圍的緩存數(shù)據(jù)結(jié)構(gòu) 347
實(shí)驗(yàn):查看系統(tǒng)緩存的工作集 349
針對(duì)每個(gè)文件的緩存數(shù)據(jù)結(jié)構(gòu) 350
實(shí)驗(yàn):查看共享的和私有的緩存表 353
11.5 文件系統(tǒng)接口 355
從緩存中來回拷貝數(shù)據(jù) 356
通過映射和鎖定接口進(jìn)行緩存 356
通過直接內(nèi)存訪問接口進(jìn)行緩存 357
11.6 快速I/O 357
11.7 預(yù)讀(Read Ahead)和滯后寫(Write Behind) 359
智能預(yù)讀 359
回寫緩存(Write-Back Caching)和延遲寫(Lazy Writing) 361
實(shí)驗(yàn):觀察緩存管理器的活動(dòng)情況 362
禁止一個(gè)文件的延遲寫出行為 367
強(qiáng)迫緩存被直寫(write-through)到磁盤上 367
刷新映射文件 367
實(shí)驗(yàn):觀察緩存的刷新 368
寫節(jié)流(Write Throttling) 369
實(shí)驗(yàn):查看寫節(jié)流參數(shù) 370
系統(tǒng)線程 370
11.8 本章總結(jié) 371
第12章 文件系統(tǒng) 372
12.1 Windows文件系統(tǒng)格式 373
CDFS 373
UDF 374
FAT12、FAT16和FAT32 374
exFAT 377
NTFS 377
12.2 文件系統(tǒng)驅(qū)動(dòng)程序總體結(jié)構(gòu) 378
本地FSD 379
遠(yuǎn)程FSD 380
鎖定 381
實(shí)驗(yàn):查看已注冊(cè)文件系統(tǒng)的列表 383
文件系統(tǒng)操作 387
顯式文件I/O 388
內(nèi)存管理器的修改頁面寫出器和映射頁面寫出器 392
緩存管理器的延遲寫出器(Lazy Writer) 392
緩存管理器的預(yù)讀線程 392
內(nèi)存管理器的頁面錯(cuò)誤處理器 393
文件系統(tǒng)過濾型驅(qū)動(dòng)程序 393
進(jìn)程監(jiān)視器 393
實(shí)驗(yàn):查看進(jìn)程監(jiān)視器的過濾型驅(qū)動(dòng)程序 394
12.3 診斷文件系統(tǒng)的問題 395
進(jìn)程監(jiān)視器的基本和高級(jí)模式 395
實(shí)驗(yàn):在一個(gè)空閑系統(tǒng)上查看文件系統(tǒng)的活動(dòng) 395
進(jìn)程監(jiān)視器診斷技巧 396
12.4 公用日志文件系統(tǒng) 397
列集操作 397
日志的類型 398
日志的布局結(jié)構(gòu) 400
日志序列號(hào) 401
日志塊 401
所有者頁面 402
虛擬LSN到物理LSN的轉(zhuǎn)譯 403
管理策略 404
12.5 NTFS設(shè)計(jì)目標(biāo)和特性 404
高端(High-End)文件系統(tǒng)的需求 404
可恢復(fù)性 405
安全性 405
數(shù)據(jù)冗余和容錯(cuò)能力 405
NTFS的高級(jí)特性 406
多數(shù)據(jù)流 406
實(shí)驗(yàn):查看數(shù)據(jù)流 408
基于Unicode的名稱 408
通用的索引設(shè)施 409
動(dòng)態(tài)的壞簇重新映射 409
硬鏈接(link)和交接(junction) 409
實(shí)驗(yàn):創(chuàng)建一個(gè)硬鏈接 410
符號(hào)(軟)鏈接和交接(junction) 410
實(shí)驗(yàn):創(chuàng)建一個(gè)符號(hào)鏈接 412
壓縮文件和稀疏文件 412
變化日志 413
針對(duì)每個(gè)用戶的卷配額 413
鏈接跟蹤 414
加密 415
POSIX支持 416
碎片整理 416
動(dòng)態(tài)分區(qū) 417
12.6 NTFS文件系統(tǒng)驅(qū)動(dòng)程序 419
12.7 NTFS在磁盤上的結(jié)構(gòu) 421
卷(volume) 421
簇(cluster) 422
主文件表(MFT) 423
實(shí)驗(yàn):查看NTFS信息 425
文件記錄號(hào) 426
文件記錄 426
文件名 429
隧道傳輸 431
駐留的和非駐留的屬性 432
數(shù)據(jù)壓縮和稀疏文件 435
壓縮稀疏數(shù)據(jù) 435
壓縮非稀疏數(shù)據(jù) 437
稀疏文件 439
變化日志文件 439
實(shí)驗(yàn):讀取變化日志 441
索引 442
對(duì)象ID 444
配額跟蹤 444
統(tǒng)一的安全性 445
重解析點(diǎn) 447
事務(wù)支持 447
隔離性 448
實(shí)驗(yàn):理解和管理事務(wù) 449
事務(wù)型API 450
資源管理器 451
實(shí)驗(yàn):查詢資源管理器的信息 452
磁盤上的實(shí)現(xiàn) 453
日志的實(shí)現(xiàn) 454
恢復(fù)的實(shí)現(xiàn) 455
12.8 NTFS的恢復(fù)支持 455
設(shè)計(jì) 456
元數(shù)據(jù)日志記錄 457
日志文件服務(wù)(LFS) 457
日志記錄類型 459
恢復(fù) 461
分析掃描(Analysis Pass) 462
重做掃描(Redo Pass) 463
撤銷掃描(Undo Pass) 463
NTFS的壞簇恢復(fù) 465
自我修復(fù) 468
12.9 加密文件系統(tǒng)(EFS)安全性 469
第一次加密一個(gè)文件 472
加密文件數(shù)據(jù) 473
解密過程 474
加密文件的備份 474
實(shí)驗(yàn):查看EFS信息 475
加密文件的復(fù)制 475
12.10 本章總結(jié) 476
第13章 啟動(dòng)和停機(jī) 477
13.1 引導(dǎo)過程 477
BIOS引導(dǎo)準(zhǔn)備 477
BIOS引導(dǎo)扇區(qū)和Bootmgr 481
UEFI引導(dǎo)過程 495
從iSCSI引導(dǎo) 496
初始化內(nèi)核和執(zhí)行體子系統(tǒng) 497
實(shí)驗(yàn):加載器參數(shù)塊 497
Smss、Csrss和Wininit 504
未完成的文件重命名操作 507
ReadyBoot 509
自動(dòng)啟動(dòng)的映像文件 510
實(shí)驗(yàn):Autoruns 511
13.2 引導(dǎo)和啟動(dòng)問題的故障檢查 511
最后已知的好配置 512
安全模式 512
安全模式下的驅(qū)動(dòng)程序加載 513
能感知安全模式的用戶程序 514
安全模式下的引導(dǎo)日志 515
Windows恢復(fù)環(huán)境(WinRE) 516
引導(dǎo)狀態(tài)文件 519
解決常見的引導(dǎo)問題 520
MBR損壞 520
引導(dǎo)扇區(qū)損壞 520
BCD的錯(cuò)誤配置 520
系統(tǒng)文件損壞 521
Windows資源保護(hù) 522
System儲(chǔ)巢損壞 523
啟動(dòng)屏幕之后的崩潰或者掛起 523
13.3 停機(jī) 525
實(shí)驗(yàn):驗(yàn)證HungAppTimeout值 526
13.4 本章總結(jié) 528
第14章 崩潰轉(zhuǎn)儲(chǔ)分析 529
14.1 Windows為什么會(huì)崩潰 529
14.2 藍(lán)屏 530
Windows崩潰的原因 531
14.3 診斷崩潰問題 533
14.4 崩潰轉(zhuǎn)儲(chǔ)文件 535
實(shí)驗(yàn):查看轉(zhuǎn)儲(chǔ)文件的信息 539
崩潰轉(zhuǎn)儲(chǔ)的生成 540
14.5 Windows錯(cuò)誤報(bào)告 542
14.6 在線崩潰分析 543
14.7 基本的崩潰轉(zhuǎn)儲(chǔ)分析 545
Notmyfault 545
基本的崩潰轉(zhuǎn)儲(chǔ)分析 546
詳細(xì)的分析 547
14.8 使用崩潰診斷工具 549
緩沖區(qū)溢出、內(nèi)存破壞和特殊內(nèi)存池 550
實(shí)驗(yàn):通過驅(qū)動(dòng)程序檢驗(yàn)器啟用特殊內(nèi)存池 552
代碼改寫和系統(tǒng)代碼寫保護(hù) 553
14.9 高級(jí)的崩潰轉(zhuǎn)儲(chǔ)分析 554
棧破壞 555
掛起的或無響應(yīng)的系統(tǒng) 557
實(shí)驗(yàn):利用LiveKd來生成Hyper-V客戶的轉(zhuǎn)儲(chǔ) 559
當(dāng)沒有崩潰轉(zhuǎn)儲(chǔ)時(shí) 561
實(shí)驗(yàn):附載一個(gè)內(nèi)核調(diào)試器 562
14.10 對(duì)常見停止代碼的分析 564
0xD1 - DRIVER_IRQL_NOT_LESS_OR_EQUAL 564
0x8E - KERNEL_MODE_EXCEPTION_NOT_HANDLED 566
0x7F - UNEXPECTED_KERNEL_MODE_TRAP 567
0xC5 - DRIVER_CORRUPTED_EXPOOL 569
硬件故障 571
實(shí)驗(yàn):藍(lán)屏屏幕保護(hù)程序 572
14.11 本章小結(jié) 572

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)