ACRN 作为迷你 Hypervisor 应用于工业物联网

2018-07-05 14:43


Hypervisor 是一种非常复杂的软件,这意味着该领域中很少出现新的软件方案——尽管在去年一些为容器环境而设计的一些新的 hypervisor 登上了新闻头条。

但是除了容器,另外一个在未来的几年将受到热捧的技术领域是物联网,包括潜力巨大的工业物联网。(了解一下产业规模,全球的工业物联网支出在 2012 年达到 200 亿美元,预计到 2020 年将会达到 5000 亿美元)。

考虑到这一点,ACRN 的出现就不足为奇了。ACRN 是什么?简单而言之,它是一个为满足嵌入式物联网开发的独特需求而构建的开源参考 hypervisor,它在 3 月份底由 Linux 基金会推出。

这引出了一个或者两个明显的问题:嵌入式物联网开发的独特需求究竟是什么?为什么它们如此重要?以至于由 Linux 基金会托管的现有用于数据中心 hypervisor Xen 也不能满足?

需要的是一个更小型的 hypervisor,且具有负载优先分配功能

第一个需求是小型化。毫不奇怪,数据中心 hypervisor 往往很大,而 IoT 设备资源有限。好消息是,ACRN 只有 25,000 行代码,相比平均具有 160,000 行代码的数据中心 hypervisor来说,数据量只有其六分之一。

另一个主要需求是一些工作负载优于其它的。这是必要的,因为 ACRN 的目标应用领域之一是汽车行业,现在运行在不同硬件模块上的不同负载,,将来将会运行在单一系统上并由像 ACRN 这样的 hypervisor 进行隔离。

由于 ACRN 可以调整工作负载优先级,它能确保运行在一个“安全的关键区域”的工作负载可以在需要的时候从‘非关键安全区域’获取对资源的控制。

实际上,这个功能不仅汽车领域感兴趣。Linux 基金会的执行董事 Jim Zemlin 解释到,

“ ACRN 针对资源受限设备进行了优化,专注于隔离安全关键性工作负载,并赋予它们高优先级,使该项目适用于多种 IoT 使用案例。”

当然,已有一些嵌入式 hypervisor 了,但是做 ACRN 项目的人指出,那些已有的方案是高度依赖于封闭源代码的专有解决方案,它们非常贵,并且它们某些资源是不能被共享的,因为采用了分区实现的方法。

因此,ACRN 的另一个关键特性是它是开源的这个事实,而且能够通过 GitHub 提供给所有人,并且使用它可能会节约巨大的研发成本。英特尔公司副总裁兼开源技术中心总经理苏义德(Imad Sousou)表示,“ACRN 将拥有一个基于 Linux 的服务操作系统,能同时运行多种访客操作系统,为工作负载整合提供强大的解决方案。”英特尔为 ACRN 代码做出了重要的贡献。

ACRN 还处于早期阶段,尚不清楚主要用户是谁。不过很可能会是“盖好房子,自有人来住”。从现在开始,未来几年,如果路上的很多汽车在控制系统核心采用 ACRN 运行,不要感到奇怪。不过这几年虚拟化和容器领域的变化很快,如果车上没用到 ACRN 也不足为奇。