ACRN 是一个灵活的、轻量级的 hypervisor,以实时性和安全性为设计出发点。
本文由 Linux 基金会撰写,其中部分内容由英特尔开源中心***工程师 Eddie Dong 提供。
随着物联网规模呈指数级增长,物联网开发者需要支持各种不同的硬件资源、操作系统、软件工具/应用程序。这是一个很大的挑战,因为许多互联的物联网设备在资源上会受到各种限制的,例如运行内存空间,闪存大小,CPU 核的个数。虚拟化有助于满足这些广泛的需求,但是现有的虚拟化方案无法为物联网开发提供同时满足尺寸、灵活性和功能的适当的组合。
ACRN 的设计有所不同。在 2018 年的 Linux 嵌入式大会上发布的 ACRN,是一款灵活的、轻量级的参考 hypervisor,以实时性和关键的安全性为设计出发点,并且通过开源平台为精简嵌入式开发进行优化。
ACRN 的***优势之一是尺寸小,发布时大约只有 25K 行代码。英特尔开源技术中心为项目的发布贡献了源代码。英特尔公司副总裁兼开源技术中心总经理 Imad Sousou 表示,“ACRN 的想法来自于我们为用户提供虚拟技术的工作。嵌入式物联网开发工作量很大。使用 hypervisor 技术,具有不同重要性的负载可以被整合到一个平台上,从而降低开发和部署成本,并且允许更精简的系统架构。”
关于名字:ACRN 不是缩写,发音为 “acorn”,(acorn 英文意思为橡子)寓意虽然开始很小,但最终可以长的很大,与该项目希望通过社区参与成长的方式相似。ACRN 有两个关键组成:hypervisor 和 ACRN 设备模块。ACRN Hypervisor 是一个 Type 1 的 hypervior,可以直接运行于裸机上。ACRN 设备模块是针对虚拟设备仿真的参考框架实现,它提供丰富的 I/O 虚拟化支持,目前计划支持音频、视频、图形和 USB。随着社区发展,预计会有更多设备虚拟化功能加入。
如何工作?
ACRN Hypervisor 运行在裸机上,然后在其上可以运行一个基于 Linux 的服务操作系统(SOS),然后可以同时运行多个客户操作系统(GOS),以便整合工作负载。ACRN hypervisor 为服务操作系统创造了***个虚拟环境,然后启动客户操作系统。服务操作系统运行本地设备驱动程序来管理硬件,向客户操作系统提供 I/O mediation。
服务操作系统以系统***优先级的虚拟机运行,以满足时间对敏感需求和系统服务质量(QoS)的要求。服务操作系统目前可以运行 Clear Linux*,但是 ACRN 也支持其它 Linux* 的发行版或者专有 RTOS 作为服务操作系统或客户操作系统。诚邀社区帮助来一起开发支持其他版本的服务操作系统,并使用 ACRN 参考堆栈支持其他版本的客户操作系统,例如:其它 Linux* 发行版、Android*、Windows* 或者专有 RTOS。
为了保持 ACRN hypervisor 代码库尽可能小且高效,大部分设备模块的实现驻留在服务操作系统,用来提供设备共享和其它功能。目的是保证在资源受限的设备上实现小尺寸,低延迟的代码库的优化,为物联网开发平台构建虚拟化特定功能,如图形、媒体、音频、图像以及其它需要分享资源的 I/O 设备。通过这种方法,ACRN 填补了用于大数据中心的 hypervisor 和直接硬件分区 hypervisor 之间的空白,是各种物联网开发的理想选择。
一个实例是车辆中的软件定义驾驶舱(SDC)。使用 ACRN 作为参考实现,供应商可以构建解决方案,包括仪表盘、车载娱乐系统(IVI)、一个或者更多的后排乘客娱乐系统(RSE)等。考虑到整体系统安全问题,IVI 和 RSE 系统可以作为隔离的虚拟机(VM)运行。软件定义工业系统(SDIS)是另一个很好的例子,包括网络物理系统、物联网、云计算和认知计算。ACRN 可以帮助 SDIS 整合工业工作负载,并且可以跨系统实现灵活调度。这有助于为用户带来益处,包括低功耗、简化安全性、提高可靠性,以及简化系统管理等。
ACRN 的早期支持者包括英特尔、ADLink 凌华科技、Aptiv、LG 电子和东软。社区开发者也欢迎下载代码,并参与 ACRN GitHub 的贡献。更多的使用案例信息和参与信息,请访问 ACRN 官网。欢迎参加于 2018 年 10 月 22 ~ 24 日在英国爱丁堡举办的开源峰会兼嵌入式 Linux 大会(欧洲),届时会针对 Linux、云、容器、AI、社区等举办 100 多场会议。
关于 ACRN
ACRN 由 Linux 基金会于 2018 年 3 月发布,是一款灵活的、轻量级、开源 hypervisor 参考软件。ACRN 以实时性和关键安全性为设计出发点,特别为精简嵌入式开发而优化。该项目为各行业的***提供了一个参考设计框架,可以用来构建一个开源的嵌入式 hypervisor,尤其适用于物联网领域。