{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
送料無料

配送エリアを切り替えます

在庫情報と配送スピードは地域によって異なる場合があります。

郵便番号の履歴

{{email ? __('Got it!') : __('Restock Alert')}}

商品が再入荷され次第、すぐにメールでお知らせします。

Yami

Jingdong book

处理器虚拟化技术

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

处理器虚拟化技术

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
終了まで
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
セール終了まで
タイムセール開始まであと タイムセール終了まであと
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 詳細
消費期限

現在は販売していません

この商品がいつ再入荷するか、分かりません。

当該地域へ配送できません
売り切れ

製品説明

商品の詳細を全て表示
Content Description

《处理器虚拟化技术》针对在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体系熟悉,因为,在处理器的虚拟化技术里需要使用全方位的体系知识,对处理器在非常细节的地方进行虚拟化处理。

Author Description

邓志,1977年生于广东,在银行工作十余年,现自由职业者。对计算机有一股热情和蛮劲,善于思考,特别喜欢琢磨底层架构。熟悉C语言,并且精通x86/x64平台的汇编语言与机器指令系统,能用汇编写简易的OS核心。

Catalogue

第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.18 VM-entry的机器检查事件

第5章 VM-exit处理
5.1 无条件引发VM-exit的指令
5.2 有条件引发VM-exit的指令
5.3 引发VM-exit的事件
5.4 由于VM-entry失败导致的VM-exit
5.5 例子5-1
5.6 指令引发的异常与VM-exit
5.6.1 优先级高于VM-exit的异常
5.6.2 VM-exit优先级高于指令的异常
5.6.3 例子5-2
5.7 VM-exit的处理流程
5.8 记录VM-exit的相关信息
5.9 更新VM-entry区域字段
5.10 更新处理器状态信息
5.10.1 直接VM-exit事件下的状态更新
5.10.2 间接VM-exit事件下的状态更新
5.10.3 其他情况下的状态更新
5.11 保存guest环境信息
5.11.1 保存控制寄存器,debug寄存器及MSR
5.11.2 保存RIP与RSP
5.11.3 保存RFLAGS
5.11.4 保存段寄存器
5.11.5 保存GDTR与IDTR
5.11.6 保存activity与interruptibility状态信息
5.11.7 保存pending debug exception信息
5.11.8 保存VMX-preemption timer值
5.11.9 保存PDPTE
5.11.10 保存SMBASE与VMCS-link pointer
5.12 保存MSR-store列表
5.13 加载host环境
5.13.1 加载控制寄存器
5.13.2 加载DR7与MSR
5.13.3 加载host段寄存器
5.13.3.1 加载selector
5.13.3.2 加载base
5.13.3.3 加载limit
5.13.3.4 加载access rights
5.13.4 加载GDTR与IDTR
5.13.5 加载RIP,RSP及RFLAGS
5.13.6 加载PDPTE
5.14 更新host处理器状态信息
5.15 刷新处理器cache信息
5.16 加载MSR-load列表
5.17 VMX-abort

第6章 内存虚拟化
6.1 EPT(扩展页表)机制
6.1.1 EPT机制概述
6.1.1.1 guest分页机制与EPT
6.1.2 EPT页表结构
6.1.3 guest-physical address
6.1.4 EPTP
6.1.5 4K页面下的EPT页表结构
6.1.6 2M页面下的EPT页表结构
6.1.7 1G页面下的EPT页表结构
6.1.8 EPT导致的VM-exit
6.1.8.1 EPT violation
6.1.8.2 EPT misconfiguration
6.1.8.3 EPT 页故障的优先级
6.1.8.4 修复EPT页故障
6.1.9 accessed与dirty标志位
6.1.10 EPT内存类型
6.1.11 EPTP switching
6.1.12 实现EPT机制
6.2 Cache管理
6.2.1 linear mapping(线性映射)
6.2.2 guest-physical mapping(guest物理映射)
6.2.3 combined mapping(合并映射)
6.2.4 cache域
6.2.5 cache建立
6.2.6 cache刷新
6.2.6.1 INVLPG指令刷新cache
6.2.6.2 INVPCID指令刷新cache
6.2.6.3 INVVPID指令刷新cache
6.2.6.4 INVEPT指令刷新cache
6.2.6.5 INVVPID指令使用指南
6.2.6.6 INVEPT指令使用指南
6.3 内存虚拟化管理
6.3.1 分配物理内存
6.3.2 实模式guest OS内存处理
6.3.3 guest内存虚拟化
6.3.3.1 guest虚拟地址转换
6.3.3.2 guest OS的cache管理
6.4 例子6-1
6.4.1 GuestBoot模块
6.4.2 GuestKernel模块
6.4.3 VSB结构
6.4.4 VMM初始化guest
6.4.5 使用VMX-preemption timer
6.4.6 host处理流程
6.4.7 运行结果

第7章 中断虚拟化
7.1 异常处理
7.1.1 反射异常给guest
7.1.2 恢复guest异常
7.1.2.1 直接恢复
7.1.2.2 例子7-1
7.1.2.3 恢复原始向量事件
7.1.3 处理任务切换
7.1.3.1 检查任务切换条件
7.1.3.2 VMM处理任务切换
7.1.3.3 恢复guest运行
7.1.3.4 例子7-2
7.2 Local APIC虚拟化
7.2.1 监控guest访问local APIC
7.2.1.1 例子7-3
7.2.2 local APIC虚拟化机制
7.2.3 APIC-access page
7.2.3.1 APIC-access page的设置
7.2.4 虚拟化x2APIC MSR组
7.2.5 virtual-APIC page
7.2.6 APIC-access VM-exit
7.2.6.1 APIC-access VM-exit优先级别
7.2.7 虚拟化读取APIC-access page
7.2.8 虚拟化写入APIC-access page
7.2.9 虚拟化基于MSR读local APIC
7.2.10 虚拟化基于MSR写local APIC
7.2.11 虚拟化基于CR8访问TPR
7.2.12 local APIC虚拟化操作
7.2.12.1 TPR虚拟化
7.2.12.2 PPR虚拟化
7.2.12.3 EOI虚拟化
7.2.12.4 Self-IPI虚拟化
7.2.13 虚拟中断的评估与delivery
7.2.13.1 虚拟中断的评估
7.2.13.2 虚拟中断的delivery
7.2.14 posted-interrupt处理
7.3 中断处理
7.3.1 拦截INT指令
7.3.1.1 处理IDTR.limit
7.3.1.2 处理#GP异常
7.3.1.3 处理中断delivery
7.3.1.4 完成中断的delivery操作
7.3.1.5 例子7-4
7.3.2 处理NMI
7.3.2.1 拦截NMI
7.3.2.2 虚拟NMI
7.3.3 处理外部中断
7.3.3.1 拦截外部中断
7.3.3.2 转发外部中断
7.3.3.3 监控guest设置8259
7.3.3.4 例子7-5

Introduction

虚拟化技术大概可以分为软件虚拟化和硬件虚拟化两大类。软件上的虚拟化实际上很多地方都可以看到,例如常见的系统虚拟机软件,Java 虚拟机和Android 上的虚拟机可以算是广义上的软件虚拟机了。
在硬件虚拟化技术出现之前,虚拟机只能靠软件来模拟实现。硬件上的虚拟化技术可以算是比较热的一门技术了,但它并不是什么新鲜的技术。据资料显示,实际上Intel第一代VT-x 技术Vanderpool 在2005 年就已经推出了,但Intel 发展得很快,从处理器端到芯片组端,再到网络端都已经可以布署硬件虚拟化技术了。
《处理器虚拟化技术》一书围绕Intel VT-x 处理器端的虚拟化技术而写,可以算是前作《x86/x64 体系探索及编程》的下册。尽管此书只围绕一个主题,但笔者认为它的知识面并不比《x86/x64 体系探索及编程》一书窄,甚至还要超出。因为,完整地虚拟化一个“虚拟处理器”,必须结合原来的x86/x64 体系知识并扩展开来。编写本书所花的时间比前作还要多许多,从开始动笔到完稿用了11 个月的时间,期间不可谓不艰辛。
本书内容
全书共7 章。
第1 章 系统平台
本书的代码使用汇编语言编写,运行在祼机平台上。本章主要介绍如何实现一个简易平台来支撑书中所有例子的运行。这个平台可以被编译生成32 位或者64 位环境。也实现了一些特色机制,例如,开启了多处理器环境,并且为了更好地、直观地了解代码的执行流程而加入了调试信息机制。
第2 章 VMX 架构基础
VMX 架构是Intel 处理器端虚拟化技术(Intel VT-x)的实现框架。本章对虚拟化技术进行概括讲解,全面了解VMX 架构的基础知识。首先介绍了VMX 架构下引入VMX root operation 与VMX non-root operation 模式,以及这两个模式之间的切换。然后介绍了┃处理器虚拟化技术VMX 架构下的各种处理器能力,以及这些能力的检测。最后全面讲解新引进的VMX 指令集,以及VMX 指令产生的各种失败的情形。
第3 章 VMCS 结构
VMCS 结构是VMX 架构下最基本、最重要的数据结构。VMCS 结构内分为6 个区域,每个区域有若干个字段。整个VMX operation 模式的运行环境由VMCS 结构内的这些字段来配置与管理,例如配置guest 与host 的运行环境。全面地讲解了这6 个区域内每个字段的设置与使用。
第4 章 VM-entry 处理
在VMX 架构下,guest 运行在VMX non-root operation 模式下,而host 运行在VMX root operation 模式下。如果需要运行guest 软件,则处理器需要从VMX root operation 切换到VMX non-root operation 模式运行,这个行为被称为“VM-entry”。
本章详细地讲解处理器在执行VM-entry 操作时的每个流程。例如,在VM-entry 时会检查VMCS 结构内字段配置是否合理,并且加载guest 的运行环境。处理器也会根据VMCS 内字段来控制guest 软件的运行。
第5 章 VM-exit 处理
在guest 运行过程中,会因为某些事件而被迫返回host 环境。处理器由VMX nonroot operation 模式切换回VMX root operation 模式,这个行为被称为“VM-exit”。
本章详细地讲解处理器在执行VM-exit 操作时的每个流程。例如,在VM-exit 处理器的相应状态信息会得到更新,guest 的环境信息会保存在VMCS 结构内的guest-state 区域,并且从host-state 区域加载host 环境信息。最后转入host 入口执行VMM 的管理代码。
第6 章 内存虚拟化
VMX 架构引进了EPT 机制来实现对物理内存的虚拟化管理,使得每个VM 在物理平台上拥有自己独立的物理内存区域,而不受VMM 及其他VM 的干扰。同样也避免了VM 对VMM 的干扰。
本章全面讲解了EPT 机制的实现细节,也着重介绍了VMX 架构下的cache 管理。在随书例子中,我们实现了EPT 机制来管理VM 内存。
第7 章 中断虚拟化
VMX 架构下也实现了对local APIC 的虚拟化管理,引进了两个重要的页面:APICaccess page 页面与virtual-APIC page 页面。因此而形成了virtual-APIC 的概念。它是物理平台上的local APIC 的shadow。
在这一章里,我们将看到处理器如何处理APIC-access page 与virtual-APIC page 之间的关系,将对APIC-access page 的访问转化为对virtual-APIC page 的访问。从而实现访问和管理virtual-APIC 组件。
本章也着重介绍了VMM 应该如何处理guest 产生的异常与任务切换。最后以实际例子来展现VMM 如何监控INT 指令及NMI 与外部中断。
如何阅读本书
本书将理论结合实际地进行讲解,但每章内容还是会有侧重点。以章节的篇幅来说,第2 章至第5 章偏重于理论知识。而第1 章、第6 章和第7 章偏于实际例子。
因此,如果读者并不想通篇阅读,可以选择偏重理论知识的章节来看。第6 章与第7章介绍的重点知识主要是EPT(扩展页表)与local APIC 虚拟化。这两个内容也是必须掌握的。
在第1 章中并不涉及VMX 架构知识,而是通过代码的讲解来介绍基础平台。书中的全部例子将构建于这个基础平台之上。如果读者对此章不感兴趣,可以直接跳过。但是,如果读者对一些OS 的基础元素感兴趣,大可详细加以阅读。
读者对象
读者最好有一些x86/x64 体系知识基础,如果感到这方面的基础知识相对薄弱,可以阅读作者的另一本著作《x86/x64 体系探索及编程》或者Intel 官方手册。
如果读者只是想了解VMX 的理论知识,那么可以选择相应章节,对汇编知识的要求不高。如果读者想深入全面地了解整个VMX 架构知识,希望能够仔细阅读所有章节(第1 章可以略过),那么需要对汇编有一定了解。
随书例子
书中的每个章节有若干例子, 全书共14 个例子。
源码包解压后有7 个chapXX 目录,对应于每一章。还有commom、inc 以及lib 目录,存放所有例子共用的代码。每个chapXX 目录下有多个ex 实例目录,对应于每个例子。以第1 章为例,chap01 目录下有ex1-1 和ex1-2 实例目录。
每个实例目录里有下面的文件。
Bs:bochs 的配置文件。
Build:一个DOS 批处理的编译工具,用来编译源码。
c.img:硬盘与U 盘映像文件。
demo。img:软盘映像文件。
ex.asm:例子实体代码的汇编源文件。
ex.inc:例子实体代码头文件。
在时间宽裕的情况下,我会在Windows 平台上用C 语言来实现代码示例。目前已经写了大部分代码,但为了保证代码的正确性,力求在所有代码完成后再放出来。
致谢
感谢电子工业出版社博文视点公司的全体工作人员,特别感谢本书的策划编辑李冰,正是有你们的辛勤劳动,才使得本书可以顺利出版。
邓志
2014 年5 月

仕様

ブランド Jingdong book
ブランドテリトリー China

免責声明

商品の価格、パッケージ、仕様などの情報は、事前に通知することなく変更される場合があります。私たちは商品情報を迅速に更新するよう努力していますが、実際に受け取った商品を基準にしてください。商品を利用する前に、常に商品に付属するラベル、警告、および説明を読んでください。

利用規約の全文を見ます
お気に入りに追加
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
数量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
JD@CHINAによって販売します
配送先
{{ __("Ship to United States only") }}
69以上のご注文は送料無料
正規保証

カートに入れました

ショッピングを続ける

おすすめアイテム

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

クーポン

{{ coupon.coupon_name_new | formatCurrency }}
受け取る 受取済み 受け取る終わりました
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
間もなく期限切れ: {{ formatTime(coupon.use_end_time) }}

このアイテムを友達と共有します

Yamiギフトカード特別価格

ギフトカードで支払えば、ギフトカード特別価格が得られます

規則説明

ギフトカード特別価格は、一部商品の特別割引オファーです;

ギフトカード特別価格の商品を購入する場合、決済時に電子ギフトカードで相殺し、ギフトカードの残高が註文したギフトカード特別価格商品の合計価格を支払うのに十分であれば、ギフトカード特別価格を適用することができます;

ギフトカードを利用しない場合、あるいはギフトカードの残高が前項に述べた要件を満たさない場合、ギフトカード特別価格を適用することができません。通常の販売価格で計算されることになり、これらの商品を購入することができます。

ギフトカード特別価格の商品を購入した場合、残高が足りない場合は、カートページまたは決済ページの「チャージ」ボタンをクリックしてギフトカードへの購入とチャージを行うことができます。

もし商品はギフトカード特別価格を持つならば、「特別」の特殊価格表記を表示します;

その他の質問や懸念がある場合は、いつでもカスタマーサービスにお問い合わせください;

Yamibuyは最終解釈権を有します。

Yamiによって販売します

サービス保証

Yami $49以上で送料無料
Yami 返品・交換保証
Yami アメリカから発送

配送情報

  • アメリカ

    スタンダード配送料 $5.99 (アラスカ、ハワイを除く)、最終価格が $49 以上で送料無料

    地方発送 $5.99 (カリフォルニア、ニューヨーク、ニュージャージー、マサチューセッツ、ペンシルベニア、上記州の一部地域); 最終価格が $49 以上で送料無料

    2 日以内の配送 (アラスカとハワイを含む) は送料 $19.99 からです

返品・交換ポリシー

Yamiはお客様が安心して購入できるように努めています。Yamibuy.comから出荷されたほとんどの商品は、受領後30日以内に返品可能です(食品、ドリンク、スナック、乾物、健康補助食品、新鮮な食料品および生鮮食品は、損傷または品質の問題がある場合、受領後7日以内に返品可能です。すべてのお客様に安全で高品質の商品を提供するために、美容製品については、品質の問題ではない限り、開封または利用後の返金や返品は対応できません。一部の商品には異なるポリシーまたは要件がありますので、特別な商品については以下をご覧いただくか、Yamiカスタマーサービスにお問い合わせください)。
ご理解とご支持に感謝します。

利用規約の全文を見ます

Yamiによって販売します

Yamibuy 電子ギフトカードの利用規約

購入時に自動チャージを選択した場合、注文完了後にギフトカードが自動的にアカウントにチャージされます;

購入時にメール送信を選択した場合、注文完了後にシステムが自動的にカード番号とパスワードを入力したメールアドレスに送信します;

メールを送信する際、どのユーザーもメールに送られてきたカード番号とパスワードを使用してギフトカードをチャージできますので、メール情報をしっかり保管してください。

メール受信に問題がある場合は、カスタマーサービスに連絡して処理してもらってください;

メールを送信する際、ギフトカードが交換されていない場合は、メールを再発行することができます。他のユーザーにすでに交換されている場合は、補償することはできません;

Yamibuyの電子ギフトカードは、自営または第三者商品の購入に使用できます;

Yamibuyの電子ギフトカードには有効期限がなく、長期にわたって有効です;

Yamiの電子ギフトカードの金額は、複数回に分けて使用することができます;

Yamiの電子ギフトカードの業務規則の最終的な解釈権は、Yamiウェブサイトに帰属します。

返品・交換ポリシー

既に利用された電子ギフトカードは返金不可です。

販売元: JD@CHINA

サービス保証

Yami $49以上で送料無料
Yami 最高のアフターサービス
Yami 米国本土から発送

配送情報

  • アメリカ

    スタンダード配送料 $5.99 (アラスカ、ハワイを除く)、最終価格が $49 以上で送料無料

    地方発送 $5.99 (カリフォルニア、ニューヨーク、ニュージャージー、マサチューセッツ、ペンシルベニア、上記州の一部地域); 最終価格が $49 以上で送料無料

    2 日以内の配送 (アラスカとハワイを含む) は送料 $19.99 からです

返品・交換ポリシー

商品到着後30日以内であれば返品が可能です。返品される商品は、購入時の請求書の原本を含む、元の梱包のまま新品である必要があります。お客様の費用負担で製品を返品してください。

JD@CHINAによって販売します

サービス保証

Yami $以上の店舗間注文: 送料無料
Yami 30日間返品・交換保証

Yami-中国集荷倉庫

Yamiが中国から厳選し、各優秀店舗の商品をYami中国統合センターに集めて、パッケージをまとめて一度に国際郵送でお客様の住所までお届けします。店舗間で$69以上になれば、送料無料になります。複数の販売者が提供する幅広い商品から選び、店舗間送料無料か低い送料を手軽に楽しめます。

返品・交換ポリシー

30日以内の返品・交換保証を提供します。商品は未使用の元のパッケージに入れられ、購入証明書が添付される必要があります。商品の品質上の問題、間違った配送、または配送漏れなど、販売者によって引き起こされたミスについては、返金処理されます。その他の理由による返品・交換の送料はお客様ご負担となります。すべての商品は長距離を輸送するため、内部品質に影響しない簡易包装のプレスや摩耗等が発生する場合、返品・交換は致しかねます。

配送情報

Yami 中国集荷 Consolidated Shippingの送料は$ 9.99 ($69以上のご注文は送料無料)

中国の販売業者は、ご注文後 2 営業日以内に商品を配達します、すべての荷物は Yami 中国集荷センターに到着し (特別な状況および中国の特定法定休日を除く)、そこで荷物は混載され、 UPSで米国に配送されます。中国から米国への UPS の平均配達時間は約 10 営業日で、直送の追跡番号に基づいていつでも追跡できます。感染拡大の影響で、現在の物流は約5日遅れる可能性があります。パッケージには顧客の署名が必要です。署名されない場合、パッケージが紛失するリスクはお客様が負うことになります。

JD@CHINAによって販売します

サービス保証

69以上のご注文は送料無料
正規保証

配送情報

Yami Consolidated Shipping送料$9.99($69以上のご注文は送料無料になる)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

Yamiポイント情報

すべての商品は、 Yamibuy.com のプロモーションまたはポイント イベントの対象外となります。

返品・交換ポリシー

商品到着後30日以内であれば返品が可能です。返品される商品は、購入時の請求書の原本を含む、元の梱包のまま新品である必要があります。お客様の費用負担で製品を返品してください。

Yami

Yamiアプリをダウンロードします

トップに戻ります

おすすめアイテム

ブランドについて

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

レビュー{{'('+ commentList.posts_count + ')'}}

商品レビューを書いて、他のユーザーを助ける最初の人になりましょう。

レビューを書く
{{ totalRating }} レビューを書く
  • {{i}}星

    {{i}} 星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}非表示にします

