Post on 12-May-2015
description
transcript
Juha Tukkinen / November 2007
code in your hands
Chinook Software Architecture
Juha Tukkinen
Juha Tukkinen / November 2007
Juha Tukkinen / November 2007
code in your hands
Content• Architecture overview
• logical
• process
• development
• Major components
• GNOME Mobile & maemo
• Differences to other OS’s
Juha Tukkinen / November 2007
code in your hands
Architecture overview
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
Juha Tukkinen / November 2007
code in your hands
Architectureoverview- logical 2
Juha Tukkinen / November 2007
code in your hands
Architectureoverview - multimedia
Juha Tukkinen / November 2007
code in your hands
Architecture overview - processes
• processes run as
• user
• systemui
• nobody
• messagebus
• haldaemon
• root
Juha Tukkinen / November 2007
code in your hands
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
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
Juha Tukkinen / November 2007
code in your hands
Architecture overview – development view
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
Juha Tukkinen / November 2007
code in your hands
GNOME Mobile – prevent mobile Linux fragmentation
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
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!
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