官网嵌入式虚拟化技术与应用ACRN开源项目实践王洪波电子与嵌入式系统设计丛书嵌入式虚拟化技术书籍 pdf下载pdf下载

官网嵌入式虚拟化技术与应用ACRN开源项目实践王洪波电子与嵌入式系统设计丛书嵌入式虚拟化技术书籍百度网盘pdf下载

作者:
简介:本篇提供书籍《官网嵌入式虚拟化技术与应用ACRN开源项目实践王洪波电子与嵌入式系统设计丛书嵌入式虚拟化技术书籍》百度网盘pdf下载
出版社:机械工业出版社官方旗舰店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

6f4d42192e1fff25.jpg7e29aba89c34375c.jpg







伴随着物联网设备的指数级增长,在需要高算力的场景,例如软件定义汽车驾驶舱、工业领域的工作负载整合,开源虚拟化技术在嵌入式系统上受到了越来越多的关注和应用。本书首先介绍虚拟化技术的基本原理,包括CPU虚拟化、内存虚拟化、中断虚拟化和设备虚拟化,对比KVM在云服务器上参考实现,重点介绍了开源嵌入式虚拟机ACRN的架构设计、原理和实现。还特别总结了虚拟化系统的实时性能调优方法和功能安全认证实践,以及嵌入式虚拟化技术的典型应用场景案例分析。本书作为嵌入式虚拟化技术入门参考书,通过对ACRN开源软件的介绍,帮助读者从代码开始了解、学习、开发虚拟机软件,掌握嵌入式虚拟化技术并应用于工程实践。





目  录

推荐序一

推荐序二

前言

第1章 虚拟化技术概述 / 1

1.1 虚拟化技术的发展历史 / 1

1.2 VMM模型的分类 / 3

1.3 虚拟化技术的分类 / 4

1.4 云虚拟化与嵌入式虚拟化 / 5

1.4.1 嵌入式虚拟化的背景与原因 / 5

1.4.2 云虚拟化和嵌入式虚拟化

   的区别 / 5

1.5 嵌入式虚拟化技术的挑战 / 6

1.6 本章小结 / 7

第2章 虚拟化技术原理 / 8

2.1 通用虚拟化架构 / 8

2.1.1 虚拟化的基本概念 / 8

2.1.2 虚拟化技术的基本原理 / 9

2.1.3 虚拟化的主要方式 / 18

2.1.4 VMM的分类 / 19

2.2 云虚拟化和嵌入式虚拟化对比 / 22

2.3 嵌入式虚拟化的场景 / 23

2.4 嵌入式虚拟化技术的特征 / 23

2.5 本章小结 / 25

第3章 开源虚拟化技术—KVM / 26

3.1 KVM的历史 / 26

3.2 KVM的原理 / 27

3.2.1 KVM的架构 / 27

3.2.2 KVM API及示例 / 28

3.3 KVM虚拟化实现 / 32

3.3.1 KVM的初始化 / 33

3.3.2 KVM虚拟机的创建 / 35

3.3.3 CPU虚拟化 / 36

3.3.4 内存虚拟化 / 43

3.3.5 中断虚拟化 / 56

3.4 设备虚拟化 / 61

3.4.1 仿真设备 / 61

3.4.2 半虚拟化设备 / 62

3.4.3 直通设备 / 63

3.4.4 KVM设备虚拟化实现 / 64

3.5 本章小结 / 68

第4章 嵌入式虚拟化技术—

    ACRN实现 / 69

4.1 ACRN简介 / 69

4.1.1 ACRN的由来 / 69

4.1.2 ACRN的关键技术特点 / 70

4.1.3 许可证和社区 / 71

4.2 ACRN应用场景 / 71

4.3 ACRN架构设计 / 73

4.3.1 ACRN 1.0整体架构 / 73

4.3.2 ACRN 2.0/3.0 整体架构 / 74

4.3.3 ACRN的关键组成 / 75

4.3.4 ACRN Hypervisor的架构 / 76

4.4 CPU虚拟化与实现 / 77

4.4.1 处理器管理 / 79

4.4.2 vCPU 生命周期 / 80

4.4.3 vCPU调度 / 80

4.4.4 VMX 初始化 / 85

4.4.5 CPUID 虚拟化 / 85

4.4.6 MSR虚拟化 / 86

4.4.7 CR虚拟化 / 86

4.4.8 IO/MMIO模拟 / 86

4.4.9 指令模拟 / 87

4.4.10 TSC 模拟 / 88

4.4.11 ART虚拟化 / 88

4.4.12 XSAVE虚拟化 / 89

