Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT...

29
Moblin Architecture Overview Moblin Architecture Overview Linux Foundation – Moblin Seminar Sunil Saxena Open Source Technology Center Software & Services Group

Transcript of Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT...

Page 1: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin Architecture OverviewMoblin Architecture OverviewLinux Foundation – Moblin Seminar

Sunil SaxenaOpen Source Technology Center

Software & Services Group

Page 2: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Legal informationINFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS ORLIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR , ,INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT.

Intel may make changes to specifications, product descriptions, and plans at y g p , p p , pany time, without notice.

All dates provided are subject to change without notice.

I l i d k f I l C i i h U S d h iIntel is a trademark of Intel Corporation in the U.S. and other countries.

*Other names and brands may be claimed as the property of others.

Copyright © 2007-2009 Intel Corporation All rights are protected

22

Linux Foundation – Moblin Seminar 2

Copyright © 2007-2009, Intel Corporation. All rights are protected.

Page 3: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Agenda

Moblin Platform Usages

Moblin Architecture Overview

Summary / Call-to-Action

33

Linux Foundation – Moblin Seminar 3

Page 4: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

MID Platform Usages

INFORMATION ENTERTAINMENTCOMMUNICATION

Video, TV, GamesPi t

Social NetworkingEU G t d C t t

DirectionsPOI, LBS

News, Shop, SportsInternet Browsing

PicturesMusic

Internet Browsing

EU Generated ContentBlog, IM/Chat

Voice (VoIP, CSV)Internet Browsing

Video Conferencing

GenYDigital Parents

Mobile Professionals

Internet Browsing

Gen YDigital Parents

Mobile Professional

GenYMobile Professionals

Video Conferencing

44

Linux Foundation – Moblin Seminar 44

Page 5: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Netbook & Nettop Platform Usages

CommunicateEmailInstant MessageVoice Over IP (VOIP)

Photo Viewing/SharingVideo StreamingBasic Online Gaming

Watch & Play

Voice Over IP (VOIP)Social Networking

Basic Online Gaming

LearnLearnResearchHomework & StudyingInternet (Safe) Browsing

Listen

Language Learning

BrowseS f h W b MP3

Streaming AudioSurf the Web Read the NewsSearch for Information

55

Linux Foundation – Moblin Seminar 5

Page 6: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

In-vehicle Infotainment Platform Usages

In Car Usages In Car Usages

HandsHands--freefreeTelematicsTelematicsNavigation Navigation E t t i tE t t i tEntertainment Entertainment

66

Linux Foundation – Moblin Seminar 6

Page 7: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Embedded Platform Usages

• Kitchen Internet Device (aka Consumer Broadband Phone)

Internet Enabled PhoneInternet Enabled PhoneMedia PhoneMedia Phone ==( )

• Unified Communications Device (aka Unified Communications Client)• Bedside Internet Device (Hospitality, Telecare)

(Home)(Home)(Office)(Office)

• E Cash Registersg• Premise Service Platforms (Gateway)• General Embedded• .... New Segment Development

77

Linux Foundation – Moblin Seminar 77

Page 8: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

AgendaMoblin Platform UsagesMoblin Platform Usages

Moblin Architecture OverviewUI S i– UI Services

– Internet Browser– Media Player– Connection Manager / Phone Application– Kernel Services– Netbook UX and Mid UXNetbook UX and Mid UX– Power Management– Boot times

Security– Security– SDK

Summary / Call-to-Action

88

Linux Foundation – Moblin Seminar 8

Summary / Call-to-Action

Page 9: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin is Optimized Linux SW Platform for Intel® Atom™ Processorsp

Netbooks/MIDs Netbooks/Nettops

Auto Embedded

OS &S I f

OS &Sys. Infra.

OS &Sys Infra

OS &Sys. Infra.Moblin

Platforms based on Intel® Atom™ processors

Sys. Infra. Sys. Infra. Sys. Infra. Sys. Infra.

p

99

Linux Foundation – Moblin Seminar 9

Page 10: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

The Moblin Software Stack

Platform Specific UX

UI ServicesUI Services

Mobblin Core

App Services

Linux Kernel and Drivers

Moblin Core is common across platforms

User Experience is specific to a platform (e.g. MID, Netbook, IVI, …)

1010

Linux Foundation – Moblin Seminar 10

Page 11: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

The Moblin SW ArchitecturePl f S ifi UXWM Cl ttC P id dC P id d

3D User Interface Library (Clutter)3D User Interface Library (Clutter)QTQTQT EmbedQT Embed

