Cells: Lightweight Virtual Smartphones

Cells is the first open-source virtualization architecture that enables multiple virtual smartphones and tablets to run simultaneously on the same physical device. Leveraging lightweight virtualization work done on Linux containers, Cells introduces a new device namespace framework that allows kernel and user space drivers to efficiently multiplex access to hardware. Unlike traditional virtual machine approaches that are too heavyweight for smartphones and tablets, the Cells device namespace framework is lightweight and provides native hardware performance when running multiple virtual phones or tablets. This includes fully accelerated 3D graphics, providing the same visual user experience for graphics-intensive applications that users have come to expect from their mobile devices. Cells transparently runs Android applications at native speed without any modifications, so you can use all your favorite applications from the Google Play store.

Cells has many uses. Multiple, isolated, virtual devices on the same phone can allow business professionals to carry a single phone that contains both corporate and personal phones, providing an efficient, high performance BYOD solution. Application developers can use multiple virtual devices to test different applications and configurations. Cells also gives parents a way to isolate applications and settings in a kid-friendly virtual tablet while simultaneously running a full-featured tablet configured with private email addresses and applications on the same physical tablet.

We invite anyone interested to download, build, and play with Cells. Our open-source release runs on the widely-used Nexus 7 tablet with the latest version of Android, Jelly Bean 4.3. Please follow the links below to see a demo of the system, read about technology behind the system, and download, build, and play with the system. Contributions are welcome.

While Cells is an open source GPL project, it has also been commercially licensed by Cellrox. For further information regarding the commercial release, please contact Cellrox.

We are pleased to release Cells source-code as open-source under the GNU GPLv2.
Instructions on how to download and build can be found here.
Instructions on how to become a registered Cells developer can be found here.
The Cells source code review site is https://cells-source.cs.columbia.edu/.

Related Publications

The Design, Implementation, and Evaluation of Cells: A Virtual Smartphone Architecture

ACM Transactions on Computer Systems (TOCS), Volume 30, Issue 3, August 2012

Abstract

PDF

 

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

 

This material is based upon work supported by the National Science Foundation under Grant Number CNS-1162447. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Columbia University Department of Computer Science