4.5 内存虚拟化及实现 / 90

4.5.1 概述 / 90

4.5.2 Hypervisor物理内存管理 / 91

4.5.3 Hypervisor内存虚拟化 / 93

4.5.4 与EPT相关的VM Exit / 96

4.5.5 服务虚拟机内存管理 / 96

4.5.6 可信 / 97

4.6 中断虚拟化及实现 / 98

4.6.1 概述 / 98

4.6.2 物理中断 / 100

4.6.3 虚拟中断 / 105

4.6.4 中断重映射 / 107

4.7 I/O虚拟化及实现 / 110

4.7.1 I/O访问捕获路径 / 111

4.7.2 Hypervisor中的I/O模拟 / 112

4.7.3 I/O请求 / 112

4.8 本章小结 / 115

第5章 嵌入式虚拟化技术—

       ACRN设备虚拟化 / 116

5.1 ACRN设备模型介绍 / 116

5.2 ACRN全虚拟化设备 / 119

5.2.1 PS/2控制器 / 119

5.2.2 UART串口 / 121

5.2.3 USB设备 / 122

5.2.4 AHCI控制器 / 125

5.2.5 系统时钟 / 126

5.2.6 看门狗设备 / 131

5.2.7 Ivshmem / 132

5.2.8 显卡设备 / 134

5.3 ACRN的virtio设备 / 135

5.3.1 ACRN的virtio框架实现 / 135

5.3.2 virtio-net / 139

5.3.3 virtio-blk / 141

5.3.4 virtio-input / 143

5.3.5 virtio-console / 144

5.3.6 virtio-i2c / 146

5.3.7 virtio-gpio / 148

5.3.8 virtio-rnd / 150

5.3.9 virtio-gpu / 151

5.4 本章小结 / 152

第6章 嵌入式虚拟化技术—

    ACRN安装使用 / 153

6.1 系统环境硬件配置 / 153

6.1.1 开发环境搭建 / 153

6.1.2 目标机硬件配置要求 / 154

6.2 ACRN支持三种模式的场景 / 154

6.2.1 共享模式的场景 / 155

6.2.2 分区模式的场景 / 156

6.2.3 混合模式的场景 / 156

6.3 安装部署流程 / 157

6.4 安装部署入门指南 / 159

6.4.1 选择硬件和场景 / 160

6.4.2 准备开发机环境 / 160

6.4.3 准备目标机并生成目标

   平台配置文件 / 162

6.4.4 编译ACRN / 169

6.4.5 在目标机上安装ACRN / 170

6.4.6 启动ACRN和服务

      虚拟机 / 171

6.4.7 启动用户虚拟机 / 171

6.5 本章小结 / 172

第7章 嵌入式虚拟化技术——实时

    性能优化 / 173

7.1 整体架构设计 / 173

7.1.1 实时性的分类 / 175

7.1.2 实时性的优化准则 / 175

7.2 ACRN虚拟机优化 / 177

7.3 CPU优化 / 179

7.4 中断优化 / 180

7.5 内存优化 / 181

7.5.1 缓存分配技术 / 182

7.5.2 软件SRAM / 185

7.6 I/O虚拟化 / 186

7.6.1 GPU直通 / 187

7.6.2 其他设备虚拟化 / 188

7.7 客户机优化—实时操作系统 / 188

7.8 工具辅助优化 / 189

7.8.1 ACRNTrace介绍 / 189

7.8.2 vmexit命令 / 191

7.8.3 PMU的数据分析 / 192

7.8.4 RTOS的实时性基准测试工具 / 192

7.8.5 Intel TCC的介绍 / 194

7.9 虚拟机间通信 / 197

7.10 本章小结 / 198

第8章 嵌入式实时操作系统 / 199

8.1 RTOS介绍 / 199

8.1.1 常见的RTOS / 199

8.1.2 从GPOS到RTOS的转换 / 200

8.1.3 RTOS运行在虚拟机上的

   注意事项 / 200

8.2 Xenomai / 201

8.2.1 Xenomai的起源 / 201

8.2.2 Xenomai的特性 / 202

8.2.3 Xenomai 3.1系统架构 / 204

8.3 PREEMPT_RT Linux / 205

8.3.1 PREEMPT_RT Linux的起源 / 206

8.3.2 PREEMPT_RT Linux的发展 / 206

8.3.3 PREEMPT_RT的特性 / 207

8.4 Zephyr / 213

8.4.1 Zephyr的起源 / 213

8.4.2 Zephyr的特点 / 213

8.4.3 Zephyr的系统架构 / 214

8.4.4 Zephyr的实现 / 219

8.5 本章小结 / 224

