2018 LC3 开源盛会闭幕,ACRN 推动物联网开发落地
| 2018-06-29 18:06
6 月 25 - 27日,由 Linux 基金会主办的 2018 LinuxCon + ContainerCon + CloudOpen China(LC3)在国家会议中心召开。本次会议邀请了来自 100 多家国内外开源技术领先企业的 300 多位技术大咖,用 3 天时间,分享超过 200 场技术演讲,对开源技术最为前沿的 10 大话题,从市场、技术、产业、生态层面做全方位的探讨。数千位开发人员、运营专家等借助 LC3 大会这一平台,共同学习和探讨创新的开源思维、前沿技术与解决方案。作为一款轻量级、专门为精简嵌入式开发而优化的可扩展的 hypervisor 参考平台,ACRN 项目参加了本次 LinuxCon China 大会。在第一天上午的大会上,英特尔公司副总裁兼软件与服务事业部开源技术中心的总经理苏义德发表主题演讲,着重强调了 ACRN 的架构特点和实用性。
ACRN 由 Linux 基金会于今年 3 月发布,凭借小型化、实时性、可适应性、开源性等特点,以实时性及关键安全性为设计出发点,开发者可以采用 ACRN 来构建一个开源的嵌入式 hypervisor,适用于物联网、汽车等领域。英特尔在其 Apollo Lake 处理器中使用 ACRN,实现了同时让多个操作系统区隔运行,该解决方案已经成为意大利高级轿车玛莎拉蒂在智能驾驶功能上采用的关键技术。
为了让开发者们更好地了解 ACRN,英特尔工程师王禹以 “ACRN – A big little hypervisor for IoT Development” 为题发表主题演讲。从 ACRN 概况开始介绍,随后是 ACRN 的安全相关的功能架构,以及 ACRN 实现的丰富的 I/O 调度的讲解。通过这些讲解,层层揭开谜底,让听众了解为什么ACRN被称之为 “a big little hypervisor”。
他首先介绍 “ACRN” 的名字由来和美好寓意,ACRN 与 “acorn” 同音,意思是“橡子——橡树的种子”,“a big little hypervisor”,含义是代码量很小但功能很丰富。希望 ACRN 在开源社区中像一粒橡子一样茁壮成长,在物联网领域开发出种类丰富的应用和产品,长成 “参天橡树”。
然后,英特尔工程师王禹介绍了 ACRN 主要特点。首先是轻量级,它只有大约 25K 行代码,比同样是 Type-I hypervisor 类似架构设计 Xen 精简 10 倍,以及实时性、可适应性、开源性、安全性等特点。ACRN 针对嵌入式系统独有的一些硬件设备进行了虚拟化支持,如可支持显卡,摄像头,声卡等设备,跨多个 VM 的丰富的 I/O 共享设备,丰富的 I/O 设备虚拟化功能,支持多个虚拟机同时访问。
为了让大家更好理解 ACRN,王禹先简单介绍了虚拟化技术在 IoT 领域的应用化场景,包括汽车、机器人、精密仪器、工业等领域,它们共同特点是同一个硬件产品中需要多个独立系统的支持,而虚拟化方案能够把每一个系统实现为独立虚拟机,共享高性能的应用平台,则可以为硬件产商节省相应的成本,为系统的安全性提供进一步技术保障。
ACRN Hypervisor 是运行在裸机上,运行一个基于 Linux 的服务操作系统(SOS),然后可以同时运行多个客户操作系统,以便整合工作负载。ACRN hypervisor 为服务操作系统创造了第一个虚拟环境,然后启动服务操作系统。它运行本地设备驱动程序来管理硬件,向客户操作系统提供 I/O 调度。服务操作系统目前可以运行 Clear Linux*,但是 ACRN 也支持其它 Linux* 的发行版或者专有 RTOS 作为服务操作系统或客户操作系统。为了保持 ACRN hypervisor 代码库尽可能小且高效,大部分物理设备模块都由服务操作系统管理,并同时用来提供设备共享和其它功能。
ACRN 有 hypervisor 和 ACRN 设备模型两个关键组成。ACRN 设备模型提供了虚拟设备模拟的参考框架,提供了丰富的 I/O 虚拟化支持。ACRN 配合 Intel APL 平台其他模块,支持了全方位的验证启动。
验证启动在嵌入式场景是非常重要的,可以防止出厂的系统软件被篡改,造成经济损失,他以 SBL 和 UEFI 为例展开介绍了验证启动的步骤。其中 UEFI 启动引导顺序是先利用 UEFI 的引导服务来验证和启动 ACRN hypervisor,随后 ACRN hypervisor 保存 UEFI 现场,并为服务操作系统创建虚拟化环境后导入 UEFI 现场。服务操作系统的引导加载程序则会使用 UEFI 的运行时服务来校验并启动服务操作系统内核。随后该内核再通过 dm-verify 验证并且加载 ACRN 设备模型和 vSBL,vSBL 会按照原生验证启动流程继续进行客户操作系统的启动流程。
ACRN hypervisor 也支持 HECI 的虚拟化。HECI 是一个 PCIe 的接口设备,CPU 通过它和 CSE 进行通信,Intel 的硬件平台使用 HECI 作为管理引擎的接口。每个使用 CSE 的 Intel 硬件平台都有一个唯一的 SEED,操作系统通过该 SEED 来管理其密钥存储。在 ACRN hypervisor 中提供 virtual SEED 用于给每个客户操作系统来管理其自己的密钥存储。
接下来,他还介绍了常用车载系统的硬件 IOC,ACRN 也实现了虚拟化。在服务操作系统的设备模型里,IOC 后端服务截获客户操作系统的 IOC 信息,然后解析,过滤并模拟这些命令。IOC Mediator 把 IOC 信息分为特权信息和非特权性信息两类,特权信息是只能被服务操作系统使用的,即只有服务操作系统才有权从 IOC 物理硬件发送或接收的这类信息。另一类 IOC 信息是非特权信息,客户操作系统可以通过虚拟串口进行发送。设备模型通过模拟串口得到信息,然后 IOC 后端服务过滤信息并发送给物理硬件,如果该信息可被允许发送。反之亦然。
关于 USB 虚拟化,ACRN 扩展了 USB 虚拟化,以便支持 CarPlay 和其他应用场景。其中包括 USB host 控制器的虚拟化,DRD 硬件虚拟化和 USB 设备控制器的 VTD 穿透。除了区别于服务器的 I/O 调度,ACRN 还实现了虚拟化场景中比较成熟的I/O 调度,像 virtio storage,virtio network,virtio console,virtio input 以及 GPU 虚拟化技术。
在演讲的最后,王禹介绍了 ACRN 的路线图,从中可以看出,无论是现在还是未来,还有新的平台和功能需要 ACRN 的支持和实现,向开发者伸出了橄榄枝,共同加入 ACRN 的大家庭。
这边三层的会议室的演讲精彩纷呈,另一边是四层 ACRN 展区的人流如织。在 LC3 大会的四层企业展区里,ACRN 备受追捧,英特尔工程师杨爱林迎接了一拨又一拨的开发者,向他们进行 ACRN 现场演示,解答了相应的技术问题,吸引了很多参观者驻足倾听。
未来十年是数字化转型的关键十年,相信 LC3 大会的参与者都已领悟到,物联网领域拥有着更广阔的发展空间,而 ACRN 是专为物联网开发打造的轻量级 hypervisor,将推动物联网技术的产品落地和产业发展。
关于ACRN
ACRN 由 Linux 基金会于 2018 年 3 月发布,是一款灵活的、轻量级、开源 hypervisor 参考软件。ACRN 以实时性和关键安全性为设计出发点,特别为精简嵌入式开发而优化。该项目为各行业的领导者提供了一个参考设计框架,可以用来构建一个开源的嵌入式 hypervisor,尤其适用于物联网领域。