人工智能 + 区块链的发展趋势及应用调研报告
物联网市场的应用场景日益复杂, 越来越多的上网设备需要支持更多的硬件资源, 操作系统, 软件工具及应用程序, 现有的解决方案显然无法为数量庞大的物联网设备提供相应的灵活性, 这使开发者们面临巨大的设计压力. 虚拟化技术是解决这些问题的关键. 不过, 现有的虚拟化解决方案并不能满足物联网开发的轻量级和灵活性的特殊要求. 为了满足当前物联网市场的发展趋势, Linux 基金会推出了开源项目 -- ACRN.
ACRN 到底具有哪些强大的功能, 它又是怎么实现的? 今天我们就从架构到应用对 ACRN 进行详细分析, 让开发者们快速上手使用 ACRN 进行产品设计.
ACRN 是一个专为嵌入式设备设计的 hypervisor, 包括如下两部分: 一套 hypervisor 的参考软件和架构, 通过虚拟机监视器 Virtual Machine Manager 可以在同一个物理硬件上安全地同时运行多个操作系统. 另外, 它还为设备虚拟化模拟定义了一套参考设计框架, 称为 "ACRN 设备模型".
ACRN hypervisor 是一个 Type-I 的 hypervisor, 可以直接运行在物理硬件上, 适用于各种物联网和嵌入式设备解决方案. ACRN hypervisor 解决了当前数据中心 hypervisor 和 partitioning hypervisor 之间存在的差距. ACRN hypervisor 设计时把系统分为不同的功能域, 并为物联网和嵌入式设备精心挑选的用户操作系统进行共享优化.
汽车应用案例
ACRN hypervisor 的一个有趣的案例是用于汽车场景. ACRN hypervisor 可以用于构建软件定义驾驶舱 (SDC) 或者车载娱乐系统(IVE). 作为参考实现, ACRN 可以为嵌入式 hypervisor 厂商的解决方案提供一个很好的基础, 以及一套 I/O 设备虚拟化的参考设计.
在这种场景下, 汽车 SDC 系统由仪表盘 (IC) 系统, 车载信息娱乐系统 (IVI) 和一个或多个后座娱乐系统 (RSE) 组成. 为了整体系统安全性考虑, 每个系统都作为独立的虚拟机运行.
仪表盘系统 (IC) 用于显示和驾驶员相关的车辆的驾驶操作信息, 如:
汽车的速度, 燃油, 行驶里程和其它驾驶信息;
投影在挡风玻璃上的抬头显示, 用以警告缺油或胎压报警;
显示后视摄像头影像和车身的周边摄像头信息, 用于辅助停车;
车载娱乐系统 (IVI) 的功能包括:
导航系统, 收音机和其它娱乐系统;
连接到移动设备, 可以打电话, 播放音乐或者通过语音识别来控制应用程序;
通过手势识别或触控进行交互;
后座娱乐系统 (RSE) 可以运行:
娱乐系统;
虚拟办公;
连接到前排座椅的 IVI 系统和移动设备(云连接);
连接到移动设备, 可以打电话, 播放音乐或者通过语音识别来控制应用程序;
通过手势识别或触控进行交互;
ACRN hypervisor 可以支持 Linux 和 Android 虚拟机作为用户操作系统(UOS),UOS 由 ACRN hypervisor 进行管理. 开发者和 OEM 厂商可以在 ACRN hypervisor 之上运行自己的虚拟机, 以及 IC,IVI 和 RSE VM.Service OS 是作为 VM0 运行(在 Xen hypervisor 中被称为 Dom0, 在 KVM hypervisor 中被称为 Host OS),User OS 用户操作系统作为 VM1 运行(也被称为 DomU).
注: Android 虚拟机的支持将在未来版本发布.
图 1 显示了一个使用 ACRN hypervisor 的实例框图.
图 1:SOS 和 UOS 运行在 ACRN hypervisor 之上
从 ACRN hypervisor 的架构图中可以看到:
ACRN hypervisor 直接位于 bootloader 之上, 因而具备快速启动的能力;
部分资源进行 partitioning, 以确保安全关键性应用和非安全关键业务可以共存在同一平台上;
丰富的 I/O 设备虚拟化提供在多个 VM 之间的 I/O 设备共享, 从而提供全面的用户体验;
通过高效的虚拟化, 一个 SoC 可以支持多个操作系统同时运行;
图 1 中的黄色部分是 ACRN 项目的软件栈. 该架构框图中列出的某些功能还没有完全实现, 欢迎社区共同参与开发实现. 另外, 图中的其他模块来自于别的开源项目, 这里仅供参考.
例如, Service OS 和 Guest Linux 来源于 https://clearlinux.org/ 上的 Clear Linux 项目, 而未来 Guest Android 的支持将会来自 https://01.org/android-ia 项目.
当前 ACRN 所支持的功能列表, 请参照发布说明.
许可证
来源: http://os.51cto.com/art/201805/573662.htm