真正催生虚拟化技术快速部署和发展的是云时代春天的到来。开源虚拟化技术和Linux开启了云计算时代的新篇章。虚拟机可以作为服务提供一系列独特功能,例如,弹性资源共享、快速部署、集中IT管理等。这个起始于大型电商的内部技术革新迅速成长为一种公共服务,替代了服务器托管模式,也构成了云计算时代的基础。
如果说“云”虚拟化是上一次的技术风口,那么“物”虚拟化将会是下一个不容错过的技术风口。物联网的核心是嵌入式设备,那么为什么一个嵌入式系统会需要虚拟化技术呢?
如图1-4所示,嵌入式虚拟化技术的兴起主要有三个因素。第一,随着半导体技术的发展,摩尔定律推动硬件的性能提升、成本下降,今天的嵌入式SoC的性能甚至会超过服务器。第二,无处不在的CPU多核技术的发展自然能够支持多个系统。第三,出于节约成本考虑,系统整合并重用已有的软件系统,降低移植工作量,减少硬件系统的互连,降低整体硬件系统的复杂度,可以把多个不同类型的操作系统和业务整合在一套硬件系统上,实现“异构”负载的整合,例如,可以是实时的和非实时的整合,也可以是安全的和非安全的整合,从而大大提高系统的灵活性、可扩展性及可维护性。
图1-4 嵌入式虚拟化技术兴起的三个因素
这种业务整合依然得益于20年前的虚拟化技术思路。虚拟化技术可以完全隔离不同的操作系统,保证它们互不影响;虚拟化技术虚拟的硬件可以继续支持原来旧的操作系统,保护过去的软件投资并实现平滑的业务演进;虚拟化技术的多虚拟机操作系统支持可以让硬件充分发挥其算力,从而在整体上提高系统的投资回报率。
虽然两种技术同根同源,但是嵌入式虚拟化技术和传统云虚拟化技术还是有区别的,如图1-5所示。
●目标定位不同,云虚拟化技术关注服务器的热迁移、弹性资源分配、灵活管理;而嵌入式虚拟化技术关注实时性、功能安全(functional safety)、可确定性及小尺寸(foot print)等。
●可用的资源多寡不同。云服务器系统的计算能力和内存等资源远远多于嵌入式系统,而后者对资源的使用“斤斤计较”。
●软件发布模式不同。云服务器系统软件是同一个发布的二进制代码部署在所有的服务器上运行,而嵌入式系统软件和设备绑定,多数是定制系统。
图1-5 云虚拟化技术与嵌入式虚拟化技术的异同