You are on page 1of 21

CELLS

A Virtual Mobile Smartphone Architecture


Jeremy Andrus, Christoffer Dall, Alexander Vant 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

Personal
Work phone
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. Modify device sub system
Event handlers
III. 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.