Mobile and Embedded Systems

Virtualization is a mainstream technology for enterprise computing, with both desktop and server applications, and is becoming a “killer” application enabler in mobile and embedded settings. On workstations, virtualization lets developers and end-users run software written and packaged for one OS on another, for example, letting Linux and MacOS users run tools and productivity applications written for Microsoft Windows operating systems (and vice versa). In data centers on servers and blades, virtualization supports needs as diverse as legacy code migration, load balancing, security “sand boxing”, and supporting VM-based high availability.

For mobile and embedded applications, virtualization serves comparable purposes with several key differences:

  Enterprise Virtualization Mobile/Embedded Virtualization
Microprocessor Architectures Intel and AMD x86 x86 and ARM, Power Architecture, MIPS, etc.
VM Interaction
Completely independant VMs
Independant VMs
Guest OSes Windows, UNIX/Linux, legacy mainframe and minicomputer OSes Linux, WindowsMobile, SymbianOS, RTOSes (VxWorks, Nucleus, etc.)
Guest OS Instances Dynamic mix of many instances of similar guest OSes Static mix of fewer instances of dissimilar guest OSes
Hypervisor Footprint 300K lines of source, MB of code Thousands of lines, < 100 KB code
Key Applications
Hardware Consolidation Yes Yes
IP Isolation   Yes
Legacy Code Reuse Yes Yes
Load Balancing Yes  
Prototyping Yes Yes
Partitioning Complex SW   Yes
Real-time (RTOS+GPOS)   Yes
Security Sandboxing Yes Yes
Trusted/Trustworthy Computing Yes Yes
Power Management Yes Yes


▲ Back to Top