注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)WindowsWindows內(nèi)核原理與實現(xiàn)

Windows內(nèi)核原理與實現(xiàn)

Windows內(nèi)核原理與實現(xiàn)

定 價:¥99.00

作 者: 潘愛民 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: WINDOWS 操作系統(tǒng)/系統(tǒng)開發(fā) 計算機/網(wǎng)絡(luò)

ISBN: 9787121200564 出版時間: 2013-05-01 包裝: 平裝
開本: 16 頁數(shù): 716 字數(shù):  

內(nèi)容簡介

  《Windows內(nèi)核原理與實現(xiàn)》從操作系統(tǒng)原理的角度,詳細解析了Windows如何實現(xiàn)現(xiàn)代操作系統(tǒng)的各個關(guān)鍵部件,包括進程、線程、物理內(nèi)存和虛擬內(nèi)存的管理,Windows中的同步和并發(fā)性支持,以及Windows的I/O模型。在介紹這些關(guān)鍵部件時,本書直接以Windows的源代碼(WRK,Windows Research Kernel)為參照,因而讀者可以了解像Windows這樣的復(fù)雜操作系統(tǒng)是如何在x86處理器上運行的。在內(nèi)容選取方面,本書側(cè)重于Windows內(nèi)核中最基本的系統(tǒng)部件,同時也兼顧到作為一個操作系統(tǒng)的完整性,所以,本書也介紹了像存儲體系、網(wǎng)絡(luò)、Windows環(huán)境子系統(tǒng)等,這些雖然并不位于內(nèi)核模塊但卻支撐整個Windows運行的重要部件。在本書最后,也介紹了Windows Server 2003以后的內(nèi)核發(fā)展和變化。雖然書中有大量關(guān)于Windows代碼實現(xiàn)的描述,但是本書并沒有羅列WRK中的代碼,即使讀者不對照WRK的源代碼,也可以從這些章節(jié)的描述中理解Windows的實現(xiàn)機理。在每一個技術(shù)專題的介紹中,本書幾乎都提供了一個框架圖,并且有關(guān)鍵細節(jié)的實現(xiàn)分析,這樣做的意圖是讓讀者既能夠?qū)σ豁椉夹g(shù)有總體上的把握,也通曉關(guān)鍵的實現(xiàn)細節(jié)。Windows操作系統(tǒng)已經(jīng)有20年歷史了,市面上有大量關(guān)于Windows技術(shù)的文檔和書籍,但是,真正從源代碼來詮釋Windows底層機理的,本書還是第一次嘗試。在本書覆蓋的內(nèi)容中,有相當一部分是第一次以文字形式披露出來的,期望這些內(nèi)容能消除人們對于Windows的神秘感。寫作本書的目的是讓對Windows有好奇心的人真正了解到Windows中的核心機理,讓計算機專業(yè)的學生和老師,以及系統(tǒng)軟件工程師可以快速地領(lǐng)略到Windows中先進的系統(tǒng)技術(shù),以及在Windows上編寫出更加高效的軟件。本書也配備了一些小工具,通過這些小工具,讀者可以查看內(nèi)核中的靜態(tài)或動態(tài)的信息,甚至觀察系統(tǒng)的行為。

作者簡介

  潘愛民任職于阿里云計算有限公司,擔任阿里云OS 首席架構(gòu)師。長期從事軟件和系統(tǒng)技術(shù)的研究與開發(fā)工作,撰寫了大量軟件技術(shù)文章,著譯了多部經(jīng)典計算機圖書,在國內(nèi)外學術(shù)刊物上發(fā)表了30 多篇文章。曾經(jīng)任教于北京大學和清華大學(兼職)。后進入工業(yè)界,先后任職于微軟亞洲研究院、盛大網(wǎng)絡(luò)發(fā)展有限公司和阿里云計算有限公司。目前也是工信部移動操作系統(tǒng)專家組成員。潘愛民先生獲得了數(shù)學學士學位和計算機科學博士學位,主要研究領(lǐng)域包括軟件設(shè)計、信息安全、操作系統(tǒng)和互聯(lián)網(wǎng)技術(shù)。

圖書目錄

