本文介绍了如何利用虚拟化技术设计嵌入式系统,并详细阐述了系统架构师在设计过程中需要考虑的10个关键步骤。
1. 操作系统选择
根据系统需求选择合适的操作系统组合,如Linux(网络应用)、Windows(图形界面和应用程序兼容)和VxWorks(实时性能)。每个操作系统将在独立的虚拟机(VM)中运行,需要分配独立的CPU核心、内存和设备资源。
2. 处理器配置
现代处理器(如ARM、Intel、Freescale)提供硬件虚拟化支持(虚拟化扩展、V-PRO、e500mc),需确保足够的CPU核心数满足各操作系统需求,并考虑超线程技术对性能的影响。同时,需为每个VM分配足够的内存资源。
3. 安全与认证
根据安全标准(如IEC 61508、ISO 26262)确定系统安全等级,虚拟化层需满足安全要求,如通过安全启动和镜像验证。虚拟化可提高安全性,通过在单一硬件上运行多个安全应用实现冗余,或结合不同安全等级的VM。
4. 启动过程
在满足安全和安全需求的前提下,设计系统启动流程。启动过程通常包括BIOS/早期固件、引导加载程序、嵌入式软件(含虚拟化组件)和虚拟机启动。RootOS负责管理VM启动,内核可内嵌或存放在本地/远程存储中。
5. 输入/输出配置
VM需通过I/O设备与外部世界通信,典型设备包括网络卡、串口、图形卡等。直接分配(Pass-through)方式为VM提供设备直接访问权限,但仅支持单一VM使用;虚拟I/O方式通过虚拟设备实现多VM共享,需考虑性能开销。
6. 虚拟I/O技术
当物理设备不足或需VM间通信时,采用虚拟I/O技术。虚拟化层提供虚拟PCI总线、中断控制器等,并通过Para-virtualization实现高效访问。VxWorks支持VirtIO标准,提供虚拟串口和虚拟存储功能,VM通过软件访问点与RootOS协作。
7. 性能优化
性能取决于系统配置(核心数、内存、设备分配)和负载。需通过基准测试和调优(如内存/核心重分配、中断/任务优先级调整)确保系统满足实时性要求,必要时可对VM进行“节流”处理。
8. 系统升级
嵌入式系统需支持现场升级,虚拟化系统需规划升级方案。例如,Linux VM可通过云连接获取新镜像,再通过RootOS存储并更新VM或整个系统。
9. 开发工具
VxWorks提供丰富的开发工具,包括命令行操作、调试接口和Wind River Workbench集成开发环境。硬件调试器(如Lauterbach TRACE32)可提供操作系统底层硬件访问能力。
结论
虚拟化技术为系统设计提供高度灵活性,克服硬件限制,实现多应用部署。通过合理配置操作系统、处理器、安全、启动、I/O、性能、升级和开发工具,可充分发挥虚拟化优势。Wind River提供全面的嵌入式虚拟化解决方案,支持多架构并辅以专业服务和生态系统支持。