Platform Specific UX

es

WM + Clutter Compositor

Customer ProvidedUI / Apps

Customer ProvidedUI / Apps Clutter toolkit Reference UX

GTK+GTK+Media Playback

(clutter-media)Media Playback

(clutter-media)

Physics(Box2D)

Physics(Box2D)

Web Rendering(mozilla-clutter)

Web Rendering(mozilla-clutter)

GTK Embed(clutter-GTK)

GTK Embed(clutter-GTK)

QT Embed(clutter-QT)

QT Embed(clutter-QT)

UI

Service

esMoblin CTelephony APIs

(Telepathy, GSM)

Network Mgmt(ConnMan)

Comms Services Internet ServicesLayout Engine

(Mozilla Gecko)

Web Services(REST, Mojito)

Media Services Graphics Services3D Graphics

(OpenGL)

i18N Rendering(Pango)

Media Services(GStreamer, Helix)

Audio Mgmt(PulseAudio)

Other ServicesMessage Bus

(D-Bus)

C Services(Glib GObject)

App

Service

Core

( p y, )

Bluetooth(BlueZ)

WiFi / WiMAX(D i OMA DM)

3rd PartyCellularStack

IPVoIP, IM,Presence

(REST, Mojito)

Location(Gypsy, GeoClue)

X

2D Graphics(Cairo)

(PulseAudio)

Content Mgmt(Bickley)

(Glib, GObject)

PIM Services(EDS)

Device Sync(SyncML, gUPnP)

Codecs

(Drivers, OMA-DM)

Linu

xKernel Linux Base Services

WiFi, WiMAXPower Mgmt Device Drivers Platform Support Graphics system

1111

Linux Foundation – Moblin Seminar 11

L K Bluetooth, 3G DataPower Mgmt Device Drivers Platform Support Graphics system

Page 12: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

UI Services: ClutterClutter is an open source

3D User Interface Library (Clutter)3D User Interface Library (Clutter)Clutter is an open source software library for creating sleek, fast and visually rich

Media Playback(clutter-media)

Media Playback(clutter-media)

Physics(Box2D)

Physics(Box2D)

Web Rendering(mozilla-clutter)

Web Rendering(mozilla-clutter)

GTK Embed(clutter-GTK)

GTK Embed(clutter-GTK)

QT Embed(clutter-QT)

QT Embed(clutter-QT)

interfaces with 3D effects and animations– Uses OpenGL (mesa) without

Graphics Services3D Graphics

(OpenGL)

i18N RenderingUses OpenGL (mesa) without exposing the complexity

– Offers a simple, object-oriented API tailored toward manipulating

X

2D Graphics(Cairo)

g(Pango)

API, tailored toward manipulating 2D objects in 3D space and time

– Built on glib, gobject, pango, cairo– Developed in C with bindings for

Linux Base Services

– Developed in C with bindings for Python, Perl, C#

Graphics system

1212

Linux Foundation – Moblin Seminar 12

Page 13: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

UI Services: QT / GTK+

GTK+GTK+

3D User Interface Library (Clutter)3D User Interface Library (Clutter)QTQTQT Embed

(clutter-QT)QT Embed

(clutter-QT)

QT is a cross-platform application framework

GTK Embed(clutter-GTK)

GTK Embed(clutter-GTK)

Q p pp– Portable across desktop and embedded operating systems

GTK+ is a cross-platform toolkit for creating User p gInterfaces

Both can be used alongside and with Clutterg

1313

Linux Foundation – Moblin Seminar 13

Page 14: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Graphics in MoblinHuge improvements since last year – composited 3D, monitor auto-plug, 2D/3D/Media shared objects, KMS, Kernel based 2D drawing

Graphics Execution Engine– Kernel Memory Management to allow persistent objects, global names, Pageable contents– SHMFS for object allocation– Cache management using “memory domains” exposed to Apps– Kernel manages graphics aperture exclusively– Batch buffers as the fundamental scheduling unit

DRI2 – new X extension to replace DRI (Direct Rendering Infrastructure) extension

Kernel Mode Setting g– Smooth boot experience and flicker free boot– Hot-plug monitors– Non-root X server possible

Multi-master DRM possible with DRI2 and KMS– Allows non-X GPU usages including GPGPU

OpenGL enhancements – work in progressGL Shading Language Tiled memory support new shader compiler

1414

Linux Foundation – Moblin Seminar 14

– GL Shading Language, Tiled memory support, new shader compiler

