Windows 內核設計思想

Windows 內核設計思想 pdf epub mobi txt 電子書 下載2025

出版者:電子工業齣版社
作者:陳樹寶
出品人:博文視點
頁數:636
译者:
出版時間:2015-3
價格:108.00
裝幀:
isbn號碼:9787121253140
叢書系列:
圖書標籤:
  • windows
  • [Windows]
  • Windows內核
  • 內核原理
  • 操作係統
  • 係統編程
  • 驅動開發
  • Windows
  • 底層技術
  • 計算機科學
  • 技術經典
  • 編程書籍
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

《Windows 內核設計思想》主要講述Windows 內核的設計過程,從最底層的細節使用源碼一步一步分析,結閤Bochs 和WinDbg 調試器進行驗證。《Windows 內核設計思想》提供全部源代碼和能直接編譯的項目工程,集理論、架構、編碼、運行和調試於一體進行講述,從多種角度呈現內核構架的基本流程。《Windows 內核設計思想》主要包括瞭Windows 內核加載器(ntldr)的分析,Windows 內核調試組件的設計,實現結構化異常處理的支持,並對內存管理和對象管理進行瞭精心講解,同時對基於IRP 請求包的I/O 係統進行瞭論述,並且介紹瞭如何設計文件係統,最後簡單講解瞭進程和綫程的一些基本知識。

《Windows 內核設計思想》適閤希望深入瞭解Windows 內核框架的程序員及對此感興趣的讀者閱讀。

著者簡介

圖書目錄

