购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 嵌入式虚拟化技术的特征

如前文所述,虚拟化技术如今已经被广泛应用于嵌入式领域。嵌入式VMM是支持嵌入式系统要求的VMM。与应用于服务器的VMM不同,嵌入式VMM具有以下特征。

●体积小。出于对硬件成本以及技术实现的考量,嵌入式系统的硬件资源通常是比较受限的。因此,嵌入式VMM应当尽可能轻量级且高效,也就是说,它的代码库应当小而精,运行时占用的内存(foot print)也要尽可能小,不应占据过多的硬件资源。

●功能全面。嵌入式系统的应用场景非常广泛,不同的应用场景通常需要不同的设备支持,这些设备包括USB设备、显卡、UART串口、音频及视频设备、蓝牙设备、网络设备等。因此,嵌入式VMM需要支持这些设备在虚拟计算机中的使用,同时,当运行于不同虚拟计算机的操作系统需要访问相同设备时,嵌入式VMM还需要支持设备共享。

●实时性。嵌入式系统通常有实时性的需求,这样的系统被称为实时系统。实时系统追求的是任务执行的时间确定性,即在特定的时间范围内,对某一事件/指令进行响应处理。因此,为了支持实时系统,嵌入式VMM需要具有良好的实时响应能力,尽可能降低由虚拟化引起的开销。

●功能安全。功能安全对于嵌入式系统也非常重要,尤其是当这些系统被应用于汽车领域与工业领域时。因此,在设计嵌入式VMM时,功能安全同样应当被考虑在内。在嵌入式系统中,会存在一些对安全性要求比较高(Safety-critical)的应用,同时,也会存在一些对安全性要求不太高(Non-safety-critical)的应用,分配给这两类应用的硬件资源应当被有效隔离。非安全关键的应用不应当对安全关键的应用产生干扰,无论是空间上(Spatial)的干扰(例如恶意地修改内存)还是时间上(Temporal)的干扰(例如恶意地刷掉缓存)。嵌入式VMM的设计应当考虑这些功能安全的需求。

●可适应性。在服务器领域,常见的操作系统主要是Windows与一些基于Linux的操作系统。但是,在嵌入式领域,VMM通常需要支持很多不同类型的操作系统。其中,有些操作系统主要用于提供用户图形界面以及系统信息的管理与配置,例如Windows、Ubuntu、Android;另外一些操作系统则主要用于实时任务的执行,例如VxWorks、Zephyr、Xenomai、PREEMPT_RT Linux;还有一些操作系统主要用于检测系统运行状态,在故障发生时将系统置于安全状态,例如Zephyr。因此,为了支持应用于嵌入式领域的多种多样的操作系统,嵌入式VMM需要具有较强的可适应性,它应当支持在不同的虚拟计算机内运行不同的操作系统,从而使嵌入式领域的供应商可以非常方便地移植运行在这些操作系统上的应用程序。

传统的应用于云服务器的VMM并不适用于嵌入式领域,主要有以下原因。

●应用于服务器的VMM的代码库通常比较庞大,对系统资源的要求也高(比如对内存和CPU的计算能力的要求),同时也会占用较多的硬件资源。

●应用于服务器的VMM在设计之初没有对功能安全的考量,它的代码体量也使得增加后续的功能安全考量几乎不可能。

●对于嵌入式系统来说,应用于服务器的VMM会引起过多的虚拟化开销。虚拟机之间的性能隔离,特别是对于实时系统的实时性影响也是服务器的VMM难以克服的。

除此之外,友好的软件许可证对于嵌入式VMM来说也至关重要,它可以为嵌入式系统的供应商节约成本,同时为他们保守商业秘密。因此,一个具有包容的许可证(如BSD/MIT)的开源的嵌入式VMM对于嵌入式领域的供应商来说会是一个很好的选择,可以大幅度地减少研发成本,他们可以更多关注于系统集成及其产品的商业化。 7XfTe+XHN12o8iy7kiweD9SCeopQRaFtoXrUhuSfa51dU/8j9SzNOiGlxGdYnNvJ

点击中间区域
呼出菜单
上一章
目录
下一章
×