嵌入式虚拟化技术与应用:ACRN开源项目实践

嵌入式虚拟化技术与应用:ACRN开源项目实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

一本嵌入式虚拟化技术入门参考书。

内容简介

伴随着物联网设备的指数级增长,在需要高算力的场景,例如软件定义汽车驾驶舱、工业领域的工作负载整合,开源虚拟化技术在嵌入式系统上受到了越来越多的关注和应用。

本书首先介绍虚拟化技术的基本原理,包括CPU虚拟化、内存虚拟化、中断虚拟化和设备虚拟化,对比KVM在云服务器上参考实现,重点介绍了开源嵌入式虚拟机ACRN的架构设计、原理和实现。还特别总结了虚拟化系统的实时性能调优方法和功能安全认证实践,以及嵌入式虚拟化技术的典型应用场景案例分析。

本书通过对ACRN开源软件的介绍,帮助读者从代码开始了解、学习、开发虚拟机软件,掌握嵌入式虚拟化技术并应用于工程实践。

章节目录

版权信息

推荐序一

推荐序二

前言

第1章 虚拟化技术概述

1.1 虚拟化技术的发展历史

1.2 VMM模型的分类

1.3 虚拟化技术的分类

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

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

1.4.2 云虚拟化和嵌入式虚拟化的区别

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

1.6 本章小结

第2章 虚拟化技术原理

2.1 通用虚拟化架构

2.1.1 虚拟化的基本概念

2.1.2 虚拟化技术的基本原理

2.1.3 虚拟化的主要方式

2.1.4 VMM的分类

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

2.3 嵌入式虚拟化的场景

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

2.5 本章小结

第3章 开源虚拟化技术

3.1 KVM的历史

3.2 KVM的原理

3.2.1 KVM的架构

3.2.2 KVM API及示例

3.3 KVM虚拟化实现

3.3.1 KVM的初始化

3.3.2 KVM虚拟机的创建

3.3.3 CPU虚拟化

3.3.4 内存虚拟化

3.3.5 中断虚拟化

3.4 设备虚拟化

3.4.1 仿真设备

3.4.2 半虚拟化设备

3.4.3 直通设备

3.4.4 KVM设备虚拟化实现

3.5 本章小结

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

4.1 ACRN简介

4.1.1 ACRN的由来

4.1.2 ACRN的关键技术特点

4.1.3 许可证和社区

4.2 ACRN应用场景

4.3 ACRN架构设计

4.3.1 ACRN 1.0整体架构

4.3.2 ACRN 2.0/3.0整体架构

4.3.3 ACRN的关键组成

4.3.4 ACRN Hypervisor的架构

4.4 CPU虚拟化与实现

4.4.1 处理器管理

4.4.2 vCPU生命周期

4.4.3 vCPU调度

4.4.4 VMX初始化

4.4.5 CPUID虚拟化

4.4.6 MSR虚拟化

4.4.7 CR虚拟化

4.4.8 IO/MMIO模拟

4.4.9 指令模拟

4.4.10 TSC模拟

4.4.11 ART虚拟化

4.4.12 XSAVE虚拟化

4.5 内存虚拟化及实现

4.5.1 概述

4.5.2 Hypervisor物理内存管理

4.5.3 Hypervisor内存虚拟化

4.5.4 与EPT相关的VM Exit

4.5.5 服务虚拟机内存管理

4.5.6 可信

4.6 中断虚拟化及实现

4.6.1 概述

4.6.2 物理中断

4.6.3 虚拟中断

4.6.4 中断重映射

4.7 I/O虚拟化及实现

4.7.1 I/O访问捕获路径

4.7.2 Hypervisor中的I/O模拟

4.7.3 I/O请求

4.8 本章小结

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

5.1 ACRN设备模型介绍

5.2 ACRN全虚拟化设备

5.2.1 PS/2控制器

5.2.2 UART串口

5.2.3 USB设备

5.2.4 AHCI控制器

5.2.5 系统时钟

5.2.6 看门狗设备

5.2.7 Ivshmem

5.2.8 显卡设备

5.3 ACRN的virtio设备

5.3.1 ACRN的virtio框架实现

5.3.2 virtio-net

5.3.3 virtio-blk

5.3.4 virtio-input

5.3.5 virtio-console

5.3.6 virtio-i2c

5.3.7 virtio-gpio

5.3.8 virtio-rnd

