注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡操作系統(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)絡

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

作者簡介

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

圖書目錄

第1章  概述          1 1.1  操作系統(tǒng)基礎        2 1.1.1  計算機系統(tǒng)的硬件資源管理    2 1.1.2  為應用程序提供執(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  本章總結        16 第2章  Windows系統(tǒng)總述 17 2.1  現(xiàn)代操作系統(tǒng)的基本結構   17 2.2  Windows系統(tǒng)結構        18 2.2.1  Windows內(nèi)核結構     20 2.2.2  Windows內(nèi)核中的關鍵組件     22 2.2.3  Windows子系統(tǒng)         32 2.2.4  系統(tǒng)線程和系統(tǒng)進程         35 2.3  關于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)核中的公共管理設施        53 2.5.1  Windows內(nèi)核中的對象管理     53 2.5.2  注冊表和配置管理器         61 2.5.3  事件追蹤(ETW)     72 2.5.4  安全性管理         75 2.6  Windows引導過程        81 2.6.1  內(nèi)核加載    82 2.6.2  內(nèi)核初始化         85 2.6.3  建立用戶登錄會話    90 2.7  本章總結        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  線程與進程的關系    106 3.3  Windows中進程和線程的數(shù)據(jù)結構    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  進程和線程的結束處理    146 3.4.5  系統(tǒng)初始進程和線程         148 3.5  Windows中的線程調(diào)度        150 3.5.1  線程優(yōu)先級         150 3.5.2  線程狀態(tài)轉移    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  本章總結        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的寫時復制         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  本章總結        295 第5章  Windows并發(fā)和同步     297 5.1  進程和線程的同步基礎        297 5.1.1  并發(fā)性基礎         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  觀察線程同步關系——DPerfLite         379 5.5.1  DPerfLite使用示例    379 5.5.2  DPerfLite實現(xiàn)原理    381 5.6  本章總結        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軟件技術       388 6.1.3  Windows I/O系統(tǒng)結構       390 6.2  I/O管理器      392 6.2.1  驅(qū)動程序初始化         393 6.2.2  驅(qū)動程序?qū)ο蠛驮O備對象         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  設備列舉與設備樹    411 6.4  電源管理器   414 6.4.1  電源管理概述    414 6.4.2  Windows中的電源管理     417 6.5  設備驅(qū)動程序        422 6.5.1  設備驅(qū)動程序分類    423 6.5.2  例子驅(qū)動程序toaster        425 6.5.3  驅(qū)動程序的代碼結構         427 6.5.4  toaster設備的設備棧        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  針對獨立設備對象的I/O處理 447 6.6.3  處理I/O請求過程中的事項      451 6.6.4  針對設備棧的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  本章總結        470 第7章  Windows存儲管理 471 7.1  存儲管理概述        471 7.1.1  硬件存儲體系(memory hierarchy)       472 7.1.2  Windows的存儲管理結構         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  緩存管理器的預讀處理    493 7.2.5  緩存管理器的延遲寫         496 7.3  Windows中卷的管理    499 7.3.1  Windows存儲棧結構         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ū)動程序結構    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  本章總結        542 第8章  Windows系統(tǒng)服務 545 8.1  Windows系統(tǒng)服務原理        545 8.1.1  Intel x86的用戶模式-內(nèi)核模式切換         545 8.1.2  Windows的用戶模式-內(nèi)核模式切換        550 8.1.3  Windows中的系統(tǒng)服務分發(fā)     555 8.1.4  增加系統(tǒng)服務表或表項    562 8.2  LPC(本地過程調(diào)用)服務 565 8.2.1  LPC結構模型      565 8.2.2  LPC端口和LPC消息 567 8.2.3  LPC通信模型的實現(xiàn) 569 8.2.4  LPC應用      575 8.3  命名管道(Named Pipe)服務    577 8.3.1  命名管道的名稱解析         577 8.3.2  命名管道的通信模型         579 8.3.3  命名管道的實現(xiàn)         581 8.4  郵件槽(Mailslot)服務       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  本章總結        590 第9章  Windows系統(tǒng)高級話題 591 9.1  網(wǎng)絡        591 9.1.1  Windows網(wǎng)絡體系結構     591 9.1.2  TDI(傳輸驅(qū)動程序接口)       595 9.1.3  NDIS(網(wǎng)絡驅(qū)動程序接口規(guī)范)    599 9.1.4  Windows Vista及以后版本的網(wǎng)絡結構   601 9.2  Windows子系統(tǒng)    603 9.2.1  Windows子系統(tǒng)結構         603 9.2.2  Windows子系統(tǒng)初始化與GUI線程         607 9.2.3  窗口管理    610 9.2.4  GDI(圖形設備接口)      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  本章總結        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 術語對照表     681 索引         687

本目錄推薦

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