Architecture (SOSP 2011) 11/11/2011 Minsung Jang



Similar documents
CELLS A Virtual Mobile Smartphone Architecture

Full and Para Virtualization

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

The Case for Device Namespaces

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

Android Operating System

I/O Virtualization Using Mellanox InfiniBand And Channel I/O Virtualization (CIOV) Technology

Android Architecture. Alexandra Harrison & Jake Saxton

ANDROID OPERATING SYSTEM

COS 318: Operating Systems. Virtual Machine Monitors

Mobile Phones Operating Systems

How To Build A Software Defined Data Center

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

VIA CONNECT PRO Deployment Guide

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

Virtualization. Dr. Yingwu Zhu

Overview. The Android operating system is like a cake consisting of various layers.

Regional SEE-GRID-SCI Training for Site Administrators Institute of Physics Belgrade March 5-6, 2009

Virtualization Technology. Zhiming Shen

Do Containers fully 'contain' security issues? A closer look at Docker and Warden. By Farshad Abasi,

Virtualization. Types of Interfaces

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Virtualization. Introduction to Virtualization Virtual Appliances Benefits to Virtualization Example Virtualization Products

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Remote Desktop on Mobile

SierraVMI Sizing Guide

Berlin Institute of Technology FG Security in Telecommunications

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

The Xen of Virtualization

Chapter 5 Cloud Resource Virtualization

Virtual Switching Without a Hypervisor for a More Secure Cloud

NVIDIA GRID OVERVIEW SERVER POWERED BY NVIDIA GRID. WHY GPUs FOR VIRTUAL DESKTOPS AND APPLICATIONS? WHAT IS A VIRTUAL DESKTOP?

Here to take you beyond Mobile Application development using Android Course details

IOMMU: A Detailed view

REMOTE HIGH FIDELITY VISUALIZATION. May 2015 Jeremy Main, Sr. Solution Architect GRID

Introduction to Android

Development. SriSeshaa Technologies. Table of Contents

Android Virtualization from Sierraware. Simply Secure

Android Basics. Xin Yang

EMC Backup Solutions for Virtualized Environments

Mobile Cloud Computing T Open Source IaaS

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Integration of Virtualized Workernodes in Batch Queueing Systems The ViBatch Concept

Building Docker Cloud Services with Virtuozzo

A Review OnEmployee Monitoring Application Using Android Smartphone s Neha S. Mankar 1, Sweeti M. Shambharkar 2 and Asst. Prof. Priti P.

KVM: Kernel-based Virtualization Driver

Best Practices on monitoring Solaris Global/Local Zones using IBM Tivoli Monitoring

Next Generation Operating Systems

Satish Mohan. Head Engineering. AMD Developer Conference, Bangalore

Example of Standard API

Virtual Computing and VMWare. Module 4

Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors

Virtualization. Jia Rao Assistant Professor in CS

Linux KVM Virtual Traffic Monitoring

Mentor Embedded IVI Solutions

Assessing the Performance of Virtualization Technologies for NFV: a Preliminary Benchmarking

A Network in a Laptop: Rapid Prototyping for So7ware- Defined Networks

Analysis on Virtualization Technologies in Cloud

Native, Hybrid or Mobile Web Application Development

VIA COLLAGE Deployment Guide

Chapter 14 Virtual Machines

Virtualization. Explain how today s virtualization movement is actually a reinvention

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

2972 Linux Options and Best Practices for Scaleup Virtualization

Desktop virtualization using SaaS Architecture

2) Xen Hypervisor 3) UEC

Nested Virtualization

An Introduction to Android

High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.

Models For Modeling and Measuring the Performance of a Xen Virtual Server

Optimizing Network Virtualization in Xen

Windows Server Virtualization & The Windows Hypervisor

Using IOMMUs for Virtualization in Linux

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Where are Organizations Today? The Cloud. The Current and Future State of IT When, Where, and How To Leverage the Cloud. The Cloud and the Players

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Performance Testing in Virtualized Environments. Emily Apsey Product Engineer

Discovering Computers

Virtualization. Michael Tsai 2015/06/08

COM 444 Cloud Computing

IOS110. Virtualization 5/27/2014 1

Networking for Caribbean Development

Introduction to Android

Windows Server 2012 Hyper-V Virtual Switch Extension Software UNIVERGE PF1000 Overview. IT Network Global Solutions Division UNIVERGE Support Center

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Intel Graphics Virtualization Technology Update. Zhi Wang,

Chapter 19 Cloud Computing for Multimedia Services

Sensor Fusion Mobile Platform Challenges and Future Directions Jim Steele VP of Engineering, Sensor Platforms, Inc.

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

Cloud Gaming & Application Delivery with NVIDIA GRID Technologies. Franck DIARD, Ph.D. GRID Architect, NVIDIA

Knut Omang Ifi/Oracle 19 Oct, 2015

Virtualization Technologies

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Transcription:

Cells: A Virtual Mobile Smartphone Architecture (SOSP 2011) Lunch TimeReading Group 11/11/2011 Minsung Jang

Summary Novel Architecture for a Virtual Phone How to do away with overhead New way to virtualize devices Foreground Background dusage Model How to contribute a low overhead

