当前位置: 首页 > 科技观察

解密ACRN:专为物联网设计的虚拟机管理程序

时间:2023-03-18 17:24:01 科技观察

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