ubuntu application lifecycle

31
Ubuntu Application Lifecycle Or: How I learned to stop worrying and trust application developers Ubuntu Application Lifecycle Or: How I learned to stop worrying and trust application developers Ted Gould [email protected] @tedjgould Texas Linux Fest 22 Aug 2015

Upload: ted-gould

Post on 22-Jan-2018

736 views

Category:

Mobile


0 download

TRANSCRIPT

Page 1: Ubuntu Application Lifecycle

Ubuntu Application Lifecycle

Or: How I learned to stop worrying and trust application developers

Ubuntu Application Lifecycle

Or: How I learned to stop worrying and trust application developers

Ted [email protected]@tedjgouldTexas Linux Fest22 Aug 2015

Page 2: Ubuntu Application Lifecycle

“I'm more worried about Murphy than I am Machievilli”

— Michi Henning

Page 3: Ubuntu Application Lifecycle

IdealCracker

Page 4: Ubuntu Application Lifecycle

Diminished User Experience

Page 5: Ubuntu Application Lifecycle

© Andy Armstrong — CC-BY-SA — https://www.flickr.com/photos/andyarmstrong/190078748/

DeadBattery

Page 6: Ubuntu Application Lifecycle

© Josh Hallett — CC-BY — https://www.flickr.com/photos/hyku/368912557/

DataProtection

Page 7: Ubuntu Application Lifecycle

© Antti T. Nissinen — CC-BY — https://www.flickr.com/photos/54177777@N00/373864777/

PhysicalDestruction

Page 8: Ubuntu Application Lifecycle

Phone Usage

http://hbr.org/2013/01/how-people-really-use-mobile/

Page 9: Ubuntu Application Lifecycle

PID

Click Manifest

Desktop File

Helper Config

Unity Screen

AppArmor Profile

Upstart Instance

Page 10: Ubuntu Application Lifecycle

App

App

Page 11: Ubuntu Application Lifecycle

ApplicationSwitcher

Page 12: Ubuntu Application Lifecycle

Presentation Application Switcher

Page 13: Ubuntu Application Lifecycle

Infinite App Illusion

Technical User

How many apps can I run?

1 GB RAM1 GHz Quad Core

Page 14: Ubuntu Application Lifecycle

Active Application

Paused Apps (RAM)

Stopped Offline

Page 15: Ubuntu Application Lifecycle

Stateless Stopped

Paused

Active

Page 16: Ubuntu Application Lifecycle

Stateless Stopped

Paused

Active

UserInteractionOnly!!!

Page 17: Ubuntu Application Lifecycle

Paused

Active

Stateless Stopped

Page 18: Ubuntu Application Lifecycle

Stateless

Active

Stopped

Paused Linux KernelOOM Killer

(want to include graphics resources in the future)

Page 19: Ubuntu Application Lifecycle

Stateless Stopped

Paused

Active

Page 20: Ubuntu Application Lifecycle

What happens:● App is asked to save

state● Graphic buffers

grabbed for screenshot● Timeout, then all

processes are sent SIGSTOP

Paused

Active

Stateless Stopped

Page 21: Ubuntu Application Lifecycle

What happens:● NOTHING!Stateless

Active

Stopped

Paused

Page 22: Ubuntu Application Lifecycle

Positive:Ask to save state nicely via life cycleStop using processing when not asked

Negative:SIGSTOP appsSIGKILL apps on OOM killer

Page 23: Ubuntu Application Lifecycle

Like

ly t

o b

e k

illed

Stopped App

Untrusted Helpers

Active Application

Unity

Page 24: Ubuntu Application Lifecycle

Trusted Helpers

● Download Manager — Downloads content to the device while the application isn't focused.

● Push Messages — Background process that collects JSON messages targeted at app/user

● Location Service — Uses GPS and other sources to establish location continually.

● Content Hub — Shares files between application contexts securely.

● Media Hub — Plays audio files and play lists.

Page 25: Ubuntu Application Lifecycle

App

Location

Online Accounts

URL Dispatcher

Address Book

AppArmorTrustedConfined

DBus Trusted Helpers

Page 26: Ubuntu Application Lifecycle

App

URL Dispatcher

Upstart

Browser

Unity

USERClick on a link Show the browser

Page 27: Ubuntu Application Lifecycle

File Server

Push Message

Download Manager

App

Push Server

Save in App Cache

New File

Simple Sync

Page 28: Ubuntu Application Lifecycle

Request permission at time of use

Page 29: Ubuntu Application Lifecycle

Ubuntu Applications are:● Confined — By default the applications are

restricted from using a lot of functionality that might be expected from a traditional Linux user session.

● Managed — The application lifecycle works to keep the user in control of what is draining the battery and using resources.

● Have Friends — Trusted helpers provide ways to implement the functionality you need and work with confinement.

Review

Page 30: Ubuntu Application Lifecycle

Additional Info

http://www.ubuntu.com/phone

https://developer.ubuntu.com

https://wiki.ubuntu.com/Security/AppArmor

https://wiki.ubuntu.com/Mir

Page 31: Ubuntu Application Lifecycle

© Stéfan — CC-BY-SA — https://www.flickr.com/photos/st3f4n/143623934