Columbia University in the city of new york

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

A Lightweight OS-Level Virtualization Architecture Based on Android Bo-wen LIU, Nai-jie GU and De-he GU

Cider. Native Execution of ios Apps on Android. Alexander Van't Hof, Naser AlDuaij, Christoffer Dall, Nicolas Viennot, Jason Nieh. Columbia University

Virtualisation on Mobile Devices {Hugo Marques, Nuno Conceição, Luis Pereira}

PINPOINT: Efficient & Effective Resource Isolation for Mobile Security. & Privacy

Android - open source mobile platform

POSIX Abstractions in Modern Operating Systems: The Old, the New, and the Missing

Improving Mobile Device Security with Operating System-Level Virtualization

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

SMARTPHONE HARDWARE: ANATOMY OF A HANDSET. Mainak Chaudhuri Indian Institute of Technology Kanpur Commonwealth of Learning Vancouver

Android In Industrial Applications. A Field Report

Facing the Reality: Virtualization in a Microkernelbased Operating System. Matthias Lange, MOS, January 26th, 2016

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

Xen Automotive Hypervisor Automotive Linux Summit 1-2 July, Tokyo

Module 1: Virtualization. Types of Interfaces

How Mobile SDKs Help You

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

OMAP Android Integration

Knowledge Workers Task Workers. Minimal or No GPU Utilization Use existing clear text codec (no significant investments) Professional Users R R R

Kick Start your Embedded Development with Qt

Virtualization. Dr. Yingwu Zhu

Qt for Device Creation

Android framework. How to use it and extend it

Firefox OS App Days. Overview and High Level Architecture. Author: José M. Cantera Last update: March 2013 TELEFÓNICA I+D

Introduction To Android

Virtualizaton: One Size Does Not Fit All. Nedeljko Miljevic Product Manager, Automotive Solutions MontaVista Software

Android Overview. Most of the material in this section comes from

Lecture 5. KVM for ARM. Christoffer Dall and Jason Nieh. 5 November, Operating Systems Practical. OSP Lecture 5, KVM for ARM 1/42

UC-One Implementation Guide

Real-Time Cache Management for Multi-Core Virtualization

Mobile and Wireless Systems Programming

Fusing Sensors into Mobile Operating Systems & Innovative Use Cases

Transplantation of VirtualBox to the NOVA microhypervisor. Norman Feske

Profiling and Debugging Games on Mobile Platforms

Lecture 13 IoT and Augmented Reality

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

IBM Research Report. A Comparison of Virtualization Technologies for Use in Cloud Data Centers

Sony develops transparent lens eyewear SmartEyeglass - Announces availability of software development kit -

PowerForecaster: Predicting Smartphone Power Impact of Continuous Sensing Applications at Pre-installation Time

Multiprocessor Scheduling. Multiprocessor Scheduling

Android on Tizen. Moscow State University

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

ios vs Android By: Group 2

Smart Antennas and Hypervisor: Enabling Secure Convergence. July 5, 2017

Virtual Machine Monitors!

General-purpose computing with VirtualBox on Genode/NOVA. Norman Feske

An overview of mobile and embedded platforms

Distributed Systems COMP 212. Lecture 18 Othon Michail

WearDrive: Fast and Energy Efficient Storage for Wearables

SE 3S03 - Tutorial 1. Zahra Ali. Week of Feb 1, 2016

The Benefits of GPU Compute on ARM Mali GPUs

Vulkan: Scaling to Multiple Threads. Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics

Operating Systems 4/27/2015

SFO17-410: NEVE: Nested Virtualization Extensions for ARM

Virtualization (II) SPD Course 17/03/2010 Massimo Coppola

Improving Mobile Device Security with Operating System-Level Virtualization

I/O and virtualization

2010 PROFIT. Research & Education. Tim Cheng ( 鄭光廷 )

Track Three Building a Rich UI Based Dual Display Video Player with the Freescale i.mx53 using LinuxLink