Page 15: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Internet BrowserThree major components of the

Platform Specific UX

BrowserThree major components of the browser– Headless layout engine, clutter

embedding and a platform specific

3D User Interface Library (Clutter)3D User Interface Library (Clutter)

embedding, and a platform specific browser app

Web Services libraries enable Internet Services

Web Rendering(mozilla-clutter)

Web Rendering(mozilla-clutter)

integration of web content (e.g. social networking, media) into the user experience

Layout Engine(Mozilla Gecko)

Web Services(REST, Mojito)

Location

GeoClue provides location information from a variety of so rces ia a D B s interface

(Gypsy, GeoClue)

sources via a D-Bus interface– Gypsy provides abstracted,

multiplexed access to GPS devices (a replacement for GPSD)

Linux Base Services

Platform SupportGraphics system

1515

Linux Foundation – Moblin Seminar 15

(a replacement for GPSD)

Page 16: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Media Player Platform Specific UX

Media

Media stack is designed to support either Helix or GStreamer

3D User Interface Library (Clutter)3D User Interface Library (Clutter)

Media Playback( l tt di )

Media Playback( l tt di )

Clutter-media provides a uniform interface to control Media Services

(clutter-media)(clutter-media)

playback of media sources

Bickley provides metadata

Media Services(GStreamer, Helix)

Audio Mgmt(PulseAudio)

Content Mgmt

extraction and management for media files (audio, video, and photo)

Co te t g t(Bickley)

Codecs

and photo)Linux Base Services

Platform SupportDevice Drivers

1616

Linux Foundation – Moblin Seminar 16

Page 17: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Gstreamer – The Architecture Overview• What is Gstreamer?

– a library for constructing graphs of media-handling

tcomponents. – applications can take

advantage of advances in codec and filter technologycodec and filter technology transparently.

– GStreamer is released under the LGPL.

• About Fluendo– a company launched in 2004.

It is building their services on t f th GSttop of the GStreamerstreaming media framework.

– maintainers of gstreamer are employed in that company

Courtesey: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/chapter-gstreamer.html

1717

Linux Foundation – Moblin Seminar 17

employed in that company.

Page 18: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Connection Manager Platform Specific UX

CM Phone

Network management via ConnMan supporting WiFi, WiMAX and 3G data

3D User Interface Library (Clutter)3D User Interface Library (Clutter)

WiMAX, and 3G data connections

Comms Services

Telephony APIs(Telepathy, oPhono-GSM)

Bl t th

Network Mgmt(ConnMan)

3rd

P t IP

Phone ApplicationsTelephony interface to enable support for multiple 3G voice stacks and integration with VoIP

Bluetooth(BlueZ)

WiFi / WiMAX / 3G(Drivers, OMA-DM)

PartyCellularStack

IPVoIP, IM,Presence

gLinux Base Services

Platform SupportDevice Drivers

1818

Linux Foundation – Moblin Seminar 18

Page 19: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Other Services: PIM and Sync Platform Specific UX

App

EDS provides the data store for PIM data (Calendar, Contacts, and Tasks)

Other Services

3D User Interface Library (Clutter)

3D User Interface Library (Clutter)

Integrating device synchronization– Planning a SyncML client which

synchronizes PIM data

Other Services

y– Media sync under investigation

D-Bus as the common mechanism for

Message Bus(D-Bus)

C Services(Glib, GObject)

PIM Services

app-to-app / app-to-service communication (e.g. Connman, Mojito, EDS Bickley etc)

(EDS)

Device Sync(SyncML, gUPnP)

EDS, Bickley, etc)

Glib and Gobject are standard portable object system used by other services

Linux Base Services

Device Drivers

1919

Linux Foundation – Moblin Seminar 19

object system used by other services

Page 20: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Kernel ServicesLinux Base Services

WiFi, WiMAXBluetooth, 3G Data

Power Mgmt Device Drivers Platform Support Graphics system

Base Linux kernel– Base Linux Wireless and Bluetooth drivers

Device drivers and platform support specific to platform

Base Linux Power management for Netbooks– MID power management stack may be extra– Using Powertop to optimize full-stack

2020

Linux Foundation – Moblin Seminar 20

Page 21: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin Netbook UXMoblin Netbook UX

Customer ProvidedUI / Apps

Customer ProvidedUI / Apps

Metacity WM+ Clutter Compositor

UI / AppsUI / Apps

Moblin Netbook Reference UX

A i d i d f N tb k