Motivation For everyday computing, Mobile > Desktop (+Laptop) Many virtual phones that are isolated on a physical phone Eiti Existing (system) virtualizations it ti High overhead Hardware devices Cells: new, LWT virtulization Sensors (accessible by APIs) Tap sensor Orientation Sensor Accelerometer Ambient Light Sensor Proximity Sensor Compass Rotation Sensor 800MPixel camera on back

Virtual Phones Overview of Cells MultipleAndroid insteadofmultipleosinstances instances Low overhead UnionFS, KSM, Form factor (Small lldisplay) New usage model Device support Per VPPhone Phone number Prototype using Real commercial Android phones Nexus 1, Nexus S withgingerbread Scalability

Usage Model Display the contents only from the foreground VP Frame buffer GPU Foreground VP When? Background VPs Android Kernel

Access Right Three different access right for each device on a phone hardware No access, shared access, or exclusive access Assigned dstatically ti when a VPis configured Foreground VP Background VPs No Access Exclusive Access Frame GPU buffer Android Kernel Shared Access Audio

User level virtualization Architecture Android/Java (Dalvik VM) VP ID: 1 VP ID: 2 Single OS Instance

A virtual phone has Architecture ID, Kernel I/F, andvirtualizedhardwareresources resources Private virtual namespace Filesystem Path Virtualized {PIDs, network names, user names} Eg E.g., The same PIDs can exists if VP ids are different Linux provides the PID virtualization

Virtualization Why virtualized resources? Guarantee Isolation among VPs How? Kernel level, User level Root Namespace State of VP 1 Virtual Phone (VP 1) Proprietary Device Driver State of State of VP 1 VP 2 Device Driver

Devices List of Devices that Android must have

Scalability Scalability & Security How many VPs can be built on a physical phone Removing overhead per VM Security UnionFS (aufs), KSM, LMK How Cells isolate a VP from others Kernel/user level level namespace Separate FS view for each VP No creation of device nodes in a VP

UnionFS (aufs) Stacking file systems Join the read only fs with a writeable files Read only: /data, /system Aufs Writable layer for /data, /system For VP 1 /data /system Read only For ALL VPs

Device Virtualization

Graphics Multiplexing FB device driver: mux_fb How FB works : mmaps, standard IOCTLs, custom IOCTLs

Graphics in Android (Linux) Device File Application kernel address space kernel FB driver Buffer control device type Major # Minor # mmap() control Buffer process address space dma_alloc_writecombine() LCD device physical memory Buffer DMA DMAC

Graphics Virtual Phone 1 Virtual Phone2 process address space s Buffer process address space s Buffer remap Device Namespace Mangement Frame buffer for Foreground VP Frame buffer for Background VP Backing memory LCD Device

GPU GPU is already isolated by underlying Linux Pass through access in each VP context Switching the foreground VP, remap memory buffers Need to access a GPU driver at a somewhat level Requirements for proprietary GPU driver Remap the GPU driver s linear addresses Re initialize On/Off Ignore power management request For GPUs without MMU, the backing memoryis For GPUs without MMU, the backing memory is contiguous

Telephony in Android Telephony Binder Solicited Binder Unsolicited Call application (Dialer) Radio Interface layer Daemon (RilD) from Google Vendor RIL (proprietary) Kernel Driver (proprietary) Closed source codes

Virtual Phone Telephony

Incoming/Outgoing calls Telephony Multiple Numbers: Phone number assigned to each VP Challenge: One SIM allows just one phone number, Caller ID

Telephony/Outgoing Calls VP1 (VoIP Number:1) VP2 (VoIP number:2) Original phone number: 404 433 1112 DTMF VoIP Server VoIP Number Original number 1 404 433 2 404 433

Telephony/Incoming Calls VP1 (VoIP Number:1) VP2 (VoIP number:2) VoIP number :2 VIP VoIP Server Original phone number: 404 433 1112 VoIP Number Original number 1 404 433 2 404 433

Network Best Practice in desktop/server virtualization Virtual wired network adapter for each virtual machine Configuration in a host VM vnic VM vnic Hypervisor NAT/Bridged WiFi

Requirements Network Each VP Should be able to independently select its wireless connection, andconfigure it e.g, Security method, WLAN or 3G Some application should be able to access WLAN directly e.g., Location based services, AppStore, System Updater Each VP should be able to Each VP should be able to see such selection

Similar with telephony Network Android uses wpa_supplicant for wireless setup Virtual Phone 1 Apps Connection information for VP1 Network Proxy wpa_supplicant NAT Driver 802.11 Device

Experiment Measuring overhead/power consumption for 5 VP VPs configuration for UI test VP1: Angry Bird VP2: Reckless Racing (3D game) VP3: Office Suite Pro VP4: Android Music Player

Experiment

Conclusion Problems in existing device virtualization Pass though: h other VMs cannot access Bypass: requires special hardware support In particular, GPU Vmware MVP not good for games Xen backend frontend: vendor support needed

Pros Conclusion Lightweight, No hypervisor Leveraging existing device drivers Cons Large TCB Different mobile OS on a phone (e.g., Android + ios)