Mobile Application Development

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

Operating System Virtualization: Practice and Experience

Android Gingerbread Manually Update To Jelly Bean Features

CSE 120 Principles of Operating Systems

Enabling a Richer Multimedia Experience with GPU Compute. Roberto Mijat Visual Computing Marketing Manager

MDR Presentation SmartWheel

Research about Virtualization of ARM-Based Mobile Smart Devices *

Virtual Communications Express Quick Start Guide UC Clients Desktop/Mobile/Tablet

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

UI, Graphics & EFL. Carsten Haitzler Principal Engineer Samsung Electronics Korea Founder/Leader Enlightenment / EFL

Overview of Frameworks: Part 3

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

Ubuntu Desktop Certified Hardware Coverage for LTS Version 1.3

IO virtualization. Michael Kagan Mellanox Technologies

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

.org. IoT Development Platform

Micro VMMs and Nested Virtualization

OpenEZX and OpenMoko, truly free software for mobile phones

Software Defined Modem A commercial platform for wireless handsets

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior

A Characterization of State Spill in Modern OSes

Björn Döbel. Microkernel-Based Operating Systems. Exercise 3: Virtualization

Launching StarlingX. The Journey to Drive Compute to the Edge Pilot Project Supported by the OpenStack

Khronos and the Mobile Ecosystem

Virtualization. Michael Tsai 2018/4/16

Full Scalable Media Cloud Solution with Kubernetes Orchestration. Zhenyu Wang, Xin(Owen)Zhang

EMBEDDED SYSTEMS AND MOBILE SYSTEMS

Google Android. 2008/3/10 NemusTech, Inc. Lee Seung Min

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

LINUX Virtualization. Running other code under LINUX

Developer s overview of the Android platform

Android for Java Developers Dr. Markus Schmall, Jochen Hiller

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

WebSphere Puts Business In Motion. Put People In Motion With Mobile Apps

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

Verizon Bluetooth Use Manual For Samsung Galaxy S4 Mini I9195

Minds-on: Android. Session 1

