基本介紹
內容簡介
拉希諾維奇所著的《深入解析Windows作業系統(第6版上)》的權威性毋庸置疑。Mark Russinovich因其在Windows核心探索方面所做出的貢獻而成為Microsoft Fellow,本書中用到的大量Sysinternals工具均出自他的手筆。David Solomon從事Windows NT內部機理的培訓有十多年經歷,他不僅在全球各地培訓Windows系統程式設計師,甚至也為Microsoft的內部員工提供Windows核心培訓服務,他從本書第2版開始奠定了卓有成效的敘述風格。Alex Ionescu是一名年輕的黑客型Windows專家,曾經為ReactOS(一個開源的作業系統項目,旨在兼容Windows 2000/XP/Server 2003的應用程式)編寫了絕大多數核心代碼。他曾經發現和報告了一些與Windows核心相關的軟體漏洞,也跟David Solomon一起教授Windows內部機理的課程。有如此強大的作者組合,再加上Microsoft的內部支持(包括提供原始碼,以及Windows開發組的細緻解釋),本書無疑成為Windows最新版本的第一手技術資料。
作者簡介
Mark Russinovich,現為微軟Windows Azure組技術人員。他是Sysinternals工具(可以從微軟TechNet下載)的作者之一,還合著了Windows Sysinternals Administrator's Reference及《深入解析Windows作業系統》系列圖書。
David A. Solomon,《深入解析Windows作業系統》系列圖書的合著者,並為全球成千上萬的開發人員和IT專業人士,包括微軟員工,講授Windows內幕課程。他時常在微軟舉辦的會議中發言,包括TechNet和PDC。
Alex Ionescu,低層系統軟體、核心開發、安全培訓以及逆向工程方面的首席軟體架構師和諮詢專家。他與David A. Solomon一起教授Windows內幕課程,並活躍於安全研究社區。
譯者簡介
潘愛民,任職於阿里雲計算有限公司,擔任阿里雲OS首席架構師。長期從事軟體和系統技術的研究與開發工作,撰寫了大量軟體技術文章,著譯了多部經典計算機圖書,在國內外學術刊物上發表了30多篇文章。曾經任教於北京大學和清華大學(兼職)。後進入工業界,先後任職於微軟亞洲研究院、盛大網路發展有限公司和阿里雲技術有限公司。目前也是工信部移動作業系統專家組成員。潘愛民先生獲得了數學學士學位和計算機科學博士學位,主要研究領域包括軟體設計、信息安全、作業系統和網際網路技術。
范德成,2004年畢業於上海交通大學。在微軟和SAP公司有多年項目經驗。對作業系統、資料庫、算法與數據結構、計算機體系結構、程式設計語言、軟體測試方法學等方面具有濃厚興趣。對Python、Firefox、Linux等開源技術感興趣,並構建了微型開源項目Robbie's Shell。
譯者范德成就其參與翻譯的緣起、翻譯本書的體會等寫成了一篇後記。
圖書目錄
譯者序
引言
本書的結構
本書的歷史
第6版的變化
練習實驗
本書沒有覆蓋的話題
提醒和告誡
致謝
勘誤和本書支持
傾聽您的聲音
保持聯繫
第1章概念和工具
1.1Windows作業系統的版本
1.2基礎概念和術語
WindowsAPI
服務、函式和例程
進程、執行緒和作業
虛擬記憶體
核心模式和用戶模式
終端服務及多個會話
對象和句柄
安全性
註冊表
Unicode
1.3挖掘Windows內部機理
性能監視器
核心調試
Windows軟體開發工具(WindowsSDK)
Windows驅動程式開發工具
Sysinternals工具
1.4本章總結
第2章系統架構
2.1需求和設計目標
2.2作業系統模型
2.3總體架構
可移植性
對稱多處理
可伸縮性
客戶機和伺服器版本之間的差異
檢查版本
2.4關鍵的系統組件
環境子系統和子系統DLL
Ntdll.dll
執行體
核心
硬體抽象層(HAL)
設備驅動程式
系統進程
2.5本章總結
第3章系統機制
3.1陷阱分發
中斷分發
定時器處理
異常分發
系統服務分發
3.2對象管理器
執行體對象
對象結構
3.3同步
高IRQL的同步
低IRQL的同步
3.4系統輔助執行緒
3.5Windows全局標誌
3.6高級本地過程調用(ALPC)
連線模型
訊息模型
異步操作
視圖、區域和記憶體區
屬性
Blob、句柄和資源
安全性
性能
調試和跟蹤
3.7核心事件跟蹤
3.8Wow64
Wow64進程地址空間布局結構
系統調用
異常分發
用戶APC分發
控制台支持
用戶回調
檔案系統重定向
註冊表的重定向
I/O控制請求
16位安裝器應用程式
列印
一些限制
3.9用戶模式調試
核心支持
原生支持
Windows子系統支持
3.10映像載入器
進程初始化早期工作
DLL名稱解析
DLL名稱重定向
已載入模組資料庫
導入信息解析
導入過程初始化的後期處理
SwitchBack
API集
3.11超級監督者(Hyper—V)
分區
父分區
子分區
硬體仿真和支持
3.12核心事務管理器
3.13熱補丁支持
3.14核心補丁保護
3.15代碼完整性
3.16本章總結
第4章管理機制
4.1註冊表
查看和修改註冊表
註冊表用法
註冊表數據類型
註冊表邏輯結構
事務型註冊表(TxR)
監視註冊表活動
註冊表的內部機理
4.2服務
服務套用
服務賬戶
服務控制管理器
服務啟動
啟動錯誤
接受當前引導和“最後已知的好控制集”
服務失敗
服務停機
共享的服務進程
服務標記
4.3統一的後台進程管理器
初始化
UBPMAPI
提供者註冊
消費者註冊
TaskHost
服務控制程式
4.4Windows管理設施
提供者
公共信息模型(CIM)和可管理對象的格式語言
類關聯
WMI實現
WMI安全性
4.5Windows診斷基礎設施
WDI設施
診斷策略服務
診斷功能
4.6本章總結
第5章進程、執行緒和作業
5.1進程的內部機理
數據結構
5.2受保護進程
5.3CreateProcess的流程
階段1:轉換並驗證參數和標誌
階段2:打開將要被執行的映像
階段3:創建Windows執行體進程對象(PspAllocateProcess)
階段4:創建初始執行緒,以及它的棧和執行環境
階段5:執行特定於Windows子系統的初始化後處理
階段6:啟動初始執行緒的執行
階段7:在新進程環境下執行進程初始化
5.4執行緒的內部機理
數據結構
一個執行緒的誕生
5.5檢查執行緒活動
受保護進程的執行緒上的訪問限制
5.6工作者工廠(執行緒池)
5.7執行緒調度
Windows調度概述
優先權別
執行緒狀態
分發器資料庫
時限
優先權提升
環境切換
調度情形
空閒(Idle)執行緒
執行緒選擇
多處理器系統
多處理器系統上的執行緒選擇
處理器的選擇
5.8基於處理器份額的調度
分散式公平份額調度
CPU比率的限制
5.9動態的處理器添加與更換
5.10作業對象
作業的限制
作業集
5.11本章總結
第6章安全性
6.1安全等級
可信計算機系統評估標準(TCSEC)
6.2安全系統組件
6.3保護對象
訪問檢查
安全標識符(SID)
虛擬服務賬戶
安全描述符和訪問控制
6.4AuthZAPI
6.5賬戶許可權和特權
賬戶許可權
特權
超級特權
6.6進程和執行緒的訪問令牌
6.7安全審計
對象訪問的審計
全局審計策略
高級審計策略設定
6.8登錄(Logon)
Winlogon初始化
用戶登錄步驟
可保證的認證
用戶認證的生物識別框架
6.9用戶賬戶控制和虛擬化
檔案系統和註冊表虛擬化
許可權提升
6.10應用程式標識(AppID)
6.11AppLocker
6.12軟體限制策略
6.13本章總結
第7章網路
7.1Windows的網路總體結構
OSI參考模型
Windows網路組件
7.2網路API
Windows套接字(WindowsSockets)
Winsock核心
遠過程調用
Web訪問API
命名管道和郵件槽
NetBIOS
其他的網路API
7.3多重定向器支持
多提供者轉發器
多UNC提供者
代理提供者
重定向器
小重定向器
伺服器訊息塊與子重定向器
7.4分散式檔案系統名字空間
7.5分散式檔案系統複製
7.6脫機檔案
快取模式
幻影(ghosts)
數據安全性
快取的結構
7.7BranchCache
快取模式
BranchCache最佳化下的應用程式數據獲取:SMB序列
BranchCache最佳化下的應用程式數據獲取:HTTP序列
7.8名稱解析
域名系統
對等體名稱解析協定
7.9位置和拓撲結構
網路位置感知
網路連線狀態指示器
鏈路層拓撲發現
7.10協定驅動程式
Windows過濾平台
7.11NDIS驅動程式
NDIS小連線埠的變化形式
面向連線的NDIS
外接NDIS(RemoteNDIS)
QoS
7.12綁定
7.13分層的網路服務
術語對照表