ACRN(发音同‘acorn’,意思为橡子,嗯,就是《冰河世纪》里那个撩松鼠的橡果,你get到了吗?)是一款灵活的轻量级开源hypervisor参考软件,由Linux基金会于2018年3月发布 ,以实时性和关键的安全性为设计出发点,并且通过开源平台为精简嵌入式开发进行优化
随着物联网规模呈指数级增长,物联网开发者需要支持各种不同的硬件资源、操作系统、软件工具/应用程序。这是一个很大的挑战,因为许多互联的物联网设备在资源上会受到各种限制的,例如运行内存空间,闪存大小,CPU核的个数。虚拟化有助于满足这些广泛的需求,但是现有的虚拟化方案无法为物联网开发提供同时满足尺寸、灵活性和功能的适当的组合。于是ACRN应运而生。
ACRN可谓专为嵌入式物联网设计,“ACRN的想法来自于我们为用户提供虚拟技术的工作。嵌入式物联网开发工作量很大。使用hypervisor技术,具有不同重要性的负载可以被整合到一个平台上,从而降低开发和部署成本,并且允许更精简的系统架构。”----英特尔公司副总裁兼开源技术中心总经理Imad Sousou表示,英特尔开源技术中心也为ACRN贡献了源代码。ARCN的虚拟化功能包括:
l 虚拟CPU, I/O,存储,网络等,基于英特尔VT-x虚拟化技术,ACRN模拟了虚拟CPU,CPU core是隔离的,简单调度。VT-d提供硬件支持,以隔离和限制设备访问管理设备分区的所有者。它允许将I/O设备分配给VM,并且为I/O操作提供VM的保护和隔离属性。ACRN hypervisor支持虚拟化APIC-V/EPT/IOAPIC/LAPIC功能;ACRN hypervisor支持虚拟化以太网功能。以太网Mediator在Service OS中执行,并提供物理网络设备(以太网、Wi-Fi等)和在Guest VM中的虚拟设备(也称为“User OS”)中的虚拟设备之间的数据包转发;ACRN hypervisor为Service OS和Guest OS实例支持虚拟化非易失R/W存储,典型如EMMC,支持在Guest OS实例之间共享VM专用存储与/或存储
l 嵌入式物联网设备支持:例如显卡,摄像头,声卡等。
l 跨多个VM的丰富的I/O共享设备;丰富的I/O设备虚拟化功能,支持多个虚拟机同时访问
ACRN是仅为25k的较少代码(LOC)小尺寸是ACRN的显著特色,而适用于数据中心的hypervisor通常有156K,能适用于Linux、andriod等客户机操作系统。具有低延迟、启动时间加速、能过硬件直接通信提高整体响应速度的实时性系统特征。
ACRN Hypervisor运行在裸机上,然后在其上可以运行一个基于Linux 的服务操作系统(SOS),然后可以同时运行多个客户操作系统,以便整合工作负载。ACRN hypervisor为Service OS创造了第一个虚拟环境,然后启动Guest OS。Service OS运行本地设备驱动程序来管理硬件,向Guest OS提供I/O mediation。
为ACRN提供VT-X虚拟化技术的英特尔公司是ARCN的主要支持者,而英特尔的嵌入式SoC Apollolake代际芯片则为ARCN提供了产品化硬件基础平台, ACRN Clear Linux(SOS)和Clear Linux(UOS)都已在APOLLOLAKE上移植成功。Apollolake为ACRN提供了充分的可扩展性。
ACRN为物联网应用提供了一个开源的实时操作系统的支持,而蓝天的Apollolake系列核心板则为ACRN提供了快速产品化硬件落地。蓝天已上市的二款核心板已是一套完整的最小化系统:
l SMARC-N4200为金手指型核心板,APL-X296则为邮票齿型核心板,金手指的特点是接插方便,维护便捷;邮票卡则焊接牢固,整体成型,两种款型为客户提供了充分的选择度
l SMARC-N4200与APL-X296都提供了Apollolake的两款4核高配芯片N4200\E3940供选择,4核CPU主频可达2.5G\1.8G,完全适用于嵌入式物联网应用,尤其值得一提的CPU集成显卡HD Graphics 505可与第六代酷睿Skylake媲美
l SMARC-N4200与APL-X296皆板载4G内存up to 1600MHz,跑起linux得心应手,32G EMMC轻松实现片上系统的最小化。N4200 CPU仅6W的TDP轻易实现无风扇工作,与物联网要求的低功耗相得益障。
l APL-X296邮票卡直接板载IO芯片,方便ACRN虚拟的IO落地
l 蓝天为SMARC-N4200及APL-X265核心板提供了功能强大的开发底板Zeno-2997或EC4-2960,方便ACRN开发者移植各种新功能