热搜关键词: 模拟电子usb51单片机PLC开关电源

pdf

深度探索Linux系统虚拟化:原理与实现

  • 1星
  • 2023-01-31
  • 2.65MB
  • 需要1积分
  • 4次下载
  • favicon收藏
  • rep举报
  • free评论
标签: linux

linux

内容简介

这是一部深度讲解如何在Linux操作系统环境下用软件虚拟出一台“物理”计算机的著作。

两位作者都是百度的技术专家,一位是百度的主任架构师,一位是百度智能云的副总经理,都在操作系统和虚拟化等领域有多年的实践经验。本书从计算机体系结构、操作系统、硬件等多个方面深度探索了如何从CPU、内存、中断、外设、网络5个维度去虚拟化Linux系统,不仅剖析了其中的关键技术原理,而且深入阐述了具体的实现。

全书共6章:

第1章:CPU虚拟化

介绍了X86架构下的VMX扩展,讨论了在VMX下虚拟CPU的完整生命周期,着重阐述了Host和Guest的切换、指令的模拟以及KVM是如何虚拟多处理器的。

第2章:内存虚拟化

讨论了操作系统如何为虚拟机呈现物理内存,结合影子页表以及EPT探讨了KVM如何完成从GVA到HPA的2层地址映射。

第3章:中断虚拟化

首先,讨论了从单核系统的8259A开始,到多核系统的APIC,再到绕开I/O  APIC直接从设备向LAPIC发送基于消息的MSI的虚拟化原理和实现。然后,讨论了Intel为了提高效率,是如何从硬件层面对虚拟化中断进行支持的,以及KVM是如何使用它们的。

第4~5章  外设虚拟化

从完全虚拟化开始,依次讲解了半虚拟化(Virtio)和Intel的VT-d支持下的硬件辅助虚拟化。通过实现一个模拟串口带领读者直观体会了设备虚拟化的基本原理,然后深入阐述了Virito标准和实现,以及支持SR-IOV的DMA重映射和中断重映射。

第6章  网络虚拟化

讨论了在通用硬件网络的基础上,操作系统如何虚拟出专用的网络设备,为租户组建虚拟网络。

前 言

第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 虚拟机切入和退出  8

1.2.1 GCC内联汇编  8

1.2.2 虚拟机切入和退出及相关的上下文保存  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 创建虚拟机实例  43

1.5.2 创建内存  43

1.5.3 创建处理器  44

1.5.4 Guest  46

1.5.5 加载Guest镜像到内存  47

1.5.6 运行虚拟机  47

第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

第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 中断评估  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 虚拟中断寄存器页面(virtual-APIC  page)  134

3.5.2 Guest模式下的中断评估逻辑  136

3.5.3 posted-interrupt  processing  139

第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

第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 驱动通知设备处理请求  221

5.6 设备处理I/O请求  222

5.7 驱动侧回收I/O请求  226

5.8 设备异步处理I/O  229

5.9 轻量虚拟机退出  231

5.9.1 创建eventfd  232

5.9.2 kvmtool监听eventfd  235

5.9.3 VM  exit处理函数唤醒I/O任务  236

第6章 网络虚拟化  239

6.1 基于Overlay的虚拟网络方案  239

6.1.1 计算节点  240

6.1.2 网络节点  247

6.1.3 Open  vSwitch  251

6.2 虚拟机访问外部主机  255

6.2.1 数据包在计算节点Linux网桥中的处理  256

6.2.2 数据包在计算节点的Open  vSwitch中的处理  257

6.2.3 数据包在网络节点的Open  vSwitch中的处理  265

6.3 外部主机访问虚拟机  272

6.3.1 数据包在网关中的处理过程  273

6.3.2 数据包在网络节点的Open  vSwitch中的处理  274

6.3.3 数据包在计算节点的Open  vSwitch中的处理  279

6.3.4 数据包在Linux网桥中的处理  283

推荐帖子 最新更新时间:2023-03-19 06:11