第9章 嵌入式虚拟化技术赋能功能安全 / 226

9.1 功能安全背景 / 226

9.2 功能安全概述 / 227

9.2.1 风险概念 / 229

9.2.2 功能安全标准的基本

   术语与定义 / 230

9.2.3 风险和安全完整性 / 232

9.2.4 系统功能安全 / 234

9.2.5 软件功能安全 / 236

9.3 典型软件安全设计 / 236

9.4 混合关键性系统 / 239

9.4.1 混合关键性系统典型应用场景 / 239

9.4.2 QNX Hypervisor / 241

9.5 ACRN赋能混合关键性系统 / 243

9.5.1 安全目标 / 245

9.5.2 系统级安全措施 / 246

9.5.3 独立性相关安全措施 / 247

9.5.4 安全分析 / 248

9.5.5 系统化开发流程 / 249

9.5.6 安全状态设计 / 253

9.5.7 安全架构设计 / 254

9.5.8 安全需求概述 / 256

9.5.9 使用限制 / 261

9.6 嵌入式虚拟化技术的功能

  安全价值 / 265

9.7 本章小结 / 265

第10章 应用案例—智能数控

     系统和数字孪生 / 266

10.1 行业概述 / 266

10.2 行业挑战与需求 / 266

10.3 解决方案 / 267

10.4 具体实现 / 268

10.4.1 架构设计 / 268

10.4.2 虚拟机与云端应用的

       协同机制 / 270

10.4.3 编译及安装 / 271

10.5 方案优势 / 272

10.6 本章小结 / 273

第11章 应用案例—基于机器视觉和机器

     控制的工作负载整合 / 274

11.1 行业概述 / 274

11.1.1 迈向工业4.0 / 274

11.1.2 物联网中的工作负载整合 / 275

11.1.3 现代工业物联网模型 / 275

11.2 行业挑战与需求 / 276

11.2.1 工业自动化需要数字化转型 / 276

11.2.2 软件定义的基础设施帮助

    工业数字化转型 / 277

11.2.3 将软件定义的基础设施应用于

    工业自动化 / 277

11.2.4 在工业领域进行工作负载整合

    的需求 / 279

11.2.5 工业控制领域的工作负载

    整合案例—机器视觉和

    机器控制 / 280

11.3 解决方案 / 281

11.3.1 负载整合技术方案—虚拟化

    和容器化 / 281

11.3.2 通过虚拟化技术实现工作

    负载整合 / 282

11.4 具体实现 / 284

11.4.1 机器视觉—运行在人机交互

    虚拟机里 / 284

11.4.2 机器控制—运行在实时

    虚拟机里 / 285

11.4.3 服务虚拟机—为整机系统

    提供后台服务 / 285

11.4.4 嵌入式虚拟机管理程序—

    ACRN Hypervisor / 286

11.4.5 硬件资源和I/O设备的分配 / 286

11.4.6 虚拟机间通信 / 287

11.4.7 物理硬件平台—基于x86的

    工控机 / 287

11.4.8 性能调优 / 287

11.4.9 安装步骤示例 / 288

11.5 方案优势 / 288

11.6 本章小结 / 289

第12章 应用案例—自主移动机器人 / 290

12.1 行业概述 / 290

12.2 行业挑战与需求 / 290

12.3 解决方案 / 291

12.4 具体实现 / 292

12.5 安装步骤示例 / 295

12.6 方案优势 / 295

12.7 本章小结 / 296

第13章 应用案例—软件定义汽车

     驾驶舱 / 297

13.1 行业概述 / 297

13.1.1 多个独立ECU的实现 / 298

13.1.2 软件定义驾驶舱 / 299

13.2 行业挑战与需求 / 300

13.3 解决方案 / 302

13.4 具体实现 / 303

13.4.1 基于x86架构的SoC / 304

13.4.2 ACRN Hypervisor / 304

13.4.3 仪表盘系统—服务

    虚拟机 / 304

13.4.4 中控娱乐系统—用户

    虚拟机 / 304

13.4.5 Intel GVT-g图形显卡共享 / 305

13.5 编译及安装 / 306

13.6 方案优势 / 307

13.7 软件定义驾驶舱的未来展望 / 307

13.8 本章小结 / 308

附录 / 309

附录A Xenomai及其应用程序的

    编译和安装 / 309

附录B PREEMPT_RT Linux的

    编译和安装 / 316

附录C Zephyr的编译和安装 / 319

附录D 在ACRN上安装运行两个

    虚拟机 / 323

附录E ROS 2安装与使用示例 / 331

技术术语表 / 335

参考文献 / 342