{{ strLimit(comment,800) }}すべて見る

Show Original

{{ comment.content }}

Yami
すべてを表示します

{{ formatTime(comment.in_dtm) }} 購入済み {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}非表示にします

{{ strLimit(comment,800) }}すべて見る

Show Original

{{ comment.content }}

Yami
すべてを表示します

{{ formatTime(comment.in_dtm) }} 購入済み {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

関連するコメントはありません~

レビュー詳細

Yami Yami

{{ showTranslate(commentDetails) }}非表示にします

{{ strLimit(commentDetails,800) }}すべて見る

Show Original

{{ commentDetails.content }}

Yami
すべてを表示します

{{ formatTime(commentDetails.in_dtm) }} 購入済み {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

最低でも単語一つを入力してください

コメント{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}非表示にします

{{ strLimit(reply,800) }}すべて見る

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

最低でも単語一つを入力してください

キャンセル

これまでのコメントは以上です!

レビューを書きます
商品評価

コメントをお願いします

  • 素敵なユーザーネームは、あなたのコメントをより人気のあるものにします!
  • ここでニックネームを変更すると、アカウントのニックネームも同じに変更されます。
商品レビューをありがとうございます。
あなたの素晴らしいレビューは私たちのコミュニティがより良いアジア商品を見つけるのに役立ちます。

通報します

キャンセル

本当にレビューを削除してもよろしいですか?

キャンセル

過去に閲覧した商品

ブランドについて

Jingdong book