发表于2024-11-25
處理器虛擬化技術 pdf epub mobi txt 電子書 下載 2024
《處理器虛擬化技術》針對在Intel處理器端的虛擬化技術(Intel Virtualization Technology for x86,即Intel VT-x)進行全麵講解。在Intel VT-x技術下實現瞭VMX(Virtual-Machine Extensions,虛擬機擴展)架構平颱來支持對處理器的虛擬化管理。因此,VMX架構是Intel VT-x技術的核心。本書內容圍繞VMX架構實現細節展開全麵講解。但Intel VT-d(Virtualization Technology for Directed I/O)和Intel VT-c(Virtualization Technology for Connectivity)技術並不在本書的描述範圍。同時,也不針對AMD-v技術進行討論。
《處理器虛擬化技術》共分為7章,書的整體結構也較為規整,可讀性比較強。本書共提供14個例子,對VMX架構的一些特色功能進行輔助講解。
讀者閱讀《處理器虛擬化技術》,可以學習Intel VT-x技術的VMX架構知識,並且對整個x86/x64體係有更深入的瞭解!可以說,不瞭解VMX架構,根本算不上對x86/x64體係熟悉,因為,在處理器的虛擬化技術裏需要使用全方位的體係知識,對處理器在非常細節的地方進行虛擬化處理。
鄧誌,1977年生於廣東,在銀行工作十餘年,現自由職業者。對計算機有一股熱情和蠻勁,善於思考,特彆喜歡琢磨底層架構。熟悉C語言,並且精通x86/x64平颱的匯編語言與機器指令係統,能用匯編寫簡易的OS核心。
第1章 係統平颱
1.1 環境及工具
1.1.1 使用vmware
1.1.2 使用bochs
1.1.3 在真實機器上運行
1.1.4 Build工具
1.2 64位與32位代碼的混閤編譯
1.2.1 使用符號__X64
1.2.2 指令操作數
1.2.3 64-bit模式下其他指令處理
1.2.4 函數重定義錶
1.3 地址空間
1.4 數據結構
1.4.1 PCB結構
1.4.2 LSB結構
1.4.3 初始化PCB
1.4.4 SDA結構
1.4.5 初始化SDA
1.4.6 DRS結構
1.5 係統啓動
1.5.1 Boot階段
1.5.2 Stage1階段
1.5.2.1 Stage1階段的多處理器初始化
1.5.2.2 BSP的收尾工作
1.5.2.3 APs的stage1階段工作
1.5.3 Stage2階段
1.5.3.1 BSP在stage2最後處理
1.5.3.2 APs在stage2階段收尾工作
1.5.4 Stage3階段
1.5.4.1 BSP在stage3階段的最後工作
1.5.4.2 APs在stage3階段收尾工作
1.5.5 例子1-1
1.6 係統機製
1.6.1 分頁機製
1.6.1.1 PAE分頁模式實現
1.6.1.2 IA-32e分頁模式實現
1.6.2 多處理器機製
1.6.2.1 調度任務
1.6.2.2 處理器切換
1.6.3 調試記錄機製
1.6.3.1 例子1-2
1.6.3.2 運行結果
第2章 VMX架構基礎
2.1 虛擬化概述
2.1.1 虛擬設備
2.1.2 地址轉換
2.1.3 設備的I/O訪問
2.2 VMX架構
2.2.1 VMM與VM
2.2.2 VMXON與VMCS區域
2.2.3 檢測VMX支持
2.2.4 開啓VMX進入允許
2.3 VMX operation模式
2.3.1 進入VMX operation模式
2.3.2 進入VMX operation的製約
2.3.2.1 IA32_FEATURE_CONTROL寄存器
2.3.2.2 CR0與CR4固定位
2.3.2.3 A20M模式
2.3.3 設置VMXON區域
2.3.3.1 分配VMXON區域
2.3.3.2 VMXON區域初始設置
2.3.4 退齣VMX operation模式
2.4 VMX operation模式切換
2.4.1 VM entry
2.4.2 VM exit
2.4.3 SMM雙重監控處理下
2.5 VMX能力的檢測
2.5.1 檢測是否支持VMX
2.5.2 通過MSR組檢查VMX能力
2.5.3 例子2-1
2.5.4 基本信息檢測
2.5.5 允許為0以及允許為1位
2.5.5.1 決定VMX支持的功能
2.5.5.2 控製字段設置算法
2.5.6 VM-execution控製字段
2.5.6.1 Pin-based VM-execution control字段
2.5.6.2 primary processor-based VM-execution control字段
2.5.6.3 secondary processor-based VM-execution control字段
2.5.7 VM-exit control字段
2.5.8 VM-entry control字段
2.5.9 VM-function control字段
2.5.10 CR0與CR4的固定位
2.5.10.1 CR0與CR4寄存器設置算法
2.5.11 VMX雜項信息
2.5.12 VMCS區域字段index值
2.5.13 VPID與EPT能力
2.6 VMX指令
2.6.1 VMX指令執行環境
2.6.2 指令執行的狀態
2.6.3 VMfailValid事件原因
2.6.4 指令異常優先級
2.6.5 VMCS管理指令
2.6.5.1 VMPTRLD指令
2.6.5.2 VMPTRST指令
2.6.5.3 VMCLEAR指令
2.6.5.4 VMREAD指令
2.6.5.5 VMWRITE指令
2.6.6 VMX模式管理指令
2.6.6.1 VMXON指令
2.6.6.2 VMXOFF指令
2.6.6.3 VMLAUNCH指令
2.6.6.4 VMRESUME指令
2.6.6.5 返迴到executive monitor
2.6.7 cache刷新指令
2.6.7.1 INVEPT指令
2.6.7.2 INVVPID指令
2.6.8 調用服務例程指令
2.6.8.1 VMCALL指令
2.6.8.2 VMFUNC指令
第3章 VMCS結構
3.1 VMCS狀態
3.1.1 activity屬性
3.1.2 current屬性
3.1.3 launch屬性
3.2 VMCS區域
3.2.1 VMXON區域
3.2.2 Executive-VMCS與SMM-transfer VMCS
3.2.3 VMCS區域格式
3.3 訪問VMCS字段
3.3.1 字段ID格式
3.3.2 不同寬度的字段處理
3.4 字段ID值
3.4.1 16位字段ID
3.4.2 64位字段ID
3.4.3 32位字段ID
3.4.4 natural-width字段ID
3.5 VM-execution控製類字段
3.5.1 Pin-based VM-execution control字段
3.5.2 processor-based VM-execution control字段
3.5.2.1 primary processor-based VM-execution control字段
3.5.2.2 secondary processor-based VM-execution control字段
3.5.3 exception bitmap字段
3.5.4 PFEC_MASK與PFEC_MATCH字段
3.5.5 I/O bitmap address字段
3.5.6 TSC offset字段
3.5.7 guest/host mask與read shadow字段
3.5.8 CR3-target字段
3.5.9 APIC-access address字段
3.5.10 virtual-APIC address字段
3.5.11 TPR threshold字段
3.5.12 EOI-exit bitmap字段
3.5.13 posted-interrupt notification vector字段
3.5.14 posted-interrupt descriptor address字段
3.5.15 MSR bitmap address字段
3.5.16 executive-VMCS pointer
3.5.17 EPTP字段
3.5.18 virtual-processor identifier字段
3.5.19 PLE_Gap與PLE_Window字段
3.5.20 VM-function control字段
3.5.21 EPTP-list address字段
3.6 VM-entry控製類字段
3.6.1 VM-entry control字段
3.6.2 VM-entry MSR-load字段
3.6.3 事件注入控製字段
3.6.3.1 VM-entry interruption information字段
3.6.3.2 VM-entry exception error code字段
3.6.3.3 VM-entry instruction length字段
3.7 VM-exit控製類字段
3.7.1 VM-exit control字段
3.7.2 VM-exit MSR-store與MSR-load字段
3.8 guest-state區域字段
3.8.1 段寄存器字段
3.8.1.1 access rigth字段
3.8.2 GDTR與IDTR字段
3.8.3 MSR字段
3.8.4 SMBASE字段
3.8.5 activity state字段
3.8.6 interruptibility state字段
3.8.7 pending debug exceptions字段
3.8.7.1 #DB異常的處理
3.8.8 VMCS link pointer字段
3.8.9 VMX-preemption timer value字段
3.8.10 PDPTEs字段
3.8.11 guest interrupt status字段
3.9 host-state區域字段
3.10 VM-exit信息類字段
3.10.1 基本信息類字段
3.10.1.1 Exit reason字段
3.10.1.2 VM-exit原因
3.10.1.3 Exit qualification字段
3.10.1.4 由某些指令引發的VM-exit
3.10.1.5 由#DB異常引發的VM-exit
3.10.1.6 由#PF異常引發的VM-exit
3.10.1.7 由SIPI引發的VM-exit
3.10.1.8 由I/O SMI引發的VM-exit
3.10.1.9 由任務切換引發的VM-exit
3.10.1.10 訪問控製寄存器引發的VM-exit
3.10.1.11 由MOV-DR指令引發的VM-exit
3.10.1.12 由I/O指令引發的VM-exit
3.10.1.13 由於訪問APIC-access page引發的VM-exit
3.10.1.14 由EPT violation引發的VM-exit
3.10.1.15 由EOI虛擬化引發的VM-exit
3.10.1.16 由APIC-write引發的VM-exit
3.10.1.17 guest-linear address字段
3.10.1.18 guest-physical address字段
3.10.2 直接嚮量事件類信息字段
3.10.2.1 VM-exit interruption information字段
3.10.2.2 VM-exit interruption error code字段
3.10.3 間接嚮量事件類信息字段
3.10.3.1 IDT-vectoring information字段
3.10.3.2 IDT-vectoring error code字段
3.10.4 指令類信息字段
3.10.4.1 VM-exit instruction length字段
3.10.4.2 VM-exit instruction information字段
3.10.5 I/O SMI信息類字段
3.10.6 指令錯誤類字段
3.11 VMM初始化實例
3.11.1 VMCS相關的數據結構
3.11.1.1 VMB結構
3.11.1.2 VSB結構
3.11.1.3 VMCS buffer結構
3.11.2 初始化VMXON區域
3.11.3 初始化VMCS區域
3.11.3.1 分配VMCS區域
3.11.3.2 VMCS初始化模式
3.11.3.3 VMCS buffer初始化
3.11.4 例子3-1
第4章 VM-entry處理
4.1 發起VM-entry操作
4.2 VM-entry執行流程
4.3 指令執行的基本檢查
4.4 檢查控製區域及host-state區域
4.4.1 VM-execution控製區域檢查
4.4.1.1 檢查pin-based VM-execution control字段
4.4.1.2 檢查primary processor-based VM-execution control字段
4.4.1.3 檢查secondary processor-based VM-execution字段
4.4.1.4 檢查CR3-target字段
4.4.2 VM-exit控製區域檢查
4.4.2.1 VM-exit control字段的檢查
4.4.2.2 MSR-store與MSR-load相關字段的檢查
4.4.3 VM-entry控製區域檢查
4.4.3.1 VM-entry control字段的檢查
4.4.3.2 MSR-load相關字段的檢查
4.4.3.3 事件注入相關字段的檢查
4.4.4 Host-state區域的檢查
4.4.4.1 Host控製寄存器字段的檢查
4.4.4.2 Host-RIP的檢查
4.4.4.3 段selector字段的檢查
4.4.4.4 段基址字段的檢查
4.4.4.5 MSR字段的檢查
4.5 檢查guest-state區域
4.5.1 檢查控製寄存器字段
4.5.2 檢查RIP與RFLAGS字段
4.5.3 檢查DR7與IA32_DEBUGCTL字段
4.5.4 檢查段寄存器字段
4.5.4.1 virtual-8086模式下的檢查
4.5.4.2 unrestricted guest位為0時的檢查
4.5.4.3 unrestricted guest位為1時的檢查
4.5.5 檢查GDTR與IDTR字段
4.5.6 檢查MSR字段
4.5.7 檢查activity state字段
4.5.8 檢查interruptibility state字段
4.5.9 檢查pending debug exception字段
4.5.10 檢查VMCS link pointer字段
4.5.11 檢查PDPTE字段
4.5.11.1 由加載CR3引發的PDPTE檢查
4.6 檢查guest state引起的VM-entry失敗
4.7 加載guest環境信息
4.7.1 加載控製寄存器
4.7.2 加載DR7與IA32_DEBUGCTL
4.7.3 加載MSR
4.7.4 SMBASE字段處理
4.7.5 加載段寄存器與描述符錶寄存器
4.7.5.1 unusable段寄存器
4.7.5.2 加載GDTR與IDTR
4.7.6 加載RIP、RSP和RFLAGS
4.7.7 加載PDPTE錶項
4.8 刷新處理器cache
4.9 更新Vritual-APIC狀態
4.9.1 PPR虛擬化
4.9.2 虛擬中斷評估與delivery
4.10 加載MSR-load列錶
4.10.1 IA32_EFER的加載處理
4.10.2 其他MSR字段的加載處理
4.11 由加載guest state引起的VM-entry失敗
4.12 事件注入
4.12.1 注入事件的delivery
4.12.1.1 保護模式下的事件注入
4.12.1.2 實模式下的事件注入
4.12.1.3 virtual-8086模式下的事件注入
4.12.2 注入事件的間接VM-exit
4.13 執行pending debug exception
4.13.1 注入事件下的#DB異常delivery
4.13.2 例子4-1
4.13.3 非注入事件下的#DB異常delivery
4.14 使用MTF VM-exit功能
4.14.1 注入事件下的MTF VM-exit
4.14.2 非注入事件下的MTF VM-exit
4.14.3 MTF VM-exit與其他VM-exit
4.14.4 MTF VM-exit的優先級彆
4.14.5 例子4-2
4.15 VM-entry後直接導緻VM-exit的事件
4.15.1 VM-exit事件的優先級彆
4.15.2 TPR below threshold VM-exit
4.15.3 pending MTF VM-exit
4.15.4 由pending debug exception引發的VM-exit
4.15.5 VMX-preemption timer
4.15.6 NMI-window exiting
4.15.7 interrupt-window exiting
4.16 處理器的可中斷狀態
4.16.1 中斷的阻塞狀態
4.16.2 阻塞狀態的解除
4.16.3 中斷的阻塞
4.16.4 VM-entry後的可中斷狀態
4.17 處理器的活動狀態
4.17.1 active與inactive狀態
4.17.2 事件的阻塞
4.17.3 inactive狀態的喚醒
4.17.4 VM-entry後的活動狀態
4.1
處理器虛擬化技術 下載 mobi epub pdf txt 電子書
用來泡水喝的,比超市劃算。
評分買瞭一星期,現在看到第四章吧,之前沒學過php和其他語言,有的地方不知道是翻譯緣故還是我理解能力差,感覺有的地方說一半不說一半,實在理解不瞭的倒是從php手冊那看懂瞭
評分確實很不錯,還會再來的。
評分書籍不錯,內容豐富,值得學習。
評分很詳細 不過bug多瞭點
評分作為入門的書,或者自己動手做實驗的書來說,這本書已經算是夠用瞭。
評分買瞭一星期,現在看到第四章吧,之前沒學過php和其他語言,有的地方不知道是翻譯緣故還是我理解能力差,感覺有的地方說一半不說一半,實在理解不瞭的倒是從php手冊那看懂瞭
評分商品是否給力?快分享你的購買心得吧~
評分挺實用的,一直在京東,支持京東
處理器虛擬化技術 pdf epub mobi txt 電子書 下載