The most widely deployed mobile virtualization solution
The relevance of virtualization in embedded systems stems from the ability to address some of the new challenges posed by them.
One is support for heterogeneous operating-system environments, as a way to address the conflicting requirements of highlevel APIs for application programming, real-time performance and legacy support. Mainstream application OSes lack the support for true real-time responsiveness (efforts to address this notwithstanding) and they are unsuitable for supporting the large amount of legacy firmware running on present devices (e.g. mobile-phone baseband stacks alone can measure several Mloc).
Virtualization can help here, by enabling the concurrent execution of an application OS (Linux, Windows, Symbian, ...) and a real-time OS (RTOS) on the same processor (see Figure 1). Provided that the underlying hypervisor is able to deliver interrupts reliably fast to the RTOS, the latter can then continue to run the (legacy) stack providing the device’s real-time functionality. The application OS can provide the required commodity API and highlevel functionality suitable for application programming.
Note that the same can be achieved by using multiple processor cores, each running their own OS, provided there is some hardware support for securely partitioning memory. Multicore chips are proliferating and the incremental cost of a core is dropping dramatically. Furthermore, two lower-performance cores (which can be put to sleep individually) are likely to have lower average power consumption than a single higher-performance one, owing to strong non-linearities in power management [22, 23]. Hence, on its own, this usage scenario is likely only of relevance for a few years. We note, however, that virtualization supports architectural abstraction, as the same software architecture can be migrated essentially unchanged between a multicore and a (virtualized) single core.
Forthcoming manycore chips provide a different, more longerterm motivation for using virtualization. With a large number of processors, it is likely that embedded systems will be facing issues not unlike the reasons behind today’s use of virtualization in the enterprise space. A scalable hypervisor could form the basis for deploying poorly-scaling legacy operating systems on a large number of cores, by partitioning the chip into several smaller multiprocessor domains. A hypervisor can dynamically add cores to an application domain which requires extra processor power, or can manage power consumption by removing processors from domains and shutting down idle cores. (Note that this requires that the application OS can deal with a changing number of CPUs.) The hypervisor can also be used for setting up redundant domains for fault tolerance in a hot-failover configuration.
Defense-Grade Security for the Rest of Us
Build Secure Smartphones for the Enterprise
Learn How to Build a More Secure Smartphone
Build Mass-Market Smartphones with Mobile Virtualization
SecureIT Mobile Government White Paper (Chinese Version)
SecureIT Mobile Enterprise (Chinese Version)
Energy Management
Build a Smartphone for the Mass-Market (Korean Version)
The NirvanaPhone Concept Specification and Reference Architeture
Motorola Evoke Teardown
seL4: Formal Verification of an OS Kernel
Automatic Device Driver Synthesis with Termite
The Motorola Evoke QA4 - A Case Study in Mobile Virtualization
Android Migration at the Speed of Light
Virtualization and Componentization in Embedded Systems
Virtualization for Embedded Systems
Role of Virtualization in Embedded Systems
Your System is Secure? Prove it!
Towards Trustworthy Computing Systems: Taking Microkernels to the Next Level
Secure Embedded Systems Need Microkernels