推薦序 1
推薦序 2
序言
前言
第 1 章 搭建開發和調試環境
1.1 編譯環境
1.2 使用 Bochs 運行 ntos.img
1.3 使用 VMware 運行 ntos.vmdk
1.4 模擬調試運行
1.5 編程思想(等差數列求和)
1.6 函數調用約定
1.7 模塊擴展約定
1.8 本章總結
第 2 章 Windows 內核加載器(SU)
2.1 主引導記錄(MBR)
2.2 係統分區(Partition1)
2.3 SU 模塊(startup.com)
2.3.1 原版 Windows Server 2003 係統 NTLDR startup.com 基本分析
2.3.2 根據原理重新構建新的 startup.com
2.4 檢測物理內存
2.5 開啓 A20 地址綫
2.6 重新定位 GDT 和 IDT
2.7 保護模式
2.7.1 段描述符(Segment Descriptor)
2.7.2 特權級(privilege level)
2.7.3 段描述符錶(segment descriptor table)
2.7.4 開啓保護模式
2.8 加載 Loader 模塊
2.9 轉移控製權
2.10 導齣函數
2.10.1 讀寫扇區
2.10.2 獲取物理內存塊
2.10.3 檢測硬件
2.11 本章總結
第 3 章 Windows 內核調試設計
3.1 初始化調試係統
3.2 初始化模擬調試
3.3 初始化內核調試
3.3.1 中斷和異常嚮量錶
3.3.2 注冊異常處理例程
3.3.3 基於棧框架的異常處理程序
3.3.4 除零錯誤(#DE)
3.3.5 單步異常(#DB)
3.3.6 斷點異常(#BP)
3.3.7 一般保護性錯誤(#GP)
3.3.8 頁麵錯誤(#PF)
3.3.9 調試器服務(debugger service)
3.4 分發異常
3.5 內核調試分發
3.5.1 打印字符串
3.5.2 加載/卸載符號
3.5.3 報告異常
3.6 內核調試引擎核心
3.6.1 獲取係統版本
3.6.2 獲取/設置機器信息
3.6.3 讀/寫虛擬內存
3.6.4 設置/恢復斷點
3.7 調試通信協議
3.7.1 串行端口
3.7.2 COM 寄存器
3.7.3 波特率
3.7.4 端口初始化
3.7.5 通信協議
3.7.6 讀端口
3.7.7 寫端口
3.7.8 調試包
3.7.9 接收調試包(KdReceivePacket)
3.7.10 發送調試包(KdSendPacket)
3.8 本章總結
第 4 章 Windows 內核加載器(Loader)
4.1 NtProcessStartup
4.2 PcMachInit
4.3 初始化內存管理器
4.3.1 內存描述符錶
4.3.2 頁麵查找錶
4.3.3 初始化堆
4.4 分頁機製
4.4.1 頁幀號(PFN)
4.4.2 頁目錄和頁錶
4.4.3 開啓分頁機製
4.4.4 虛擬地址轉譯物理地址
4.4.5 修改頁目錄和頁錶位置
4.5 Loader 讀/寫支持
4.5.1 ARC 接口標準
4.5.2 虛擬磁盤驅動(RamDisk)
4.5.3 磁盤驅動(Hwdisk)
4.5.4 文件係統驅動(Ldfs)
4.6 加載器參數塊
4.7 加載和啓動內核
4.7.1 收集硬件信息
4.7.2 本地語言支持(NLS)
4.7.3 加載模塊
4.7.4 內存描述符鏈錶
4.7.5 處理器控製域(PCR)和任務狀態段(TSS)
4.8 本章總結
第 5 章 結構化異常處理
5.1 異常觸發
5.2 分發異常(RtlDispatchException)
5.3 異常處理(_except_handler3)
5.4 全局展開(__global_unwind2)
5.5 局部展開(__local_unwind2)
5.6 冒泡排序(BubbleSort)
5.7 本章總結
第 6 章 內存管理
6.1 物理內存管理概述
6.2 虛擬地址空間布局
6.3 初始化內存係統(MmArmInitSystem)
6.4 初始化機器相關(MiInitMachineDependent)
6.5 初始化非分頁池(MiInitializeNonPagedPool)
6.6 初始化係統 PTE(MiInitializeSystemPtes)
6.7 映射頁幀數據庫(MiMapPfnDatabase)
6.8 初始化顔色錶(MiInitializeColorTables)
6.9 初始化頁幀號數據庫(MiInitializePfnDatabase)
6.9.1 從頁麵建立頁幀號數據庫(MiBuildPfnDatabaseFromPages)
6.9.2 從加載塊物理內存鏈錶建立頁幀號數據庫(MiBuildPfnDatabaseFromLoad-
erBlock)
6.10 初始化池(InitializePool)
6.11 分配池頁麵(MiAllocatePoolPages)
6.11.1 非分頁池分配
6.11.2 分頁池分配
6.11.3 分頁池頁麵錯誤處理
6.12 釋放池頁(MiFreePoolPages)
6.12.1 釋放分頁池
6.12.2 釋放非分頁池
6.13 建立分頁池(MiBuildPagedPool)
6.14 分配池內存(ExAllocatePoolWithTag)
6.15 釋放池內存(ExFreePoolWithTag)
6.16 初始化係統空間映射(MiInitializeSystemSpaceMap)
6.17 本章總結
第 7 章 對象管理
7.1 對象概述
7.1.1 對象整體結構
7.1.2 對象頭(object header)
7.1.3 對象類型(object type)
7.1.4 對象類型例程模闆(object type procedure template)
7.2 分配對象內存空間(ObpAllocateObject)
7.3 釋放對象內存空間(ObpDeallocateObject)
7.4 初始化對象係統(ObInitSystem)
7.5 創建句柄錶(ExCreateHandleTable)
7.6 創建對象類型(ObCreateObjectType)
7.7 創建目錄對象(NtCreateDirectoryObject)
7.8 創建對象(ObCreateObject)
7.9 插入對象(ObInsertObject)
7.10 查找對象名(ObpLookupObjectName)
7.11 查找目錄項(ObpLookupEntryDirectory)
7.12 創建無名句柄(ObpCreateUnnamedHandle)
7.13 分配句柄錶項(ExpAllocateHandleTableEntry)
7.14 解析符號鏈接(ObpParseSymbolicLink)
7.15 Section 和 Segment
7.15.1 Prototype PTE 頁麵異常處理
7.15.2 Section 映射到係統進程
7.15.3 VAD 頁麵錯誤處理
7.16 本章總結
第 8 章 I/O 係統
8.1 初始化 I/O 係統(IoInitSystem)
8.2 創建驅動對象(IopCreateDriver)
8.3 創建設備對象(IoCreateDevice)
8.4 分配 I/O 請求包(IoAllocateIrp)
8.5 傳遞 I/O 請求包(IoCallDriver)
8.6 釋放 I/O 請求包(IoFreeIrp)
8.7 解析設備(IopParseDevice)
8.8 磁盤讀/寫支持
8.9 本章總結
第 9 章 文件係統設計
9.1 文件係統初始化(DriverEntry)
9.2 掛載捲(NtfsMountVolume)
9.2.1 識彆文件係統格式
9.2.2 文件控製塊(FCB)
9.2.3 上下文控製塊(CCB)
9.2.4 創建流文件對象(IoCreateStreamFileObject)
9.2.5 初始化緩存映射(CcInitializeCacheMap)
9.3 打開文件(NtfsOpenFile)
9.4 讀文件(NtfsReadFile)
9.5 關閉文件(NtfsCloseFile)
9.6 發起捲掛載請求
9.7 加載 NTDLL
9.7.1 打開 NTDLL
9.7.2 檢查 NTDLL 映像(MmCheckSystemImage)
9.7.3 創建 NTDLL Section
9.7.4 映射 NTDLL Section 到當前進程空間
9.7.5 獲取用戶進入點
9.8 本章總結
第 10 章 進程和綫程
10.1 進程和綫程初始化
10.1.1 初始化進程
10.1.2 初始化綫程
10.1.3 初始化綫程上下文
10.1.4 初始化進程係統(PspInitPhase0)
10.2 綫程優先級(priority)
10.3 綫程狀態(thread state)
10.4 綫程調度(thread dispatch)
10.5 分配進程虛擬內存(NtAllocateVirtualMemory)
10.6 創建用戶進程(smss.exe)
10.7 本章總結
附錄 A PE 格式
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

评分

评分

评分

评分

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有