Mark Russinovich & David Solomon:windows Internals@2012 (第6版 下册)
這份資料是《Windows Internals, 第六版, 第二部分》一書的目錄,詳細闡述了 Windows 作業系統核心內部機制的後半部分。核心論點在於深入探討 Windows 核心的輸入/輸出(I/O)處理、儲存管理、記憶體管理、檔案系統以及系統啟動與關閉和崩潰分析等關鍵子系統。透過對這些內部運作機制的解析,書籍旨在提供讀者更深層次的理解,以便進行進階的系統故障排除、效能分析及開發工作。
以下是從目錄中提取的主要論點及其詳盡解釋:
-
I/O 系統的架構與運作機制 (章節 8: I/O System)
這個章節詳盡介紹了 Windows 的 I/O 系統。其核心論點是 Windows 透過 I/O 管理器、設備驅動程式以及隨插即用(PnP)管理器、電源管理器等執行單元協同工作,為應用程式提供一個抽象化且高效的設備介面。章節解釋了不同類型的設備驅動程式(如 WDM 驅動程式、分層驅動程式)如何協同運作來管理硬體。它還詳細探討了驅動程式的結構、驅動程式物件和設備物件之間的關係,以及設備如何被開啟和存取。I/O 處理的核心是 I/O 請求封包(IRP),章節解釋了 IRP 的類型、緩衝管理方式,並區分了同步 I/O、非同步 I/O 和快速 I/O 的處理流程。中斷服務常式(ISR)和延遲程序呼叫(DPC)在處理設備中斷中的作用也被闡述。此外,章節還涵蓋了 I/O 取消機制、I/O 完成埠(一種用於實現高性能非同步 I/O 的機制)以及 Windows 的 I/O 優先級處理方式。最後,隨插即用管理器和電源管理器的職責和運作流程也被詳細介紹,包括設備的列舉、驅動程式載入、安裝以及系統和設備的電源狀態轉換。 -
Windows 的儲存管理層次與技術 (章節 9: Storage Management)
此章節聚焦於 Windows 如何管理儲存設備。主要論點在於 Windows 提供了一個分層的儲存堆疊架構,允許不同類型的儲存設備(如硬碟、SSD、光學媒體、VHD)和連接方式(如 SATA、SCSI、USB、iSCSI)被統一管理。章節首先介紹了基本的儲存術語和不同類型的磁碟設備。然後,它深入探討了儲存驅動程式,包括 Windows 開機時載入的驅動程式(Winload),以及類別驅動程式、連接埠驅動程式和迷你連接埠驅動程式如何協同工作。磁碟設備物件在此架構中的角色也被解釋。儲存管理的關鍵部分是磁碟分區和卷管理,章節區分了基本磁碟和動態磁碟的概念,並詳細闡述了動態磁碟支持的各種多分區卷類型(如跨區卷、鏡像卷、帶狀卷、RAID-5卷)及其運作方式。卷的命名空間和卷的 I/O 操作在此背景下被解釋。虛擬磁碟服務(VDS)作為高級儲存管理工具也被介紹。此外,章節還涵蓋了虛擬硬碟(VHD)的支持,以及 BitLocker 磁碟加密技術(包括其金鑰管理、TPM 整合、開機流程和復原機制)和卷陰影複製服務(VSS,用於創建數據的靜態副本,支持快照和復原)的內部工作原理。 -
虛擬記憶體管理與物理記憶體分配 (章節 10: Memory Management)
本章節是關於 Windows 記憶體管理器的核心論述。主要論點是記憶體管理器為每個進程提供了抽象的虛擬地址空間,並高效地將其映射到有限的物理記憶體(RAM)上,同時處理分頁、快取和共享。章節首先介紹了記憶體管理器的組件、內部同步機制和服務。虛擬地址空間的基礎概念,如大頁面和小頁面、保留與提交頁面、提交限制、鎖定記憶體和分配粒度被詳細解釋。共享記憶體和映射檔案(通過區段物件實現)是記憶體管理器的關鍵服務。記憶體保護(包括不可執行頁面保護 DEP 和地址空間配置隨機化 ASLR)在此章節中佔有重要地位。內核模式堆(系統記憶體池,包括分頁池和非分頁池)和用戶模式堆(應用程式使用)的內部管理也被深入探討。章節詳細描述了不同處理器架構(x86、x64、IA64)上的虛擬地址空間布局和地址翻譯過程。頁面錯誤(Page Fault)處理是虛擬記憶體核心機制,包括不同類型無效 PTE 的解析、In-Paging I/O 和分群頁面錯誤。棧(用戶棧、內核棧、DPC棧)和虛擬地址描述符(VAD)在地址空間管理中的作用被解釋。記憶體管理器對非統一記憶體訪問(NUMA)架構的優化被討論。頁框號碼(PFN)資料庫作為物理記憶體管理的基礎被詳細介紹,包括頁面狀態、頁面列表動態和頁面優先級。最後,章節闡述了記憶體管理器的主動式記憶體管理(如 Superfetch 和 ReadyBoost/ReadyDrive)如何基於歷史使用模式和優先級來優化物理記憶體的使用。 -
快取管理器的運作與檔案系統互動 (章節 11: Cache Manager)
本章節專門介紹 Windows 的快取管理器。核心論點是快取管理器提供了一個統一且高效的系統快取,與記憶體管理器緊密協作,為所有檔案系統驅動程式提供數據快取服務。章節首先列出快取管理器的關鍵特性,強調其單一、集中式的系統快取以及與記憶體管理器的協作。快取虛擬記憶體管理、快取大小的計算(包括虛擬大小、工作集大小和物理大小)被解釋。章節詳細介紹了用於描述快取狀態的數據結構,包括系統級別的虛擬地址控制塊(VACB)以及每個被快取檔案的共享快取映射和私有快取映射。快取管理器提供的不同檔案系統介面(拷貝、映射和釘選、DMA)被討論。快速 I/O 作為一種繞過標準 I/O 請求流程以提高快取存取速度的機制被重點介紹。快取管理器實現的讀取預取(read-ahead)和寫入延遲(write-behind)策略(包括智能讀取預取和寫回快取與延遲寫入)被詳細闡述。最後,章節簡要提及快取管理器使用的系統執行緒。 -
檔案系統格式、架構與 NTFS 的深入解析 (章節 12: File Systems)
本章節涵蓋了 Windows 支持的各種檔案系統格式和其驅動程式架構,並對 NTFS 進行了深入分析。主要論點是 Windows 支持多種檔案系統格式,並通過分層的驅動程式架構來管理它們,其中 NTFS 是 Windows 的主要本機檔案系統,具有多項進階功能和高可靠性。章節首先概述了 Windows 支持的檔案系統格式(CDFS、UDF、FAT 家族、exFAT、NTFS)。然後,它闡述了檔案系統驅動程式的架構,區分了本機 FSDs 和遠端 FSDs,並解釋了檔案系統的基本運作和與其他系統組件的互動。檔案系統篩選驅動程式(Filter Drivers)的角色也被提及。章節介紹了通用日誌檔案系統(CLFS)作為一種提供日誌記錄服務的虛擬檔案系統。隨後,章節對 NTFS 進行了詳細分析,包括其設計目標(如可恢復性、安全性、數據冗餘)和進階功能(如多數據流、Unicode 名稱、索引、壞簇重映射、硬連結、符號連結、壓縮、稀疏檔案、變更日誌、配額、連結追蹤、加密和 POSIX 支持)。NTFS 的磁碟結構(卷、簇、MFT、檔案記錄、屬性)被詳細解釋。NTFS 的恢復支持機制,包括元數據日誌記錄和恢復流程,被深入闡述。最後,章節涵蓋了加密檔案系統(EFS)的安全機制。 -
Windows 系統的啟動與關閉流程 (章節 13: Startup and Shutdown)
此章節詳細介紹了 Windows 作業系統的啟動和關閉過程。核心論點是 Windows 的啟動是一個多階段、由固件、引導加載程序、內核和用戶模式組件協同完成的複雜過程,其設計允許通過不同模式和工具進行故障排除。章節首先區分了 BIOS 和 UEFI 系統的開機前(preboot)過程,解釋了 MBR、引導扇區(boot sector)和 Bootmgr 的作用。接著,詳細描述了 Winload.exe 如何載入內核和執行體子系統,以及 Smss.exe、Csrss.exe 和 Wininit.exe 等用戶模式進程如何建立用戶環境。章節還提及了 ReadyBoot 等開機優化技術。對於開機時可能出現的問題,章節介紹了故障排除工具和恢復選項,如最後一次正確配置(Last Known Good)、安全模式(Safe Mode)和 Windows 恢復環境(WinRE)。最後,章節描述了系統的正常關閉流程,包括應用程式關閉、服務停止和設備狀態轉換。 -
系統崩潰的原因與故障傾印分析 (章節 14: Crash Dump Analysis)
本章節專門討論 Windows 系統崩潰及其診斷。主要論點是 Windows 在遇到嚴重錯誤時會崩潰(顯示藍屏),為了診斷原因,系統會生成崩潰傾印文件,並可利用特定工具進行分析。章節首先解釋了 Windows 崩潰的原因,包括驅動程式錯誤、硬體問題和內核內部異常。藍屏的顯示內容和常見停止代碼被介紹。章節詳細闡述了崩潰排除的流程,包括配置生成崩潰傾印文件(完整、內核、小型傾印)的選項。Windows 錯誤報告(WER)和線上崩潰分析(OCA)作為自動化診斷工具被介紹。章節逐步指導讀者進行基本的崩潰傾倒分析,包括使用 WinDbg/Kd 工具和 !analyze 命令。進階的崩潰傾倒分析技術也被提及,例如堆棧損壞(Stack Trash)和死鎖分析。最後,章節分析了幾個常見停止代碼的典型原因和分析方法,並討論了在沒有崩潰傾倒文件可用的情況下的故障排除方法。
這些章節共同構成了《Windows Internals, 第六版, 第二部分》對 Windows 核心子系統和流程的全面剖析,從 I/O 的最低層次到檔案系統,再到記憶體的虛擬化與管理,以及系統的生命週期管理與故障診斷。
comments
comments for this post are closed