第1章  概述          1 1.1  操作系統(tǒng)基礎(chǔ)        2 1.1.1  計算機系統(tǒng)的硬件資源管理    2 1.1.2  為應(yīng)用程序提供執(zhí)行環(huán)境         5 1.2  學習操作系統(tǒng)之必備知識   7 1.3  Windows操作系統(tǒng)發(fā)展歷史        9 1.4  Windows內(nèi)核的版本    11 1.5  操作系統(tǒng)的研究與發(fā)展        13 1.6  本章總結(jié)        16 第2章  Windows系統(tǒng)總述 17 2.1  現(xiàn)代操作系統(tǒng)的基本結(jié)構(gòu)   17 2.2  Windows系統(tǒng)結(jié)構(gòu)        18 2.2.1  Windows內(nèi)核結(jié)構(gòu)     20 2.2.2  Windows內(nèi)核中的關(guān)鍵組件     22 2.2.3  Windows子系統(tǒng)         32 2.2.4  系統(tǒng)線程和系統(tǒng)進程         35 2.3  關(guān)于Windows研究內(nèi)核       37 2.3.1  WRK包含了什么        38 2.3.2  WRK源代碼說明        39 2.3.3  本書對WRK源代碼的引用       41 2.4  Windows內(nèi)核的基本概念    42 2.4.1  處理器模式         43 2.4.2  內(nèi)存管理    44 2.4.3  進程和線程管理         46 2.4.4  中斷和異常         48 2.4.5  同步    51 2.5  Windows內(nèi)核中的公共管理設(shè)施        53 2.5.1  Windows內(nèi)核中的對象管理     53 2.5.2  注冊表和配置管理器         61 2.5.3  事件追蹤(ETW)     72 2.5.4  安全性管理         75 2.6  Windows引導(dǎo)過程        81 2.6.1  內(nèi)核加載    82 2.6.2  內(nèi)核初始化         85 2.6.3  建立用戶登錄會話    90 2.7  本章總結(jié)        96 第3章  Windows進程和線程     97 3.1  進程基本概念        97 3.1.1  多進程模型         98 3.1.2  進程與程序         99 3.2  線程基本概念        102 3.2.1  線程模型    102 3.2.2  線程調(diào)度算法    104 3.2.3  線程與進程的關(guān)系    106 3.3  Windows中進程和線程的數(shù)據(jù)結(jié)構(gòu)    106 3.3.1  內(nèi)核層的進程和線程對象         106 3.3.2  執(zhí)行體層的進程和線程對象    118 3.4  Windows的進程和線程管理        129 3.4.1  Windows進程的句柄表     129 3.4.2  獲得當前線程或進程         135 3.4.3  進程和線程的創(chuàng)建過程    136 3.4.4  進程和線程的結(jié)束處理    146 3.4.5  系統(tǒng)初始進程和線程         148 3.5  Windows中的線程調(diào)度        150 3.5.1  線程優(yōu)先級         150 3.5.2  線程狀態(tài)轉(zhuǎn)移    153 3.5.3  時限管理    163 3.5.4  優(yōu)先級調(diào)度和環(huán)境切換    165 3.6  進程和線程運行狀態(tài)監(jiān)視工具   171 3.6.1  ProcMon使用示例     171 3.6.2  ProcMon實現(xiàn)原理     173 3.7  本章總結(jié)        174 第4章  Windows內(nèi)存管理 175 4.1  內(nèi)存管理概述        176 4.1.1  頁式內(nèi)存管理    177 4.1.2  段式內(nèi)存管理    181 4.1.3  內(nèi)存管理算法介紹    184 4.1.4  Windows內(nèi)存管理概述     192 4.2  Windows系統(tǒng)內(nèi)存管理        194 4.2.1  系統(tǒng)地址空間初始化         194 4.2.2  系統(tǒng)地址空間內(nèi)存管理    209 4.2.3  系統(tǒng)PTE區(qū)域的管理         223 4.3  進程內(nèi)存管理        229 4.3.1  地址空間的創(chuàng)建和初始化         229 4.3.2  地址空間切換    234 4.3.3  進程地址空間的內(nèi)存管理         235 4.3.4  內(nèi)存區(qū)對象         241 4.4  內(nèi)存頁面交換        250 4.4.1  Intel x86中的PTE       251 4.4.2  軟件PTE:無效PTE和原型PTE       253 4.4.3  頁面錯誤處理    257 4.4.4  Windows的寫時復(fù)制         263 4.5  物理內(nèi)存管理        265 4.5.1  PFN數(shù)據(jù)庫 266 4.5.2  物理頁面的狀態(tài)變化         272 4.5.3  物理頁面鏈表的管理和操作    275 4.5.4  修改頁面寫出器         280 4.5.5  進程/棧交換器   282 4.5.6  低內(nèi)存通知和高內(nèi)存通知         285 4.6  工作集管理   286 4.6.1  Windows工作集管理器     286 4.6.2  平衡集管理器    292 4.7  內(nèi)存監(jiān)視工具MemMon       293 4.7.1  MemMon使用介紹   293 4.7.2  MemMon實現(xiàn)原理   295 4.8  本章總結(jié)        295 第5章  Windows并發(fā)和同步     297 5.1  進程和線程的同步基礎(chǔ)        297 5.1.1  并發(fā)性基礎(chǔ)         298 5.1.2  進程或線程之間的通信    301 5.1.3  經(jīng)典的同步問題         305 5.2  Windows中斷與異常    310 5.2.1  硬件中斷的發(fā)生和處理    311 5.2.2  中斷請求級別(IRQL)     317 5.2.3  中斷對象    320 5.2.4  DPC(延遲過程調(diào)用)      323 5.2.5  時鐘中斷和定時器管理    327 5.2.6  APC(異步過程調(diào)用)      330 5.2.7  異常分發(fā)    336 5.3  不依賴于線程調(diào)度的同步機制   343 5.3.1  提升IRQL實現(xiàn)數(shù)據(jù)同步   343 5.3.2  互鎖操作    345 5.3.3  無鎖的單鏈表實現(xiàn)    346 5.3.4  自旋鎖         349 5.4  基于線程調(diào)度的同步機制   354 5.4.1  線程進入等待    354 5.4.2  分發(fā)器對象         361 5.4.3  門等待         369 5.4.4  執(zhí)行體資源(executive resource) 370 5.4.5  推鎖(push lock)      373 5.4.6  死鎖    378 5.5  觀察線程同步關(guān)系——DPerfLite         379 5.5.1  DPerfLite使用示例    379 5.5.2  DPerfLite實現(xiàn)原理    381 5.6  本章總結(jié)        382 第6章  Windows I/O系統(tǒng)   383 6.1  I/O概述 384 6.1.1  現(xiàn)代計算機系統(tǒng)的I/O       384 6.1.2  I/O軟件技術(shù)       388 6.1.3  Windows I/O系統(tǒng)結(jié)構(gòu)       390 6.2  I/O管理器      392 6.2.1  驅(qū)動程序初始化         393 6.2.2  驅(qū)動程序?qū)ο蠛驮O(shè)備對象         399 6.2.3  文件對象    404 6.2.4  對象生命周期管理    407 6.3  即插即用管理器   408 6.3.1  即插即用的基本要求         409 6.3.2  Windows中驅(qū)動程序的即插即用支持     410 6.3.3  設(shè)備列舉與設(shè)備樹    411 6.4  電源管理器   414 6.4.1  電源管理概述    414 6.4.2  Windows中的電源管理     417 6.5  設(shè)備驅(qū)動程序        422 6.5.1  設(shè)備驅(qū)動程序分類    423 6.5.2  例子驅(qū)動程序toaster        425 6.5.3  驅(qū)動程序的代碼結(jié)構(gòu)         427 6.5.4  toaster設(shè)備的設(shè)備棧        432 6.5.5  過濾驅(qū)動程序的配置和加載    434 6.5.6  非即插即用驅(qū)動程序         437 6.6  I/O處理 440 6.6.1  I/O請求包(IRP)     440 6.6.2  針對獨立設(shè)備對象的I/O處理 447 6.6.3  處理I/O請求過程中的事項      451 6.6.4  針對設(shè)備棧的I/O處理      461 6.6.5  I/O完成端口       465 6.7  I/O請求監(jiān)視工具IRPMon    468 6.7.1  IRPMon使用介紹       468 6.7.2  IRPMon實現(xiàn)原理       469 6.8  本章總結(jié)        470 第7章  Windows存儲管理 471 7.1  存儲管理概述        471 7.1.1  硬件存儲體系(memory hierarchy)       472 7.1.2  Windows的存儲管理結(jié)構(gòu)         474 7.2  Windows緩存管理        476 7.2.1  Windows緩存空間的內(nèi)存管理         476 7.2.2  緩存管理器的數(shù)據(jù)訪問路徑    483 7.2.3  直接使用系統(tǒng)緩存中的數(shù)據(jù)    486 7.2.4  緩存管理器的預(yù)讀處理    493 7.2.5  緩存管理器的延遲寫         496 7.3  Windows中卷的管理    499 7.3.1  Windows存儲棧結(jié)構(gòu)         500 7.3.2  卷的掛載    504 7.3.3  卷與文件系統(tǒng)    507 7.3.4  文件對象的I/O處理 510 7.4  Windows文件系統(tǒng)        513 7.4.1  文件系統(tǒng)驅(qū)動程序結(jié)構(gòu)    514 7.4.2  RAW文件系統(tǒng)與FsRtl       519 7.4.3  文件系統(tǒng)的I/O過濾 522 7.4.4  FAT文件系統(tǒng)      530 7.4.5  NTFS文件系統(tǒng)   534 7.5  本章總結(jié)        542 第8章  Windows系統(tǒng)服務(wù) 545 8.1  Windows系統(tǒng)服務(wù)原理        545 8.1.1  Intel x86的用戶模式-內(nèi)核模式切換         545 8.1.2  Windows的用戶模式-內(nèi)核模式切換        550 8.1.3  Windows中的系統(tǒng)服務(wù)分發(fā)     555 8.1.4  增加系統(tǒng)服務(wù)表或表項    562 8.2  LPC(本地過程調(diào)用)服務(wù) 565 8.2.1  LPC結(jié)構(gòu)模型      565 8.2.2  LPC端口和LPC消息 567 8.2.3  LPC通信模型的實現(xiàn) 569 8.2.4  LPC應(yīng)用      575 8.3  命名管道(Named Pipe)服務(wù)    577 8.3.1  命名管道的名稱解析         577 8.3.2  命名管道的通信模型         579 8.3.3  命名管道的實現(xiàn)         581 8.4  郵件槽(Mailslot)服務(wù)       584 8.4.1  郵件槽的名稱解析    584 8.4.2  郵件槽的通信模型    585 8.4.3  郵件槽的實現(xiàn)    586 8.5  SDT顯示工具SDTViewer      588 8.5.1  SDTViewer使用介紹 588 8.5.2  SDTViewer實現(xiàn)原理 589 8.6  本章總結(jié)        590 第9章  Windows系統(tǒng)高級話題 591 9.1  網(wǎng)絡(luò)        591 9.1.1  Windows網(wǎng)絡(luò)體系結(jié)構(gòu)     591 9.1.2  TDI(傳輸驅(qū)動程序接口)       595 9.1.3  NDIS(網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范)    599 9.1.4  Windows Vista及以后版本的網(wǎng)絡(luò)結(jié)構(gòu)   601 9.2  Windows子系統(tǒng)    603 9.2.1  Windows子系統(tǒng)結(jié)構(gòu)         603 9.2.2  Windows子系統(tǒng)初始化與GUI線程         607 9.2.3  窗口管理    610 9.2.4  GDI(圖形設(shè)備接口)      620 9.2.5  Windows Vista及以后的子系統(tǒng)變化        627 9.3  內(nèi)核日志        629 9.3.1  內(nèi)核日志記錄器         629 9.3.2  利用內(nèi)核日志信息診斷性能問題    632 9.4  Windows Vista/Server 2008/7的重要變化  640 9.4.1  MinWin工程       640 9.4.2  進程和線程管理         643 9.4.3  內(nèi)存管理    645 9.4.4  I/O處理的改進  647 9.5  本章總結(jié)        650 附錄A  建立WRK工作環(huán)境         651 A.1  編譯WRK       651 A.2  啟動WRK       655 A.3  調(diào)試WRK       658 附錄B  內(nèi)核代碼插入工具KInjectToolKit  665 B.1  KInjectToolKit功能介紹         666 B.2  KInjectToolKit的代碼實現(xiàn)    667 B.3  KInjectToolKit的限制    671 參考資料         673 術(shù)語對照表     681 索引         687

本目錄推薦

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