初识ACRN

  为了满足物联网产品的实时约束等需求,现有的嵌入式虚拟化解决方案通常针对特定的物联网场景进行定制,这使得它们很难扩展到各种场景。此外,大多数商业解决方案都价格昂贵且封闭源代码,基于这种情况,      2018年3月由Linux基金会发布了具有小型化、实时性、可适应性、开源性等特点的嵌入式系统管理程序—ACRN。    英特尔工程师王禹在LC3开源盛会介绍了 “ACRN” 的名字由来和美好寓意,ACRN 与 “acorn” 同音,意思是“橡子——橡树的种子”,“a big little hypervisor”,含义是代码量很小但功能很丰富。希望 ACRN 在开源社区中像一粒橡子一样茁壮成长,在物联网领域开发出种类丰富的应用和产品,长成 “参天橡树”。

首先ACRN的设计目标如下。

•大:ACRN应该具有丰富的功能,以支持各种物联网应用;

•小: ACRN应该是轻量级的代码大小和内存占用,这是通过行业认证的关键;

•实时性:ACRN应支持实时虚拟化,以满足物联网的具体需求;

•安全性:ACRN应该为VM中的工作负载提供隔离的环境,并确保系统范围的完整性,以防止损坏的VM启动;

由于近期正在学习UCOS(RTOS)的使用,这里重点关注实时性,方便自己后面学习实时操作系统

为了满足上面提到的设计目标,ACRN被设计为一个在裸金属硬件和固件上运行的type-1 hypervisor,整个系统架构如图。

目前ACRN管理程序支持三种类型的VM:服务VM、用户VM和实时VM (RTVM)。RTVM是一个特殊的隔离用户VM,经过优化可以提供实时功能,为了支持实时虚拟化,ACRN支持一个特殊的隔离用户VM RTVM,    以保证VM中应用程序的实时性能。RTVM打算在引导时使用最小的仿真设备,并且仅在运行时访问用于实时任务的专用直通设备。RTVM为实时虚拟化提供了一个“VM-Exit-less”的解决方案,这对于物联网的特定用途至关重要。

初识ACRN_第1张图片

黄色部分是 ACRN 项目的软件栈。该架构框图中列出的某些功能还没有完全实现

 

与运行普通操作系统(如Linux)的普通用户VM相比,RTVM有几个不同的优化。为了优化运行时实时性能,RTVM被设计成访问由hypervisor传递的专用硬件资源,以避免SOS(服务操作系统(Service OS, SOS))带来的额外延迟和不确定性定时,SOS在通过硬件资源共享为用户vm提供服务方面起着关键的作用。        但是在某些工业场景下,RTVM可能会失去非rt任务通常提供的灵活性,以及LAPIC会存在安全隐患等等,为此又提出了virtio轮询模式驱动程序(PMD)和X2APIC模式,PMD由RT-OS中的前端驱动程序和ACRN DM中的后端驱动程序组成,来解决灵活性问题。LAPIC在X2APIC模式下,guest IPI 只能与MSR指令一起发生,而ACRN hypervisor可以有选择地拦截和禁止MSR指令,来解决安全性问题。

为了评估实时性能,文中将ACRN与本地和一些流行的实时管理程序(包括Jailhouse、RT-Xen和KVM)进行了比较,并给出了一些数据,从结果可以看出,ACRN RTVM的性能最好,其次是Jailhouse。这两种方法都可以与本机数据进行比较,本机数据显示,由于采用了“VM-Exit-less”解决方案,虚拟机监控程序引入的抖动可以忽略不计。后又进一步了解Jailhouse和ACRN之间的性能差异,从图9看出acrn的抖动比Jailhouse的抖动更稳定、更低,因为Jailhouse在运行时生成了相当多的vmex,而ACRN没有。

初识ACRN_第2张图片初识ACRN_第3张图片

初识ACRN_第4张图片

总得来说实时性具备了以下特点

低延迟;

加速的启动时间;

通过硬件通信提高整体响应速度

文尾给出了链接以供参考

https://github.com/projectacrn/acrn-hypervisor

https://projectacrn.org/

https://v.youku.com/v_show/id_XMzQ5MjQ3MTMyNA==.html

 

你可能感兴趣的:(课程)