Wireless Internet Platform for Interoperability (WIPI(

Introduction What is Android?

Transcription:

A virtual Smartphone Architecture Jeremy Andrus Christoffer Dall Alexander Van t Hof Oren Laadan Jason Nieh Columbia University in the city of new york 1 23rd ACM Symposium on Operating Systems Principles, Cascais, Portugal, October 2011

Motivation Architecture Overview Graphics Cell Radio Evaluation Demo Personal Phone Business Phone Developer Phone Children s Phone 2

Motivation Overview Architecture Graphics Cell Radio Evaluation Virtualization 3 Demo

Server Virtualization Bare-Metal Hypervisor poor device support / sharing OS Kernel OS Kernel OS Kernel Hypervisor / VMM Hardware 4

Desktop Virtualization poor device performance host user space Hosted Hypervisor OS OS OS Hypervisor / VMM Host OS Kernel kernel module emulated devices 5 Hardware

Non-Virtualization User Space SDK no standard apps less secure custom user space API for isolated apps OS Kernel Hardware 6

Key Challenges device diversity microphone headset Power Touchscreen Buttons GPS Cell Radio WiFi GPU Framebuffer h.264 accel. pmem Binder IPC Compass camera(s) speakers Accelerometer RTC / Alarms mobile usage model graphics-accelerated UI 7

Cells 8

Motivation Overview Architecture Graphics Cell Radio Evaluation Demo Cells Key Observation small: one app at a time large: lots of windows/apps 9

Cells Key Observation screen real-estate is limited, and mobile phone users are accustomed to interacting with one thing at time 10

Cells Usage Model foreground / background 11

Cells Complete Virtualization multiple, isolated virtual phones (VPs) on a single mobile device 100% device support in each VP unique phone numbers - single SIM! accelerated 3D graphics! 12

Cells Efficient Virtualization less than 2% overhead in runtime tests imperceptible switch time among VPs 13

Cells Transparent Virtualization each VP sees / uses all devices user can run any unmodified apps foreground VP switches like an app 14

Single Kernel: Multiple VPs isolated collection VP 1 VP 2 VP 3 of processes virtualize at OS interface Linux Kernel 15

Single Kernel: Device Support VP 1 VP 2 VP 3 all VPs access the same device simultaneously Power Touchscreen microphone Buttons headset GPS Cell Radio WiFi GPU Framebuffer hw codec pmem Binder IPC Compass camera(s) Linux Kernel speakers Accelerometer RTC / Alarms Input Sensors Audio/Video Android... 16

Device Namespaces VP 1 VP 2 VP 3 safely, correctly multiplex access to devices Linux Kernel device namespaces WiFi Cell Radio Framebuffer GPU Power Input Sensors Audio/Video RTC / Alarms Android... 17

Cells VP 1 VP 2 VP 3 device namespaces + foreground / background Linux Kernel WiFi Cell Radio Framebuffer = device namespaces Complete, Efficient, Transparent Mobile Virtualization GPU Power Input Sensors Audio/Video RTC / Alarms Android... 18

efficient basic graphics virtualization hardware accelerated graphics proprietary/closed interface Linux Kernel device namespaces WiFi Cell Radio Framebuffer GPU Power Input Sensors Audio/Video RTC / Alarms Android... 19

Approach 1: Single Assignment screen memory Framebuffer virtual addresses physical addresses GPU 20

Approach 2: Emulated Hardware emulated framebuffer screen memory Framebuffer virtual state 21

Motivation Overview Architecture Graphics Cell Radio Evaluation Demo Cells: Device Namespaces mux_fb presents VP 1 VP 2 VP 3 foreground background background identical device interface to all VPs using device namespaces swap virt addr mappings: point to different phys addr screen memory 22 Framebuffer mux_fb virtual addresses physical addresses

Accelerated Graphics VP: just a set of processes! VP 1 VP 2 VP 3 OpenGL context OpenGL context OpenGL context screen memory Framebuffer process isolation MMU GPU graphics virtual addresses physical addresses 23

Motivation Overview Architecture Graphics Cell Radio Evaluation Demo Device Namespace + Graphics Context VP 1 VP 2 VP 3 foreground background background OpenGL OpenGL OpenGL context context context screen memory 24 MMU graphics virtual addresses GPU physical addresses

VoIP? RilD Vendor RIL VoIP VoIP Drivers Linux Kernel Baseband: GSM / CDMA 25

Dual-SIM? RilD Vendor RIL RilD Vendor RIL Drivers Drivers Linux Kernel 26 GSM/CDMA GSM / CDMA

Cells: User-Level Namespace Proxy VP 1 VP 2 VP 3 foreground background background vendor API RilD Vendor Cells RIL proprietary RilD hardware/software RilD requires a well-defined interface. Cells RIL Cells RIL CellD Root Namespace Drivers Baseband: GSM / CDMA Linux Kernel 27

Experimental Results Setup Nexus S five virtual phones overhead vs. stock Android 2.3 28

Experimental Results Setup CPU Linpack graphics Neocore storage Quadrant web browsing Sun Spider networking Custom WiFi Test 29

Experimental Results Runtime Overhead 1.40! 1.20! 1.00! 0.80! 0.60! 0.40! 0.20! Negligible Overhead In 3D Measurements! 1-VP! 2-VP! 3-VP! 4-VP! 5-VP! 0.00! Linpack NeoCore Quadrant I/O Sun Spider Network 30

Demo 31

Cells Complete, Efficient, Transparent Mobile Virtualization device namespaces safely and efficiently share devices foreground / background designed specifically for mobile devices implemented on Android less than 2% overhead on Nexus S 32

More Info cells.cs.columbia.edu cellrox.com 33