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. |
| Guest Software | Complete OS + Applications | Enterprise and Embedded OSes + Applications and/or Standalone Code |
| 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 | ![]() |
![]() |
| IP Isolation | ![]() |
|
| Legacy Code Reuse | ![]() |
![]() |
| Load Balancing | ![]() |
|
| Prototyping | ![]() |
![]() |
| Partitioning Complex SW | ![]() |
|
| Real-time (RTOS+GPOS) | ![]() |
|
| Security Sandboxing | ![]() |
|
| Trusted/Trustworthy Computing | ![]() |
|
Comparison of Enterprise/Desktop Virtualization and Embedded Virtualization
One of the most important differences between enterprise and embedded use of virtualization is architectural.
Get
|
|