Cells: Lightweight Virtual Smartphones

Smartphones are increasingly ubiquitous, and many users carry multiple phones to accommodate work, personal, and geographic mobility needs. We present Cells, a virtualization architecture for enabling multiple virtual smartphones to run simultaneously on the same physical cellphone in an isolated, secure manner. Cells introduces a usage model of having one foreground virtual phone and multiple background virtual phones. This model enables a new device namespace mechanism and novel device proxies that integrate with lightweight operating system virtualization to multiplex phone hardware across multiple virtual phones while providing native hardware device performance. Cells virtual phone features include fully accelerated 3D graphics, complete power management features, and full telephony functionality with separately assignable telephone numbers and caller ID support. We have implemented a prototype of Cells that supports multiple Android virtual phones on the same phone. Our performance results demonstrate that Cells imposes only modest runtime and memory overhead, works seamlessly across multiple hardware devices including Google Nexus 1 and Nexus S phones, and transparently runs Android applications at native speed without any modifications.

Related Publications

Cells: A Virtual Mobile Smartphone Architecture

Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP 2011), October 2011

Abstract

PDF

 

KVM for ARM

Proceedings of the 12th Annual Linux Symposium, July 2010

Abstract

PDF

 

The Design and Implementation of Zap: A System for Migrating Computing Environments

Steven Osman, Dinesh Subhraveti, Gong Su, Jason Nieh
Proceedings of the 5th Symposium on Operating Systems Design and Implementation (OSDI 2002), December 2002

Abstract

PDF

 

SOSP 2011 Demo

SOSP 2011 Presentation

Resources

Columbia University Department of Computer Science