1.3.1 嵌入式Hypervisor概述

随着互联网和无线通信等技术的发展,越来越多的嵌入式设备已经接入互联网,可以同传统的PC一样跨越空间和时间的限制去获取更多的信息,但也带来了类似PC的信息安全问题。随着应用的复杂化,嵌入式设备大量使用定制化操作系统,因此与GPOS一样会存在安全漏洞和设计缺陷,导致软件可靠性和防危性下降,研发周期加长,风险增加,所以保障嵌入系统的可靠性变得愈加重要。

1.传统嵌入式系统面临的挑战

目前传统嵌入式系统面临的安全问题主要包含以下3个方面。

1)嵌入式系统软件和应用程序本身的漏洞。操作系统设计与实现中的错误会留下被入侵的安全隐患,比如内存保护机制缺失、缓存溢出漏洞等。

2)病毒、特洛伊木马程序等网络攻击。

3)人为操作导致的破坏。有些嵌入式系统的配置和操作比较复杂,很可能出现人为操作错误,留下安全隐患。

相比普通的嵌入式系统(iOS或者Android)而言,任务关键型和以安全为中心的嵌入式系统对安全性的要求十分苛刻。如果普通的嵌入式系统遇到某个程序运行失效,只会造成系统资源的消耗和较差的用户体验。而在侧重安全和可靠性的操作系统中,如果部分应用程序运行出错就放弃执行,那么必将导致灾难性的后果。比如,飞行控制系统一旦放弃执行应用程序就会面临坠机风险。因此,如何保证嵌入式系统的防危能力,避免由于系统缺陷或操作人员的误操作导致灾难性事故的发生,是当前嵌入式领域十分重要的研究课题。

构造高可靠性的嵌入式系统,首先要从软件架构的设计上着手,着重解决容错性、实时性等问题。嵌入式Hypervisor正是满足这方面需求的不二之选。

2.嵌入式Hypervisor的特点

嵌入式Hypervisor具有以下特点。

1)高效性。Hypervisor一般都力求提高效率,但嵌入式Hypervisor受到内存、外围设备、功耗等方面的限制,必须能够非常精简且高效地使用硬件资源。

2)代码量小。应用程序的代码量越少,就越容易查找错误。一些嵌入式Hypervisor的供应商就是通过数学方法验证Hypervisor有没有错误。Hypervisor是系统中唯一以特权模式运行的软件,Hypervisor包含的错误越少,平台就越安全可靠。

3)多核系统支持。目前,新的嵌入式处理器普遍利用多核架构来提高性能,嵌入式Hypervisor可以管理底层架构,为遗留应用程序提供单处理器环境,同时有效支持多核处理器进行系统设计。

4)实时性。具有实时性要求的虚拟机内部应用程序必须以可预测的方式执行。虚拟机应用的实时性受到底层软件(即Hypervisor和客户操作系统)和硬件的影响。从Hypervisor的角度来说,可预测性涉及Hypervisor所提供的服务以及虚拟机中的客户操作系统。嵌入式Hypervisor提供给虚拟机的服务必须具有可预测性,以满足虚拟机的确定性要求。比如对无人机系统来说,Hypervisor可以保证飞控系统和第三方应用程序(图传系统)共享硬件平台并相互隔离,并保障运行飞控系统的虚拟机满足实时性要求。


提示:这里的“实时”表示控制系统能够及时处理系统中发生的、要求控制的外部事件。从事件发生到系统产生响应的反应时间称为延迟。对实时系统来说,一个最重要的条件就是延迟有确定的上界(这样的系统属于确定性系统)。因此本书中实时性和确定性为同义词,指的是对外部事件的响应时间具有一个确定的上界。


3.嵌入式Hypervisor的应用领域

嵌入式Hypervisor在以下4个领域有着成熟的应用。

1)在航空领域,ARINC653标准已经是IMA(Integrated Modular Avionics,综合模块化航空电子设备)架构的标准应用接口,符合ARINC653标准的Ⅰ型Hypervisor是航空电子系统领域的基础软件。

2)在车载领域,汽车通过在若干个互相隔离的虚拟机上分别运行车载娱乐操作系统、AUTOSAR(汽车开放系统架构)操作系统和RTOS,使得软件系统可以在异常检测、故障隔离方面开展更多工作,并确保一旦出现问题,故障也能够在早期被识别和处理,避免故障向其他领域蔓延。

3)在工业领域,目前,工业领域中的设备和传感器越来越多地与互联网连接,Hypervisor可以用于管理和隔离这些设备之间的不同应用程序,以确保安全性和可靠性。

4)在医疗领域,安全性和隔离性至关重要。Hypervisor可以简化功能组件的更新过程,通过在虚拟机级别进行更新,减少对整个设备的干扰;Hypervisor支持冗余配置和备份虚拟机,确保即使在硬件或软件发生故障的情况下,设备仍然可用。