Using a Hypervisor to Manage Multi-OS Systems Cory Bialowas, Product Manager cory.bialowas@windriver.com
Trends, Disruptions and Opportunity Wasn t life simple? Single-OS: SMP OS OS CPU Single Core Virtualization OS OS Core 1 Core 2 Multi-OS : AMP Multicore Virtualization Hypervisor CPU Multicore OS Core 1 OS Core 2 OS OS OS Hypervisor Virtualization Core 1 Core 2 2
Multicore and/or Virtualization Usage Scenarios Business Drivers Cost Time to Market Safety/Security Performance Features/Differentiators Multicore and/or Virtualization Usage Scenarios Performance Consolidation Separation/Security Migration/Evolution Usability Portability/Scalability Certification Reliability Initial interest often comes from either a multicore or virtualization perspective, however capabilities that may have been initially thought of classified as one or the other will be applicable.
Case Study: Networking Offload Business Concern(s) Cost (Hardware, Development) Performance Usage Scenario(s) Performance Consolidation AMP Configuration Control Plane WR Linux Packet Processing VxWorks Or Exec Packet Processing VxWorks Or Exec... Multicore Processor (> 8, 16, etc. Cores) Packet Processing VxWorks Or Exec Core 0 Core 1 Core 2 Core n Multiple OS, core loading VxWorks: high speed IPC, system level debug and profile Performance of RTOS with rich Linux environment
Case Study: Networking Offload (Protected) Business Concern(s) Cost (Hardware, Development) Performance Usage Scenario(s) Performance Consolidation Reliability Control Plane WR Linux Packet Processing VxWorks Or Exec Packet Processing VxWorks Or Exec WR Hypervisor... Packet Processing VxWorks Or Exec Core 0 Core 1 Core 2 Core n AMP + Automated load, lifecycle mgmt. Memory Protection robustness with low to no overhead Multicore Processor (> 8, 16, etc. Cores)
Case Study: Asset Bridge Business Concern(s) Cost Time to Market Features/ Differentiators Usage Scenario(s) Migration/Evolution Consolidation Usability Existing Application Other OS WR Hypervisor New Application WR Linux Virtualization and/or AMP Leverage and evolve existing assets Innovate and in new environment Networking, Industrial Single or Multicore Processor
Case Study: Safety, Usability Business Concern(s) Cost Safety Features/ Differentiators Usage Scenario(s) Certification Consolidation Usability Virtual Board 1 Virtual Board 2 Safety Critical Human Machine Application Interface Application VxWorks (Certifiable) Wind River Linux or bare metal Wind River Hypervisor (Certifiable) Preserve certification efforts. Innovate and in new environment Industrial, Transport Single or Multicore Processor
Case Study: Evolution, Usability Business Concern(s) Cost Features/ Differentiators Usage Scenario(s) Migration/Evolution Usability Virtual Board 1 Real-time Control Application RTOS Wind River Hypervisor Virtual Board 2 Networking/Graphical Application Wind River Linux Preserve existing assets, continue to meet real-time constraints Innovate and in new environment Single or Multicore Processor
Definitions Virtualization - abstraction of computer resources (cores, memory, other resources), hiding the physical characteristics from the end user (OS or Application) Hypervisor software that provides a virtualization platform allowing multiple OSs (or bare metal virtual boards) to run on a system
Multiple Operating Systems: Challenges 5 - Debug Application 3 Application 3 Wind River VxWorks 2 Wind River Linux Application 2 1 and 4 1 and 4 1 and 4 Physical Board IDE Ethernet Timer Serial Memory Core Core 1. Hardware resource partitioning 2. Multi-OS booting 3. High-speed IPC 4. Resource access/sharing (consoles, network interfaces, file IO) 5. Debug connectivity
Virtual Boards 1) Hardware Resource Partitioning Virtual Board 1 Virtual Board 2 Virtual Board 3 Application Operating System 1 Ethernet VCore Memory DMA Timer BUS Application Operating System 2 Serial Ethernet VCore Memory DMA Timer Application VCore Memory DMA Timer Wind River Hypervisor Physical Board IDE Ethernet Timer Serial Memory Core Core
Device Trees Define Boards 1) Hardware Resource Partitioning Virtual Board 1 Virtual Board 2 Virtual Board 3 Application Operating System 1 Application Operating System 2 Application Device Tree Device Tree Serial Ethernet Ethernet Memory DMA MIPC BUS Memory DMA MIPC Configuration Tool Verification Device Tree Memory DMA Timer Memory DMA MIPC Configuration Commands BUS Ethernet Ethernet Physical Board Timer Serial Memory Core Core
Summary 1) Hardware Resource Partitioning Explicit control of hardware resources Semantic check of logical boards is possible Generated device tree is provided to hypervisor or OS Interrupts steering and mapping (provided by virtual interrupt controller) 13
Booting 2) Multi-OS Booting Boot Image (ELF format) Bare Metal 2 Bare Metal 1 Linux Packaging Tool Hypervisor ELF Image VxWorks ELF Image (vxworks.st) Linux ELF Image (zimage.elf) Bare Metal 1 ELF Image (app1.elf) VxWorks Bare Metal 2 ELF Image (app2.elf) XML Configuration Image Manifest Hypervisor XML Configuration
Summary 2) Multi-OS Booting Ease of building system and loading target Configuration files decoupled from image (change memory regions, interrupt routing, etc.) Integrated Lifecycle Management notification of guest OS failures, ability to manipulate (start/stop/reload) from another guest OS
Tailored IPCs 3) High-Speed IPC Shared Memory High performance MIPC High Performance, Zero Copy OS Independent 20k footprint Hardware Support Static topology TIPC 100k footprint Full Featured Transparent multiboard Dynamic topology Physical Board Physical Board Core 1 Virtual Board Virtual Board App 4 App 5 MIPC MIPC Linux 1 Core Virtual Board Virtual Board App TIPC Linux 1 App TIPC Linux 2 Ethernet Core 2 Virtual Board App 6 MIPC Linux 2 Phys Board App TIPC Linux 3 Ethernet SIPC (Secure IPC)
Summary 3) High-Speed IPC High speed IPC available not just between physical cores, but also between virtual boards Memory protection provided by VMMU ensures IPC does not corrupt system memory, improving reliability Can select between performance (MIPC), transparency (TIPC), and security (SIPC)
Shared Devices 4) Resource Sharing/ Access Virtual Board Virtual Board APP APP NET NET Linux 1 Linux 2 VDD VB MIPC Services VB MIPC Services VDD DM DD Hypervisor Ethernet Use virtual devices when the board has too few physical devices Use existing driver from another OS Share when one OS not using entire capacity of device Transparent to operating system
Shared Networking and I/O 4) Resource Sharing/ Access Virtual Board Virtual Board APP DSSC DIOSC VB MIPC Services VB MIPC Services DSS DIOS NET I/O OS FILE OS DD DD Wind River Hypervisor Ethernet IDE One networking stack and/or file system supports any number of operating systems Smaller footprint than with one stack for each OS Operating system without networking or filesystem can still use them
Summary 4) Resource Sharing/ Access Device/service access is same as unsupervised AMP, however since the IPC between logical boards uses memory protected by the VMMU robustness is improved
Bay N etworks Bay N etworks Bay N etworks Multiple Context Debugging with Workbench 5) Debug Connectivity Multiple Targets One Wind River Workbench instance Target manager Multiple simultaneous connections including shared connections Multiple OS types supported simultaneously Multiple target processors supported simultaneously Multiple Contexts Core, process, or thread Each context has a set of views: Source Stack Registers Host System Target System Control Processors Function Processors Processes/Threads Qualify breakpoints on a process or specific thread Stop the entire process or an individual thread Target boards may be any mix of physical, logical, or virtual boards and any mix of up or SMP VxWorks and Wind River Linux - and bare metal sw. 21
Virtualization and Multicore with Workbench 5) Debug Connectivity Host System with Wind River Workbench WDB TCP/IP WDB MIPC WDB OCD Wind River Linux Logical Logical Board Board Logical Board Wind River Linux VxWorks Logical Logical Board Board Logical Board Wind River Linux Logical Logical Board Board Virtual Board Wind River Linux VxWorks Logical Logical Board Board Virtual Board Wind River Hypervisor (Multicore) Physical Board
Multicore Multiprocessing Core Virtualization CORE SMP AMP Virtualization Bare CORE CORE CORE CORE Virtual Board Virtual Board Virtual Board Virtual Board Virtual Board VCore Mem Timer SMP OS VxWorks Linux VxWorks VCore IDE Bus VC M T Serial VC M T VC M T VC M T E Wind River Hypervisor Configuration Eth Serial Bus Memory Core Core Core Core Core
Protection and zero-overhead Core Protection Virtual Board Virtual Board Virtual Board Virtual Board Windows Linux Core Mem Core Eth VCore M Legacy VCore M Wind River Hypervisor Eth Serial Memory Core Core Core Core VxWorks Memory Eth Configuration Windows, Linux and Legacy are protected from each other, but not from VxWorks VxWorks is protected from all other guests VxWorks directly accesses all its hardware, Hypervisor does not execute on VxWorks core
Conclusions Multi-OS AMP designs are workable and the best solution in some situations. Introducing a hypervisor provides advantages: Development productivity (automated partitioning, fewer faults, debug improvements) More robust systems (memory protection, interrupt handling, lifecycle management) Optimization of hardware resources (shared resources, core virtualization, leverage hardware virtualization features) 25
Wind River for Virtualization Based on single point of failure avionics technology and undergoing multi-million dollar evaluation to EAL6+ for security Optimal integration with Wind River operating systems and open/flexible to support other operating systems Extensive hardware support (PPC, Intel, MIPS, ARM, others) Hypervisor s scalability allows balancing of security, reliability and safety against performance and footprint Wind River Workbench provides configuration, flexible debug approaches, and performance analysis and tuning. Also, it isn t just about virtualization, needs to be part of a comprehensive multicore software solution
Wind River s Multicore Software Solution 1. Flexible multicore software configurations (SMP/AMP/Virtualization and combinations thereof) 2. Support for real-time (VxWorks) and general purpose (Wind River Linux) OSs - and the openess/flexibility to support other operating systems and executives 3. High speed, transparent, and/or secure IPC infrastructure across board, core, and operating system boundaries 4. Optimized middleware for multicore (networking offload/crypto) 5. Tools to configure, debug, analyze, and optimize entire multicore and multi-os systems
Looking forward Wind River s Multicore Software Solution provides for the optimization of devices by allowing device makers to get the most out of new hardware, leverage existing software assets, and innovating with new software. Future proofs investments by being adaptable to future hardware and software as it becomes available.
Wind River s Multicore Software Solution http://www.windriver.com/announces/multicore-software/index.html?home=1
8548 Multi-OS Demonstration Technology Lab