一个 Hypervisor 不仅仅是如图3所示的简单分离,它还提供了一种机制限制周边设备进入特定的应用程序域。就车载信息娱乐系统而言,我们可能想要限制对车载 CAN 总线的使用,只允许车载信息娱乐系统接入CAN数据,而联网的 Android 应用程序接入数据只能通过进程间通信(IPC)和基于 Linux 车载信息娱乐系统应用程序。同时,我们想要 Linux 和 Android 都可以使用 本地的记忆卡查看媒体文件。图4说明了一个 Hypervisor 如何允许我们直接映射及准虚拟化外围设备。这使得开发者能够限制访问CAN总线及实现如记忆卡等其它资源的共享。
用一个Hypervisor来分离和共享外围设备。
在真实场景中测试可靠性
到现在为止我们已经说明了设计物联网系统的两种可能的方法,实时操作系统的使用和类型1 Hypervisor。当然多种不同的变更和理想的方法还要取决于具体的设备。然而所有连接系统都会受益于某种程度的测试以确保其实地操作的正确性。对连接设备的自动化安全峰值测试和压力测试就是一个例子,说明协议栈或过程控制功能的失败是可以检测的。此外,设备的功能性健康是可以在模拟攻击中确定的。应该执行的其他测试包括发送无效或分散的数据包,执行测试框架,探测已知的软件栈的漏洞。执行这些测试可以增加连接设备在实际应用中的鲁棒性。
可更新性设计
移动设备的用户熟知需经常性升级设备,修补漏洞,添加安全更新或增加设备性能 -- 所有这些都毫不费力地通过“空中下载技术”来完成。基于实时操作系统的进程模式和使用类型1 Hypervisor 都能促进嵌入式系统的设计,该系统可以一种安全的方式通过空中下载技术实现更新。通过分离可不断加载和卸载的应用子系统,这两种方法可随着时间的推移更新特定子系统,修复漏洞或在开发和实际应用时解决可靠性问题。
结论
物联网设备的广度和相关功能经常需要开发人员集成来自多种途径的代码,包括国内的,商业的和开源的。所有这些都会增加对物联网(IoT)联网设备的灵敏度和可靠性的负面冲击。使用包含进程模式的实时操作系统来分离应用子系统和使用类型1 Hypervisor 来整合多个操作系统对于在应用程序和系统中引进互联性是有效途径, 因后者在执行过程中需要较高水平或可靠性。
除了选择合适的系统架构和技术方法,设计师还必须及时添加额外的测试来确保正确的操作,考虑设备的整个操作生命周期,具备快速,无缝,尽可能轻松地更新设备软件的能力。
###
作者简介
Kamran Shah 是 MentorGraphics 嵌入式软件部市场总监。他充当多个技术角色,包括产品营销,产品管理和研发。在他的整个职业生涯中,Kamran 引领了嵌入式系统开发领域的创新,包括异构目标、软件定义无线电系统和基于云的开发工具和服务。Kamran 获得了15项专利,于1999年毕业于德克萨斯 A&M 大学,取得计算机工程学士学位。
关于 Mentor Graphics
Mentor Graphics 公司是电子硬件和软件设计解决方案(EDA)的全球领导者,为世界上最成功的通信、半导体,计算机,消费电子,汽车电子和国防军工公司提供优质产品、咨询服务和支持, 可加快客户电子及机械产品的研发速度,提高产品质量,增加成本效益。工程师可借助公司不断推出的新产品及解决方案,应对日趋复杂的电路板及芯片设计领域面临的挑战。Mentor Graphics 公司拥有业内最为丰富的顶级产品线,提供完整的 SOC/IC/FPGA/PCB/SI 设计工具和服务,并且是唯一一家拥有嵌入式软件解决方案的 EDA 公司。公司成立于1981年,目前有超过70家分公司分布世界各地。