CELLS A Virtual Mobile Smartphone Architecture Jeremy Andrus, Christoffer Dall, Alexander Van t Hof, Oren Laadan, Jason Nieh Columbia University 23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal, October 2011
Outline: Introduction Usage Model System Architecture Graphics Power Management Telephony Networking Experimental Results Conclusion Limitations
Introduction: Platform shifting from computers to smartphones Need of Virtualizing smartphones CELLS: lightweight virtualization architecture Work phone Personal phone
Basic Approach1: Server virtualization Bare-Metal Hypervisor OKL4 Microvisor Red Bend VLX Disadvantages: Single VP access No Simultaneous access Poor support
Basic Approach2: Desktop virtualization Hosted Hypervisor Host Kernel VMware MVP Disadvantages: Emulation overhead Multiple Kernels
Challenges: Device diversity: Cell Radio, GPU, Framebuffer, Binder IPC, Touchscreen, Accelerometer, pmem, Compass, Microphone, Headset, Power, Buttons, GPS, h.264 accel.,speakers, Camera(s). Mobile usage model Graphics- accelerated UI
Usage Model: CELLS Isolated virtual phones Foreground/Background model Switching of virtual phones Virtual phone creation deletion Virtual phone access rights No access VP no access to the GPS sensor Shared access Foreground VP with shared access to audio device allows Background VP to play music Exclusive access Secure VPs
Architecture: Lightweight OS virtualization for virtual phones isolation Single OS kernel Virtualizes identifiers, kernel interfaces and hardware resources Transparently remapping OS resource identifiers to virtual ones
Kernel-Level Device Virtualization: Device namespaces Hardware resource multiplexing and isolation Virtualize process identifiers Call back functions 3 methods I. Device driver wrapper II. III. Modify device sub system Event handlers Modify Device driver to be aware of name spaces
User-Level Device Virtualization: Name space proxy mechanisms Proprietary/entirely closed source Virtualize device configuration Kernel device namespaces export an interface to the root namespace through the /proc filesystem that is used to switch the foreground VP and set access permissions for devices. CellD also coordinates user space virtualization mechanisms such as the configuration of telephony and wireless networking
Graphics: Existed Approaches: 1. Single assignment 2. Emulated hardware Proposed approach: Mux_fb driver Independent Graphics context
Power Management: Frame buffer early suspend: Fbearlysuspend driver exportsts display device suspend and resume state into user space. Block all processes using display while display powered off/ redraws screen when powered on. Wake locks: Two states Active- locked Inactive- unlocked Created at compile time by kernel drivers or user space
Telephony: Radio stack virtualization RIL proxy CELLS own proxy RIL library by RILD RIL library + CELLD=RIL proxy Multiple phone numbers Pairing cells with VOIP service Single digit scheme Asterisk server
Networking: IEEE 802.11 wireless LAN Virtualization of core network resource Unique wireless configuration management virtualization User level device namespace proxy RIL libraries CELLD
Experimental Results: Setup Devices: I. Google Nexus 1 Qualcomm 1 GHz QSD8250, Adreno 200 GPU,512 MB RAM II. Google Nexus S Samsung Hummingbird 1 GHzCortex A8, PowerVR GPU, 512 MB RAM Android Platform(any version) Five virtual phones
Experimental Results: Setup Benchmarks Used: I. Linpack - CPU II. Neocore - Graphics III. Quadrant - Storage IV. Sun Spider - Web browsing V. Custom WiFi Test - Networking
Results:
Results:
Conclusion: First complete OS virtualization for mobile devices. Device namespaces + Foreground/Background = Complete virtualization Less overhead No visible performance variation for benchmark configurations
Limitations: Service cost. No hardware virtualization support. Finding notifications from Background virtual phones while other virtual phone is on foreground.