The most widely deployed mobile virtualization solution
The software architecture uses two virtual machines, one running Linux, the other BREW. The software architecture that was chosen for the Evoke is schematically shown in Figure 3.1: Two virtual machines, running on top of the OKL4 microvisor, interact via OKL4 message-passing IPC as well as shared memory.
The complete Linux system is de-privileged, executing in user mode. The complete AMSS/BREW baseband stack and OS also run in user mode. This is a no-compromises design using proper virtualization without shortcuts.
The virtualization overhead is kept to almost unnoticeable levels by the high-performance OKL4 Microvisor. In fact, in many respects it is better than what would be achievable with Linux running native.
This is made possible by the fast-context-switching technology [WTUH03, vSH07] that is unique to OK Labs products. Through smart management of the address space, and utilising every last feature of the ARM9’s MMU, OKL4 avoids flushing caches and TLBs on context switches, without sacrificing performance. This results in the seemingly paradoxical situation that virtualized Linux can outperform native Linux.
Figure 3.2 demonstrates how context-switching latencies in OK:Linux are dramatically reduced compared to native Linux. The improvement is particularly large if the number of presently active processes is small—a typical situation for mobile phones. The boost in context-switching performance especially benefits the Evoke’s user interface.
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