ACRN是一种灵活,轻量级的虚拟机管理程序,以实时性和安全性为起点进行设计。随着物联网规模的指数增长,物联网开发人员需要支持各种不同的硬件资源,操作系统和软件工具/应用程序。这是一个很大的挑战,因为许多互连的物联网设备都受到各种资源限制,例如运行内存空间,闪存大小和CPU内核数。虚拟化有助于满足这些广泛的需求,但是现有的虚拟化解决方案无法为物联网开发提供大小,灵活性和功能的适当组合。 I ACRN的设计是不同的。 ACRN在2018年Linux嵌入式会议上发布,是一种灵活,轻量级的参考虚拟机管理程序,以实时和关键安全性为起点进行设计,并针对通过开源平台进行的简化嵌入式开发进行了优化。 ACRN的最大优点之一是它的体积小,在发布时仅约2.5万行代码。英特尔开源技术中心贡献了该项目发布的源代码。英特尔副总裁兼开源技术中心总经理Imad Sousou表示:``ACRN的想法来自我们为用户提供虚拟技术的工作。嵌入式物联网开发的工作量巨大。使用虚拟机监控程序技术,可以将不同重要性的负载集成到平台上,从而降低开发和部署成本,并允许更简化的系统体系结构。 & rdquo;关于名称:ACRN不是缩写,发音为“橡子&rdquo ;,(橡子在英语中表示橡子)表示尽管起初很小,但最终可能会变得非常大,类似于下面的方式该项目希望通过社区参与来发展。 ACRN具有两个关键组件:虚拟机管理程序和ACRN设备模块。 ACRN Hypervisor是1类虚拟机管理程序,可以直接在裸机上运行。 ACRN设备模块是用于虚拟设备仿真的参考框架。它提供了丰富的I / O虚拟化支持。目前计划支持音频,视频,图形和USB。随着社区的发展,预计将增加更多的设备虚拟化功能。如何工作? ACRN Hypervisor在裸机上运行,然后可以在其上运行基于Linux的服务操作系统(SOS),然后可以同时运行多个来宾操作系统来合并工作负载。 ACRN管理程序为Service OS创建第一个虚拟环境,然后启动Guest OS。 Service OS运行本地设备驱动程序来管理硬件,并为Guest OS提供I / O媒体。 Service OS作为虚拟机运行,在系统中具有最高优先级,以满足对时间敏感的需求和系统服务质量(QoS)的要求。 Service OS当前可以运行Clear Linux *,但是ACRN还支持其他Linux *发行版或专有RTOS作为Service OS或Guest OS。我们诚挚地邀请社区帮助来开发和支持其他版本的Service OS,并使用ACRN参考堆栈来支持其他版本的Guest OS,例如其他Linux *发行版,Android *,Windows *或专有RTOS。为了使ACRN虚拟机管理程序代码库尽可能小和高效,大多数设备模块的实现都驻留在Service OS中,以提供设备共享和其他功能。目的是确保基于资源受限的设备优化小尺寸和低延迟代码,并为物联网开发平台构建虚拟化的特定功能,例如图形,媒体,音频,图像和其他I / O。需要共享设备资源。这样,ACRN填补了大数据中心中使用的管理程序和直接的硬件分区管理程序之间的空白,是各种物联网开发的理想选择。一个示例是车辆中的软件定义的座舱(SDC)。使用ACRN作为参考实施,供应商可以构建包括仪表板,车载娱乐系统(IVI),一个或多个后排乘客娱乐系统(RSE)等的解决方案。考虑到整个系统的安全性问题,IVI和RSE系统可以作为隔离虚拟机(VM)运行。软件定义的工业系统(SDIS)是另一个很好的例子,包括网络物理系统,物联网,云计算和认知计算。 ACRN可以帮助SDIS集成工业工作负载,并可以实现跨系统的灵活调度。这有助于为用户带来好处,包括低功耗,简化的安全性,改进的可靠性和简化的系统管理。 ACRN的早期支持者包括英特尔,ADLink,ApTIv,LG电子和东软。也欢迎社区开发人员下载代码并参与合作。