伴随着物联网设备的指数级增长,在需要高算力的场景,例如软件定义汽车驾驶舱、工业领域的工作负载整合,开源虚拟化技术在嵌入式系统上受到了越来越多的关注和应用。本书首先介绍虚拟化技术的基本原理,包括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章 开源虚拟化技术——KVM
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及其应用程序的编译和安装
附录B PREEMPT_RT Linux的编译和安装
附录C Zephyr的编译和安装
附录D 在ACRN上安装运行两个虚拟机
附录E ROS 2安装与使用示例
技术术语表
参考文献
推荐阅读
后折页
封底
机械工业出版社 京icp备14043556号-1 (署)网出证(京)字第214号 Copyright (C) 2001 CmpBook. All Rights Reserved