展开全部

主编推荐语

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

内容简介

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

本书首先介绍虚拟化技术的基本原理,包括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、科普以及教材、教辅等领域。