Board logo

标题: 嵌入式系统的虚拟化更新 [打印本页]

作者: look_w    时间: 2017-12-13 11:48     标题: 嵌入式系统的虚拟化更新

OKL42006 年,Open Kernel Labs (OK Labs) 创立,致力于为嵌入式系统开发微核和虚拟机监控程序。这个实验室在这些领域中的工作创造了一个术语:microvisor,表示一个具有虚拟化功能的微核。OK Labs 在嵌入式虚拟化领域中取得了迄今为止最大的成功,其开源 OKL4 microvisor 已部署到超过 10 亿台设备中,比如 Evoke QA4 消息传递电话 — 第一部支持虚拟化和两个并发操作系统(包括 Linux®)运行的电话。                       
OKL4 继承了 L4 微核系列(由 Jochen                                Liedtke 开发)的遗产。L4 的灵感来自 Mach,Mach 是卡内基梅隆大学开发的微核,作为传统 UNIX® 内核的一个 “简易(drop-in)” 替代者。L4 最初完全在 x86 Assembly 中设计,以便实现一个最优解决方案。后来,它用 C++ 开发,现在存在于一系列微核中:从 L4Ka::Hazelnut(针对 Intel®                                 Architecture、32 位和基于 ARM 的架构设计)到 L4Ka:istachio(针对平台独立性设计,在 Berkeley Software                                 Distribution 许可下发布)。                       
OKL4 实现了名为安全单元 的分区,用于对此架构中的 VMs 进行分区。OKL4 microvisor 占据了特权内核空间,所有 VMs、原生应用程序和驱动程序被推到单独的隔离分区中,一种高效的进程间通信(Interprocess Communication,IPC)机制允许各单元进行通信和合作(见图 4)。除 VMs 之间的传统 IPC 外,由于硬件设备驱动程序被推到 microvisor 之外(这在微核中很常见),因此这种 IPC 很重要:这是一种公共路径输入/输出。另外,由于单独的应用程序和驱动程序可以集成到没有操作系统的平台,因此 OKL4 的组件模型是轻量级的。                       
图 4. OKL4 microvisormicrovisor 实现了具有虚拟化功能的核心微核,这些功能包括资源管理以及具有实时功能和低性能开销的调度功能。OKL4 实现了半虚拟化,意味着操作系统必须能在 microvisor 上运行。OK Labs 提供了对几个半虚拟化的操作系统的支持,这些操作系统包括:OKinux、OK:Android 和 OK:Symbian。                       
NOVA2010 年,NOVA 微虚拟机监控程序问世。与此前的微核架构类似,NOVA 实现了一个瘦微核,包含一些用于非特权代码的独立层。NOVA 利用新硬件平台的虚拟化功能来提高基于组件的系统的性能。                       
NOVA 包含一个微虚拟机监控程序和用户级环境,用于系统的核心功能。这些核心元素(如图 5 所示)包括:一个根分区管理器(用于管理微内核外的资源分配)、底层硬件设备的驱动程序、用于每个来宾管理(来宾和主机之间的)内存映射的 VM 监控器(VMM)以及敏感指令模拟。NOVA 实现了全面虚拟化,因此某些指令(比如 x86 CPUID)必须针对每个来宾、根据其配置恰当模拟。VMM 还为每个来宾可用的设备实现了设备模拟。由于 NOVA 实现了全面虚拟化,因此支持未更改的来宾操作系统。                       
图 5. NOVA 微虚拟机监控程序架构                                        微虚拟机监控程序本身实现了调度器、内存管理和消息传递通信接口,以及其他核心特性,比如保护域(用于空间隔离)和调度上下文(用于临时隔离)。                       
NOVA 被视为一个第三代微核,它的前辈包括 Mach                                和 Chorus(第一代微核)以及 L4(第二代微核)。                       
CodezeroCodezero Embedded Hypervisor 是一个遵循 LR 架构的新微核,但经过彻底重写,以利用微核设计中的最新研究成果。它遵循微核的基本原理,因为它只在特权微核中实现地址空间、线程管理和 IPC,以及一些虚拟化功能。                       
如图 6 所示,Codezero 在硬件平台上实现了一个典型的抽象层,这个抽象层实现了线程处理、IPC、地址空间管理、地址空间映射、安全性、电源以及错误恢复管理。Codezero 的调度器包含针对来宾线程和微核线程的内核优先(以及用于优先的时间片)。                       
Codezero 中的虚拟化通过容器实现。每个容器都是一个隔离的执行环境,包含自己的资源集(内存、线程等)。这种分区还与 Codezero 的安全性和资源管理策略协同工作,这些策略定义每个容器的功能。                       
图 6. 嵌入管理程序架构的 Codezero                                         Codezero 受益于最新微核设计成果。为提高效率,Codezero 实现了三种 IPC(全部基于约会模型[rendezvous model])。Codezero 实现了短 IPC(在用户空间线程之间)、全面 IPC(256 字节)和扩展 IPC(2048 字节)。大型缓冲区的 IPC 通过共享页面映射执行。Codezero 还专门针对嵌入式系统设计,支持多核处理器和基于 ARM 的设计。                       
嵌入管理程序的应用程序嵌入管理程序的应用程序正在不断增多。当今最常见的应用领域之一是移动电话,在移动电话中,可信和安全的应用程序(基带管理)与第三方和不可信的应用程序共享平台。虚拟机监控程序提供的隔离是它们在这个领域获得成功的一个关键因素。随着操作系统和应用程序的发展,快速增长的平板电脑市场也会出现这种技术的应用。               
但嵌入式虚拟机监控程序的应用延伸到手持式设备和平板电脑之外。深度嵌入的航空电子和汽车应用程序也正在利用虚拟机监控程序的隔离和可靠性。关注安全性、耐受性和高度可配置性的系统也在利用这种技术。               
嵌入式虚拟化的未来正如您所看到的大量嵌入式虚拟机监控程序示例所示,微核可能是它们的架构和实现中的一种常见设计模式。这种方法通常精简高效,有利于提高性能,减少代码,改善安全性和可靠性(以 TCB 为基础)。虚拟机监控程序将继续作为一个有趣的研究目标,开拓新的应用领域。虚拟化和嵌入式系统的下一步发展肯定非同寻常,让我们拭目以待。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0