Netbook Clutter toolkit

A new user experience designed for Netbook usages (Internet, Media, Social Networking)

Optimi ed for a 7 10” screen ke board and trackpadOptimized for a 7-10” screen, keyboard and trackpad

Supports existing Linux apps (e.g. GTK+, QT)

2121

Linux Foundation – Moblin Seminar 21

Page 22: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin MID UXMoblin MID UX

Customer ProvidedUI / Apps

Customer ProvidedUI / Apps

MatchBox WM+ Clutter Compositor

UI / AppsUI / Apps

MID Clutter toolkit

Moblin MID Reference UX

A new user experience designed for MID usages (Internet

MID Clutter toolkit

A new user experience designed for MID usages (Internet, Media, Social Networking, Telephony)

Optimized for < 5” screen, touch as primary input, optionalOptimized for 5 screen, touch as primary input, optional keyboard

Generally requires new app UI

2222

Linux Foundation – Moblin Seminar 22

y q pp

Page 23: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Power-management

Moblin Netbook Platform power-management philosophy follows best Linux Power Management practices

When parts of HW that is not sed it goes into deepest po er– When parts of HW that is not used it goes into deepest power-saving state

– Use Power top to check if any software shows unfavorable behavior to disallow the platform going into power saving statesbehavior to disallow the platform going into power saving states

– The HW and OS abstract specific power behavior so that applications are power agnostic

Moblin MID platform is expected to use platform specific (Moorestown) Power management

S t d l tf ifi t l ti– Segment and platform specific power-management solution

2323

Linux Foundation – Moblin Seminar 23

Page 24: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Security Model for Moblin

Security for Moblin provides Exploit defenseMoblin Security features follows best practices of core Linux to

Di ll l it ti f b ff fl– Disallow exploitation of buffer overflow– Prevent access by malicious external access

Moblin supports– XD in Linux to disallow execution of code from stack or heap space– Address space randomization– Uses canary value with return address on the stack

F tif fi d l th / t t t di ll t id f it– Fortify fixed length arrays / structures to disallow access outside of it– Does not allow external agent to open network connection into Moblin

• No open ports that Moblin listens to, only allows outbound connection Non root X server support with the use of KMS and DRI2– Non-root X server support with the use of KMS and DRI2

Security Updates come from OSV– Moblin provides signing them with GPG key

2424

Linux Foundation – Moblin Seminar 24

p g g y

Page 25: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Boot times

Boot times is important for us and is a big focus for Moblin

Standby and Shutdown times are equally importanty q y p

Moblin boot time (after BIOS handoff) with SSD isless than 10 seconds at this time– Work continues to cut that down to half of that– MID, IVI and Embedded platforms require lower boot times

2525

Linux Foundation – Moblin Seminar 25

Page 26: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin 2.0 SDK http://moblin.org/documentation/moblin-sdk

Guide to create a new application http://moblin.org/documentation/moblin-sdk/create-new-application

– Setting up a development environmentSetting up a development environment http://moblin.org/documentation/moblin-sdk/create-new-application#dev-environment

– Create, build, and run a new application or library http://moblin.org/documentation/moblin-sdk/create-new-application#create-build-run

Fi d ti t t i l d t t– Find tips, tutorials, and next steps http://moblin.org/documentation/moblin-sdk/create-new-application#tips

Development Tools http://moblin.org/documentation/moblin-sdk/development-tools

Coding Tutorials http://moblin.org/documentation/moblin-sdk/coding-tutorials

2626

Linux Foundation – Moblin Seminar 26

Page 27: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Agenda

Moblin Platform Usages

Moblin Architecture Overview

Summary / Call-to-Action

2727

Linux Foundation – Moblin Seminar 27

Page 28: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Moblin Summaryy• An Open Source Community Project

• A complete Linux stack – kernel, drivers, OS+UI+Apps infrastructure, core apps, tools, SDK

• A common software platform across MIDs, Netooks, Nettops, IVI

• Productized by 17 Linux OSVs WWProductized by 17 Linux OSVs WW

• Moblin project = technology

Moblin is the OS optimized for Atom based devices

• Moblin products = OSVs

2828

Linux Foundation – Moblin Seminar 28

Page 29: Moblin Architecture OverviewArchitecture Overview · 2009. 9. 11. · GTK Embed (clutter-GTK) QT Embed (clutter-QT) UI Servic e s ... – Built on glib, gobject, pango, cairo –

Thank youThank you

2929

Linux Foundation – Moblin Seminar 29