16
Juha Tukkinen / November 2007 code in your hands Chinook Software Architecture Juha Tukkinen Juha Tukkinen / November 2007

Maemo Chinook Software Architecture

Embed Size (px)

DESCRIPTION

maemo chinook software architecture

Citation preview

Page 1: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Chinook Software Architecture

Juha Tukkinen

Juha Tukkinen / November 2007

Page 2: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Content• Architecture overview

• logical

• process

• development

• Major components

• GNOME Mobile & maemo

• Differences to other OS’s

Page 3: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview

Page 4: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview – logical view

GNU/Linux

X HAL GLib D-Buscore

GTK+ PangoCairo ATK

Hildon Desktop

Matchbox

user interface

Hildon Toolkit

Applications

Hildon plugins

Sapwood

GnomeVFSsystem services

GConf

GStreamer

BlueZ E-D-S Telepathy LibConICconnectivity &

communications

Hildon Input Method

Page 5: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architectureoverview- logical 2

Page 6: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architectureoverview - multimedia

Page 7: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview - processes

• processes run as

• user

• systemui

• nobody

• messagebus

• haldaemon

• root

Page 8: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Page 9: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview - processes

• Important system software processes

• dsme – Device State Management Entity, a watchdog

• bme – Battery Management Entity

• mce – Mode Control (e.g. offline, device lock, leds)

• dbus-daemon – system&session, IPC for a desktop session, launches singleton applications, lifecycle tracking

• maemo-launcher – speeds up application startup

Page 10: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview - processes

• User interface server processes

• hildon-desktop

• hildon-input-method

• sapwood-server - theme engine

• matchbox-window-manager

• clipboard-manager

Page 11: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview – development view

Page 12: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Major components

GNU/Linux

X HAL GLib D-Buscore

GTK+ PangoCairo ATK

Hildon Desktop

Matchbox

user interface

Hildon Toolkit

Applications

Hildon plugins

Sapwood

GnomeVFSsystem services

GConf

GStreamer

BlueZ E-D-S Telepathy LibConICconnectivity &

communications

Hildon Input Method

Page 13: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

GNOME Mobile – prevent mobile Linux fragmentation

Page 14: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Differences to other mobile operating systems• builds on existing open source desktop components

• all basic frameworks’ source code available

• applications do not need signing

• SDK open source

• development environment free software

• ITOS contains also closed parts

Page 15: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview - challenges

• Architecture heritage from GTK+ and GNOME

• Multiple APIs for the application developer

• Upstream APIs naturally change

• maemo specific APIs

• Documentation/API quality varies a lot

• Native application development language is C

• Not many available standards in mobile Linux

…it is a hacker’s world both in good and bad!

Page 16: Maemo Chinook Software Architecture

Juha Tukkinen / November 2007

code in your hands

Architecture overview - achievements

• avoided “not invented here”

• largely same software components as in a normal GNU/Linux desktop

• maemo is an open embedded mobile platform

• embrace existing policies (e.g. Debian packaging)

• support existing de facto standards

• porting existing desktop software made easy