首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式系统的虚拟化

嵌入式系统的虚拟化

不仅仅只有虚拟化创造的市场和机遇正在 “爆炸”,虚拟化的变体也在增长。尽管虚拟化诞生于大型机,但它在服务器中占据了关键位置。对于大量工作负载而言,服务器利用率很低,而虚拟化允许在单个服务器上托管多个服务器实例,从而减少成本、管理和固定资产。因此,虚拟化以 “Ⅱ型”(或托管)虚拟机监控程序的形式进入消费者领域,虚拟机监控程序允许在单个桌面机上同时运行多个操作系统。下一个创新是虚拟化的桌面机,允许一个服务器使用最少的客户机端点通过一个网络托管多个客户机(瘦客户机)。但在今天,虚拟化正在进入一个新的海量空间:嵌入式设备。       
鉴于虚拟化实现的优势持续增长,这种演变并不那么令人吃惊。虚拟化在 IBM 大型机上诞生并发展,然后随着计算技术的演变进入服务器、桌面机和现在的嵌入式设备。上世纪 90 年代,虚拟化发展到大型机之外,借助原生微处理器的支持,经历了一次复兴(见图 1)。       
图 1. Ⅰ型虚拟机监控程序的简单时间线本文将探索其中的一些应用领域,展示虚拟化如何延伸其触角,找到新的应用领域。本文还将探索开源技术在虚拟化应用过程中的引导作用。       
什么是嵌入式虚拟化?嵌入式虚拟化 是指嵌入式系统中部署的Ⅰ型虚拟机监控程序。但是,这种说法有些自相矛盾。嵌入式系统 的一种定义是:设计用于执行少数专用功能的计算机系统。但如果向嵌入式系统添加一个虚拟机监控程序,将添加灵活性和一些高级功能,将嵌入式设备转变为一种新型系统。               
微核的关键抽象1995 年,Jochen Liedtke 定义了微核中必须提供的三个关键抽象:地址空间(用于隔离)、线程(用于并发性)和进程间通信(用于独立的地址空间中的线程之间的通信)。               

虚拟机监控程序 是一种特殊操作系统,直接在裸机上运行(针对Ⅰ型虚拟机监控程序情况)。虚拟机监控程序创建一个底层硬件平台抽象,这样,一个或多个虚拟机(VM)无需知道它们共享平台即可使用这个底层硬件平台。在这种环境中,VM 只是操作系统及其应用程序的容器。这种环境的一个有趣的优点是一个 VM 与虚拟机监控程序上运行的其他 VMs 隔离,这支持多个操作系统或多个配置不同的相似操作系统。这种隔离还提供一些好处,我们将稍后介绍。               
另外,嵌入式虚拟机监控程序是一个虚拟平台和一个微核的混合物(见图 2)。这种状态允许虚拟机监控程序支持 VMs(操作系统和应用程序)和单独的应用程序。               
图 2. 裸机操作系统和虚拟机监控程序                                尽管嵌入式设备一直受到严格的资源限制,但今天的设备范围广泛:从拥有服务器级功能(比如对虚拟化的硬件支持)的强大处理器到拥有计较少容量和资源的功耗优化系统。对于嵌入式虚拟机监控程序,这种多样性创建了一个比它们的大型机和服务器 “兄弟” 要求更高的环境。               
嵌入式虚拟化的特征与传统虚拟机监控程序不同,嵌入式虚拟机监控程序实现了一种不同的抽象,拥有与其他平台不同的限制。本节探索嵌入式空间中提供的一些限制和功能。               
效率所有虚拟机监控程序都致力于提高效率,但嵌入式虚拟机监控程序必须处理在传统虚拟化环境之外添加的限制。因此,嵌入式虚拟机监控程序必须规模小,且拥有极高的内存使用效率。                       
安全性规模小有其优势。应用程序的代码越小,就越容易验证和证明它是没有 bug 的。事实上,有些嵌入式虚拟机监控程序供应商已经正式验证了他们的虚拟机监控程序,并保证它们没有 bug。虚拟机监控程序越小,平台就可能越安全可靠。这是因为虚拟机监控程序通常是系统惟一以特权模式运行的部分,充当所谓的可信计算基(Trusted Computing Base,TCB),形成一个更安全的平台。                       
通信嵌入式虚拟机监控程序的目的在于与多个来宾和应用程序共享一个硬件平台,但通常还扩展一些通信方法以便它们交互。这个通信通道既有效又安全,允许特权和非特权应用程序并存。                       
隔离隔离来宾和应用程序的能力与安全性相关。除了提供安全性和可靠性的容器之外,这种能力还提供许可隔离方面的好处。使用嵌入式虚拟机监控程序的通信机制允许专有软件和开源软件在隔离的环境中共存。随着嵌入式设备变得更加开放,混合专有软件和第三方或开源软件的愿望成为一个重要需求。                       
实时功能最后,嵌入式虚拟机监控程序必须支持拥有实时功能的调度。对于手持式设备,虚拟机监控程序能够与核心通信功能和第三方应用程序共享平台。具有实时特征的调度允许这些关键功能与一些尽力运行的应用程序共存。                       
嵌入式虚拟机监控程序示例已经出现了几个用于处理嵌入式领域中的应用程序的虚拟机监控程序 — 它们不仅来自开源社区,而且还有一些专有版本。VMware 引入了 Mobile Virtualization Platform 来处理一个日益普遍的使用模型:商用和个人智能电话。通过在一部智能电话上采用一个嵌入式虚拟机监控程序,单个设备可以通过在单独的容器(VMs)中隔离两个使用模型同时用于安全的公司用途和个人用途。               
下面我们探索一些处理这种和其他用途的解决方案(包括开源方案)。               
PikeOSPikeOS 是一个有趣的架构,因为它主要实现了一个所谓的分离内核(separation kernel)。与虚拟机监控程序类似,分离(或分区)内核安全地隔离上级来宾的环境。PikeOS 用于处理航空电子工业中安全性至关重要的航空电子应用程序。引入一个嵌入式虚拟机监控程序允许在同一个平台上同时使用较早的遗留应用程序(在一个 VM 中)和更新的应用程序(见图 3)。                       
图 3. PikeOS 嵌入式虚拟化                                        在内核领域中,PikeOS 实现了一套架构和平台支持包,用于特殊的硬件环境(x86、PowerPC、SuperH 等)以及提供虚拟化平台的分离微核。PikeOS 不仅支持来宾操作系统(及其关联应用程序),还支持针对一个特定问题领域的更简单的应用程序编程接口和运行时环境(RTE),比如 PikeOS 原生接口和实时 Java™。                       
PikeOS 系统软件层向来宾分配资源(空间和时间)。此系统依赖半虚拟化,以便来宾操作系统意识到它们已被虚拟化。                       
尽管通常用于航空电子工业,但 PikeOS 不久以后有可能通过 Automotive Open System Architecture (AUTOSAR) 进入您的汽车。您可以在 参考资料 中了解更多信息。
返回列表