5.3.9 virtio-gpu

5.4 本章小结

第6章 嵌入式虚拟化技术——ACRN安装使用

6.1 系统环境硬件配置

6.1.1 开发环境搭建

6.1.2 目标机硬件配置要求

6.2 ACRN支持三种模式的场景

6.2.1 共享模式的场景

6.2.2 分区模式的场景

6.2.3 混合模式的场景

6.3 安装部署流程

6.4 安装部署入门指南

6.4.1 选择硬件和场景

6.4.2 准备开发机环境

6.4.3 准备目标机并生成目标平台配置文件

6.4.4 编译ACRN

6.4.5 在目标机上安装ACRN

6.4.6 启动ACRN和服务虚拟机

6.4.7 启动用户虚拟机

6.5 本章小结

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

7.1 整体架构设计

7.1.1 实时性的分类

7.1.2 实时性的优化准则

7.2 ACRN虚拟机优化

7.3 CPU优化

7.4 中断优化

7.5 内存优化

7.5.1 缓存分配技术

7.5.2 软件SRAM

7.6 I/O虚拟化

7.6.1 GPU直通

7.6.2 其他设备虚拟化

7.7 客户机优化

7.8 工具辅助优化

7.8.1 ACRNTrace介绍

7.8.2 vmexit命令

7.8.3 PMU的数据分析

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

7.8.5 Intel TCC的介绍

7.9 虚拟机间通信

7.10本章小结

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

8.1 RTOS介绍

8.1.1 常见的RTOS

8.1.2 从GPOS到RTOS的转换

8.1.3 RTOS运行在虚拟机上的注意事项

8.2 Xenomai

8.2.1 Xenomai的起源

8.2.2 Xenomai的特性

8.2.3 Xenomai 3.1系统架构

8.3 PREEMPT_RT Linux

8.3.1 PREEMPT_RT Linux的起源

8.3.2 PREEMPT_RT Linux的发展

8.3.3 PREEMPT_RT的特性

8.4 Zephyr

8.4.1 Zephyr的起源

8.4.2 Zephyr的特点

8.4.3 Zephyr的系统架构

8.4.4 Zephyr的实现

8.5 本章小结

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

9.1 功能安全背景

9.2 功能安全概述

9.2.1 风险概念

9.2.2 功能安全标准的基本术语与定义

9.2.3 风险和安全完整性

9.2.4 系统功能安全

9.2.5 软件功能安全

9.3 典型软件安全设计

9.4 混合关键性系统

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

9.4.2 QNX Hypervisor

9.5 ACRN赋能混合关键性系统

9.5.1 安全目标

9.5.2 系统级安全措施

9.5.3 独立性相关安全措施

9.5.4 安全分析

9.5.5 系统化开发流程

9.5.6 安全状态设计

9.5.7 安全架构设计

9.5.8 安全需求概述

9.5.9 使用限制

9.6 嵌入式虚拟化技术的功能安全价值

9.7 本章小结

第10章 应用案例——智能数控系统和数字孪生

10.1 行业概述

10.2 行业挑战与需求

10.3 解决方案

10.4 具体实现

10.4.1 架构设计

10.4.2 虚拟机与云端应用的协同机制

10.4.3 编译及安装

10.5 方案优势

10.6 本章小结

第11章 应用案例——基于机器视觉和机器控制的工作负载整合

11.1 行业概述

11.1.1 迈向工业4.0

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

11.1.3 现代工业物联网模型

11.2 行业挑战与需求

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

11.2.2 软件定义的基础设施帮助工业数字化转型

11.2.3 将软件定义的基础设施应用于工业自动化

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

11.2.5 工业控制领域的工作负载整合案例——机器视觉和机器控制

11.3 解决方案

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

11.3.2 通过虚拟化技术实现工作负载整合

11.4 具体实现

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

11.4.2 机器控制——运行在实时虚拟机里

11.4.3 服务虚拟机——为整机系统提供后台服务

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

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

11.4.6 虚拟机间通信

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

11.4.8 性能调优

11.4.9 安装步骤示例

11.5 方案优势

11.6 本章小结

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

12.1 行业概述

12.2 行业挑战与需求

12.3 解决方案

12.4 具体实现

12.5 安装步骤示例

12.6 方案优势

12.7 本章小结

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

13.1 行业概述

13.1.1 多个独立ECU的实现

13.1.2 软件定义驾驶舱

