计算机
类型
可以朗读
语音朗读
243千字
字数
2023-08-01
发行日期
展开全部
主编推荐语
一本嵌入式虚拟化技术入门参考书。
内容简介
伴随着物联网设备的指数级增长,在需要高算力的场景,例如软件定义汽车驾驶舱、工业领域的工作负载整合,开源虚拟化技术在嵌入式系统上受到了越来越多的关注和应用。
本书首先介绍虚拟化技术的基本原理,包括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示例程序
- 技术术语表
- 参考文献
- 推荐阅读
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。