Maemo Chinook Software Architecture

4,938 views

Published on

maemo chinook software architecture

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,938
On SlideShare
0
From Embeds
0
Number of Embeds
42
Actions
Shares
0
Downloads
611
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Maemo Chinook Software Architecture

  1. 1. Chinook Software Architecture Juha Tukkinen Juha Tukkinen / November 2007
  2. 2. Content <ul><li>Architecture overview </li></ul><ul><ul><li>logical </li></ul></ul><ul><ul><li>process </li></ul></ul><ul><ul><li>development </li></ul></ul><ul><li>Major components </li></ul><ul><li>GNOME Mobile & maemo </li></ul><ul><li>Differences to other OS’s </li></ul>
  3. 3. Architecture overview
  4. 4. Architecture overview – logical view GNU/Linux X HAL GLib D-Bus core GTK+ Pango Cairo ATK Hildon Desktop Matchbox user interface Hildon Toolkit Applications Hildon plugins Sapwood GnomeVFS system services GConf GStreamer BlueZ E-D-S Telepathy LibConIC connectivity & communications Hildon Input Method
  5. 5. Architecture overview - logical 2
  6. 6. Architecture overview - multimedia
  7. 7. Architecture overview - processes <ul><li>processes run as </li></ul><ul><ul><li>user </li></ul></ul><ul><ul><li>systemui </li></ul></ul><ul><ul><li>nobody </li></ul></ul><ul><ul><li>messagebus </li></ul></ul><ul><ul><li>haldaemon </li></ul></ul><ul><ul><li>root </li></ul></ul>
  8. 9. Architecture overview - processes <ul><li>Important system software processes </li></ul><ul><ul><li>dsme – Device State Management Entity, a watchdog </li></ul></ul><ul><ul><li>bme – Battery Management Entity </li></ul></ul><ul><ul><li>mce – Mode Control (e.g. offline, device lock, leds) </li></ul></ul><ul><ul><li>dbus-daemon – system&session, IPC for a desktop session, launches singleton applications, lifecycle tracking </li></ul></ul><ul><ul><li>maemo-launcher – speeds up application startup </li></ul></ul>
  9. 10. Architecture overview - processes <ul><li>User interface server processes </li></ul><ul><ul><li>hildon-desktop </li></ul></ul><ul><ul><li>hildon-input-method </li></ul></ul><ul><ul><li>sapwood-server - theme engine </li></ul></ul><ul><ul><li>matchbox-window-manager </li></ul></ul><ul><ul><li>clipboard-manager </li></ul></ul>
  10. 11. Architecture overview – development view
  11. 12. Major components GNU/Linux X HAL GLib D-Bus core GTK+ Pango Cairo ATK Hildon Desktop Matchbox user interface Hildon Toolkit Applications Hildon plugins Sapwood GnomeVFS system services GConf GStreamer BlueZ E-D-S Telepathy LibConIC connectivity & communications Hildon Input Method
  12. 13. GNOME Mobile – prevent mobile Linux fragmentation
  13. 14. Differences to other mobile operating systems <ul><li>builds on existing open source desktop components </li></ul><ul><li>all basic frameworks’ source code available </li></ul><ul><li>applications do not need signing </li></ul><ul><li>SDK open source </li></ul><ul><li>development environment free software </li></ul><ul><li>ITOS contains also closed parts </li></ul>
  14. 15. Architecture overview - challenges <ul><li>Architecture heritage from GTK+ and GNOME </li></ul><ul><li>Multiple APIs for the application developer </li></ul><ul><li>Upstream APIs naturally change </li></ul><ul><li>maemo specific APIs </li></ul><ul><li>Documentation/API quality varies a lot </li></ul><ul><li>Native application development language is C </li></ul><ul><li>Not many available standards in mobile Linux </li></ul><ul><li>… it is a hacker’s world both in good and bad! </li></ul>
  15. 16. Architecture overview - achievements <ul><li>avoided “not invented here” </li></ul><ul><li>largely same software components as in a normal GNU/Linux desktop </li></ul><ul><li>maemo is an open embedded mobile platform </li></ul><ul><li>embrace existing policies (e.g. Debian packaging) </li></ul><ul><li>support existing de facto standards </li></ul><ul><li>porting existing desktop software made easy </li></ul>

×