13.2 行业挑战与需求

13.3 解决方案

13.4 具体实现

13.4.1 基于x86架构的SoC

13.4.2 ACRN Hypervisor

13.4.3 仪表盘系统——服务虚拟机

13.4.4 中控娱乐系统——用户虚拟机

13.4.5 Intel GVT-g图形显卡共享

13.5 编译及安装

13.6 方案优势

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

13.8 本章小结

附录

附录A Xenomai及其应用程序的编译和安装

A.1 Xenomai v3.1编译和安装

A.2 Xenomai 3.1上的应用程序编译

附录B PREEMPT_RT Linux的编译和安装

B.1 PREEMPT_RT Linux内核源代码

B.2 配置PREEMPT_RT Linux内核

B.3 编译和安装PREEMPT_RT Linux内核

附录C Zephyr的编译和安装

C.1 Zephyr开发环境安装

C.2 编译Zephyr

C.3 在ACRN上运行Zephyr

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

D.1 前提条件和镜像包

D.2 准备ACRN的开发机环境和目标机环境

D.3 准备示例程序

D.4 制作人机交互VM的镜像

D.5 制作实时操作系统VM的镜像

D.6 创建和配置ACRN的场景

D.7 创建ACRN和服务虚拟机的镜像

D.8 把镜像从开发机环境复制到目标机

D.9 在目标机上安装运行ACRN

D.10 安装成功

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

E.1 系统要求

E.2 设置系统locale

E.3 添加ROS 2 apt代码仓库

E.4 安装ROS开发工具包

E.5 安装ROS 2

E.6 运行talker/listener示例程序

技术术语表

参考文献

推荐阅读

嵌入式虚拟化技术与应用:ACRN开源项目实践是2023年由机械工业出版社出版,作者王洪波 主编。

得书感谢您对《嵌入式虚拟化技术与应用:ACRN开源项目实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
大数据技术与应用基础项目教程 电子书
全书共十个项目,除了项目一介绍大数据基础理论外,其余项目均以实战为主线,内容循序渐进,逐步深入,围绕大数据技术的应用层层展开。内容主要包括大数据的基本概念、Ubuntu及服务安装配置、Hadoop集群部署、MapReduce编程、HBase数据库部署与应用、Hive数据仓库安装与应用、Pig数据分析、Sqoop数据迁移、Spark部署及数据分析等知识,最后以大数据技术的具体应用介绍了MapRedu
MySQL数据库技术与项目应用教程 电子书
本书分为基础应用篇和高级应用篇两大部分,共8个项目26个任务,主要内容包括MySQL数据库的安装与配置、数据库设计与建模、关系代数、数据库的创建与管理和数据查询、数据查询优化、数据库编程、维护系统数据库的安全性和高可用性。
大学信息技术项目化教程 电子书
全书共分7个项目,项目1未来已来,内容包括智能时代的到来、人工智能之分门别类、人工智能之文本分析与主题挖掘、人工智能之图像识别;项目2计算机系统组成;项目3至项目5主要讲解Office的相关应用,具体为Word2013文字处理、Excel2013电子表格制作、项目5powerpoint2013演示文稿制作;项目6多媒体技术应用;项目7互联网应用技术,内容包括大数据技术、移动互联应用等。
嵌入式系统开发技术 电子书
本书紧扣全国计算机等级考试(NationalComputerRankExamination,简称NCRE)三级嵌入式系统开发技术考试大纲,循序渐进,由浅入深,涉及了嵌入式系统从软件到硬件各个方面的知识。本书既介绍了嵌入式系统硬件结构、软件结构、基于ARM的嵌入式处理器、基于Linux和μC/OS-II的嵌入式操作系统的知识,还介绍了和嵌入式系统息息相关的数字媒体、计算机网络等相关知识,适合有一定计
Linux虚拟化数据中心实战 电子书
本书共8章,采用循序渐进的方式,帮助读者掌握Linux虚拟化架构的部署和使用,包括开源虚拟化平台介绍,实验环境搭建,部署使用KVM虚拟化,部署使用oVirt平台、OpenStack、Docker和Hadoop,以及认识SDN架构等内容。本书以实战操作为主,理论讲解为辅,通过讲解搭建各种物理环境的方法,详细介绍在生产环境中如何使用Linux部署虚拟化数据中心,可以迅速提高读者的实际动手能力和操作水平