本篇主要提供深度探索Linux系统虚拟化:原理与实现计算机与互联网电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
书[0名0]: | (正版特价)深度探索Linux系统虚拟化:原理与实现|233885 |
图书定价: | 89元 |
图书作者: | 王柏生 谢广军 |
出版社: | [1机1]械工业出版社 |
出版日期: | 2020-10-13 0:00:00 |
ISBN号: | 9787111666066 |
开本: | 16开 |
页数: | 292 |
版次: | 1-1 |
作者简介 |
王柏生 谢广军:作者简介 王柏生 资深技术专家,先后就职于中科院软[亻牛]所、红旗Linux和百度,现任百度[1主1]任架构师。在[*]作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关[令页]域耕耘多年,有着丰富的实践[纟巠]验。 著有[0畅0]销书《深度探索Linux[*]作系统》(2013年出版)。 谢广军 计算[1机1]专业博士,毕业于南开[0大0][0学0]计算[1机1]系。 资深技术专家,有多年的IT行业工作[纟巠]验。现担任百度智能云副总[纟巠]理,负责云计算相关产[0品0]的研发。多年来一直从事[*]作系统、虚拟化技术、分布式系统、[0大0]数据、云计算等相关[令页]域的研发工作,实践[纟巠]验丰富。 |
内容简介 |
内容简介 这是一部深度讲解如何在Linux[*]作系统环境下用软[亻牛]虚拟出一台“物理”计算[1机1]的著作。 两位作者都是百度的资深技术专家,一位是百度的[1主1]任架构师,一位是百度智能云的副总[纟巠]理,都在[*]作系统和虚拟化等[令页]域有多年的实践[纟巠]验。本书从计算[1机1]体系结构、[*]作系统、硬[亻牛]等多个方[mian]深度探索了如何从CPU、内存、中断、外设、网络5个维度去虚拟化Linux系统,不仅剖析了其中的关键技术原理,而且深入阐述了具体的实现。 全书共6章: [0第0]1章:CPU虚拟化 介绍了X86架构下的VMX扩展,讨论了在VMX下虚拟CPU的完整生命周期,着重阐述了Host和Guest的切换、指令的模拟以及KVM是如何虚拟多处理器的。 [0第0]2章:内存虚拟化 讨论了[*]作系统如何为虚拟[1机1]呈现物理内存,结合影子页表以及EPT探讨了KVM如何完成从GVA到HPA的2层地址映[身寸]。 [0第0]3章:中断虚拟化 [0首0]先,讨论了从单核系统的8259A开始,到多核系统的APIC,再到绕开I/O APIC直接从设备向LAPIC发送基于消息的MSI的虚拟化原理和实现。然后,讨论了Intel为了[扌是]高效率,是如何从硬[亻牛]层[mian]对虚拟化中断进行支持的,以及KVM是如何使用它们的。 [0第0]4~5章 外设虚拟化 从完全虚拟化开始,依次讲解了半虚拟化(Virtio)和Intel的VT-d支持下的硬[亻牛]辅助虚拟化。通过实现一个模拟串口带[令页]读者直观体[0会0]了设备虚拟化的基本原理,然后深入阐述了Virito标准和实现,以及支持SR-IOV的DMA重映[身寸]和中断重映[身寸]。 [0第0]6章 网络虚拟化 讨论了在通用硬[亻牛]网络的基础上,[*]作系统如何虚拟出专用的网络设备,为租户组建虚拟网络。 |
目录 |
前 言 [0第0]1章 CPU虚拟化 1 1.1 x86架构CPU虚拟化 1 1.1.1 陷入和模拟模型 2 1.1.2 x86架构虚拟化的障碍 2 1.1.3 VMX 3 1.1.4 VCPU生命周期 5 1.2 虚拟[1机1]切入和退出 8 1.2.1 GCC内联汇编 8 1.2.2 虚拟[1机1]切入和退出及相关的上下文保存 10 1.3 陷入和模拟 15 1.3.1 访问外设 15 1.3.2 特殊指令 22 1.3.3 访问具有副作用的寄存器 27 1.4 对称多处理器虚拟化 28 1.4.1 MP Table 28 1.4.2 处理器启动过程 33 1.5 一个简单KVM用户空间实例 41 1.5.1 创建虚拟[1机1]实例 43 1.5.2 创建内存 43 1.5.3 创建处理器 44 1.5.4 Guest 46 1.5.5 加载Guest镜像到内存 47 1.5.6 运行虚拟[1机1] 47 [0第0]2章 内存虚拟化 49 2.1 内存寻址 49 2.1.1 段式寻址 50 2.1.2 平坦内存模型 50 2.1.3 页式寻址 54 2.1.4 页式寻址实例 55 2.2 VMM为Guest准备物理内存 61 2.2.1 内核是如何获取内存的 62 2.2.2 建立内存段信息 64 2.2.3 准备中断0x15的处理函数以及设置IVT 65 2.2.4 中断0x15的处理函数实现 68 2.2.5 虚拟内存条 69 2.3 实模式Guest的寻址 72 2.3.1 设置CPU运行于Virtual-8086模式 74 2.3.2 设置Guest模式下的cr3寄存器 75 2.3.3 虚拟MMU的上下文 75 2.3.4 缺页异常处理 77 2.4 保护模式Guest的寻址 81 2.4.1 偷梁换柱cr3 83 2.4.2 影子页表缺页异常处理 86 2.5 EPT 92 2.5.1 设置EPT页表 93 2.5.2 EPT异常处理 95 2.5.3 EPT支持下的地址翻译过程 97 [0第0]3章 中断虚拟化 99 3.1 虚拟中断 99 3.2 PIC虚拟化 102 3.2.1 可编程中断控制器8259A 103 3.2.2 虚拟设备向PIC发送中断请求 106 3.2.3 记录中断到IRR 107 3.2.4 设置待处理中断标识 108 3.2.5 中断[0评0]估 110 3.2.6 中断ACK 112 3.2.7 关于EOI的处理 113 3.2.8 中断注入 114 3.3 APIC虚拟化 116 3.3.1 外设中断过程 118 3.3.2 核间中断过程 123 3.3.3 IRQ routing 125 3.4 MSI(X)虚拟化 128 3.4.1 MSI(X)Capability数据结构 129 3.4.2 建立IRQ routing表项 131 3.4.3 MSI设备中断过程 132 3.5 硬[亻牛]虚拟化支持 134 3.5.1 虚拟中断寄存器页[mian](virtual-APIC page) 134 3.5.2 Guest模式下的中断[0评0]估逻辑 136 3.5.3 [p1o1s]ted-interrupt processing 139 [0第0]4章 设备虚拟化 142 4.1 设备虚拟化模型演进 142 4.2 PCI配置空间及其模拟 144 4.3 设备透传 152 4.3.1 虚拟配置空间 153 4.3.2 DMA重映[身寸] 157 4.3.3 中断重映[身寸] 160 4.4 完全虚拟化 166 4.4.1 Guest发送数据 167 4.4.2 Guest接收数据 173 [0第0]5章 Virtio虚拟化 182 5.1 I/O栈 182 5.1.1 文[亻牛]系统 182 5.1.2 通用块层 190 5.1.3 块设备驱动 194 5.1.4 page cache 196 5.1.5 bio 201 5.1.6 I/O调度器 202 5.2 Virtio协议 204 5.2.1 描述符表 205 5.2.2 可用描述符区域 207 5.2.3 已用描述符区域 208 5.2.4 Virtio设备的PCI配置空间 209 5.3 初始化Virtqueue 210 5.4 驱动根据I/O请求组织描述符链 216 5.5 驱动通[0知0]设备处理请求 221 5.6 设备处理I/O请求 222 5.7 驱动侧回收I/O请求 226 5.8 设备异步处理I/O 229 5.9 轻量虚拟[1机1]退出 231 5.9.1 创建eventfd 232 5.9.2 kvmtool监听eventfd 235 5.9.3 VM exit处理函数唤醒I/O任务 236 [0第0]6章 网络虚拟化 239 6.1 基于Overlay的虚拟网络方案 239 6.1.1 计算节点 240 6.1.2 网络节点 247 6.1.3 Open vSwitch 251 6.2 虚拟[1机1]访问外部[1主1][1机1] 255 6.2.1 数据包在计算节点Linux网桥中的处理 256 6.2.2 数据包在计算节点的Open vSwitch中的处理 257 6.2.3 数据包在网络节点的Open vSwitch中的处理 265 6.3 外部[1主1][1机1]访问虚拟[1机1] 272 6.3.1 数据包在网关中的处理过程 273 6.3.2 数据包在网络节点的Open vSwitch中的处理 274 6.3.3 数据包在计算节点的Open vSwitch中的处理 279 6.3.4 数据包在Linux网桥中的处理 283 |
编辑推荐 |
百度2位资深技术专家历时5年两易其稿,系统总结多年[*]作系统和虚拟化[纟巠]验 从CPU、内存、中断、外设、网络5个维度深入讲解Linux系统虚拟化的技术原理和实现 |