【学习LPC1768】之PM2.5/PM10显示
PM2.5/PM10传感器是串口接口,接口简单,通信协议处理也相对简单。协议处理如下图所示,传感器0.8~1.2s之间会主动发送7个字节数据,数据格式为:0xAA(头),PM2.5H,PM2.5L,PM10H,PM10L,checkdata,oxff(尾)。不需要主机去获取,传感器有个使能接口,高电平使能,低电平关闭。 void HLPM025K3_Init(void){
加勒比海盗 NXP MCU
微控制器MCU处理LED亮度控制原理
     微控制器MCU通常被认为是数字器件。在缺省情况下,其输出电压电平要么是高,要么就是低,不会是一个不高不低值。为了实现LED亮度控制这一要求,首先浮现在脑海中的方法就是使用一个标准的数模转换器或者设计一个受控的电阻网络。值得庆幸的是,大多数现代MCU都具有内置的脉冲宽度调制(PWM)单元,这是解决该问题的最容易和成本最低的方法。 根据我们的项目要求,两个LED的亮度必须在几秒钟的时间内以
火辣西米秀 微控制器 MCU
您的电源符合能耗标准吗?关注PI InnoSwitch3系列,答题赢好礼!活动开始啦~
您的电源符合能耗标准吗?关注PI InnoSwitch3系列,答题赢好礼!活动开始啦!!! 活动时间: 即日起——2017年12月20日 活动流程: 1.关注 PI InnoSwitch™3系列精彩专题;2.点击活动页面“我要参与”按钮,答题并提交表单(答案在专题内寻找哦);3.活动结束后的1~2周内,我们将从答对2题(共3题)及以上的网友抽取40名幸运者,随机派送下方奖品! 活
EEWORLD社区 电源技术
RF混频器件面貌之变迁
半导体工艺和RF封装技术的不断创新完全改变了工程师设计RF、微波和毫米波应用的方式。RF设计人员需要比以往任何时候都更具体、更先进的技术和设计支持。设计技术持续发展,RF和微波器件的性质在不久的未来将大不相同。本文介绍各种类型的混频器、各自的优缺点,以及在不同市场中应用的演变。本文讨论不同混频器件(主要是混频器)不断变化的面貌,以及技术进步如何改变不同市场的需求。 简介在RF和微波设计中,混
fish001 RF/无线
采用“系列优先”的方法进行运算放大器设计
作者:Hayden Hast – 系统工程师 当我第一次光顾德克萨斯的一家烧烤店时,菜单上各式各样的肉让我感到非常惊讶,以至于我不知道要选哪一种。但幸运的是,烧烤店提供了三种肉的拼盘,因而我就可以尝一下不同种类的样品肉。 其实,寻找运算放大器(op amp)的设计工程师也可以有很多选择。另外,随着如今生产周期不断缩短,您需要快速做出决定。选择了错误的运算放大器可能会耗费时间和金钱。
alan000345 TI技术论坛
还有人玩2D激光雕刻机吗?功能大全,软硬件通吃(五)增加激光头
本章说一下,增加激光头,我是在某宝购买的12V500mw的激光头,160元左右,上面带一个12V的小风扇冷却使用。其实其他部分XY轴同绘图仪没有什么区别,就是Z轴的移动改成了激光头的输出了,转换也很简单,一般Z轴只是抬笔落笔使用,就两个动作比如 Z2.00 或Z5.00  可能就是抬笔,Z0.00 或Z-0.5可能就是落笔。而激光头输出是PMW方式输出,也就是占空比输出0-5V用脉冲的占空比来控制
zhengjingwen DIY/开源硬件专区
视频存储中的memory tiler模式 (DM8168)
本帖最后由 Ternence.Hsu 于 2015-6-16 15:37 编辑       很多的图像处理算法(如视频编解码器等) 都是基于图像空间局部相关特性,存取局部图像都是2维的,比如处理对象基于16*16相邻像素组成的宏块,而图像在存储器中一般是按图像的行顺序自上而下自左而右线性存储的,如下图      为了存取一个16*16的宏块,会要求对内存进行多长存储,而器件的每次内存存取可以连
Ternence.Hsu DSP 与 ARM 处理器
TMS320F28379D SCID SCIB 的配置与使用
        TI的官方例程里面只给了SCIA的配置而没有给其他的SCI的配置方法 其实这些的配置都是一样的,下面以SCIB和SCID的配置为例并结合数据手册说明一下配置过程:至于一些参数为什么要向程序中那样配置可参考F28379的技术手册和博客最后面的截图(当然了也都是在技术手册中截的) 注:程序中红色的代表需要注意的部分,其他颜色的对应下面相同颜色的函数实现方式 /*******
Jacktang 模拟与混合信号

评论

登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
×