Discover Maemo Santa Clara, CA Dec 09
Maemo 5 Architecture
Tapio Tolvanen Chief Architect, Maemo US
Overview
Discover Maemo Santa Clara, CA Dec 09
Contents
• Introduction • HW Architecture (Nokia N900) • SW Architecture (Maemo 5) • Developer tools architecture • Q&A
Discover Maemo Santa Clara, CA Dec 09
Maemo 5 Architecture Introduction
Discover Maemo Santa Clara, CA Dec 09
Product evolution Internet Optimized Multimedia Computer
Nokia N800
Nokia N810
Nokia N810 WiMAX Edition
Nokia 770
Nokia N900
Discover Maemo Santa Clara, CA Dec 09
Community
Open source projects
Software developed with the community
14.000 members 700 hosted projects 200 applications Maemo
Nokia is a key contributor to projects such as GNOME/GTK+.
Discover Maemo Santa Clara, CA Dec 09
Maemo 5 Architecture HW Architecture
Top Level view Runtime view “Developer” view
Discover Maemo Santa Clara, CA Dec 09
Runtime view Top level view
Cortex A8 (ARM)
PowerVR SGX
DSP
SDRAM ctrl, DMA, …
WLAN (802.11g)
Bluetooth (v2.1)
Modem (HSPA)
LCD (800x480)
MMC/SD Camera (5 Mpx)
Camera (VGA)
Accelero- meter
ALS
Proximity
USB (HS 2.0)
Touch
I2C
McBSP, UART
SPI SSI
OMAP 3430
Peripherals Keyboard, vibra, actuators…
… N900
Discover Maemo Santa Clara, CA Dec 09
Runtime view
boot ROM code
boot loader
kernel code
[initrd] rootfs
Runtime view - boot
Discover Maemo Santa Clara, CA Dec 09
Runtime view – Storage FLASH partitions Size Comments
Boot loaders… ~ 600 kB
Kernel 2048 kB
Initfs 2048 kB Not used
Rootfs 257280 kB UBIFS, “/”
eMMC partitions Size (32GB) Comments
/home/user/MyDocs ~ 28 GB FAT32
/home 2 GB ext3, /home/opt
/swap 768 MB swap
Discover Maemo Santa Clara, CA Dec 09
Developer view – Interfaces provided Component Low level interface Comments Accelerometer sysfs HAL, MCE Ambient light sensor sysfs HAL Bluetooth BTH, ALSA Bluez Camera(s) V4L2 gstcamerabin DSP DSP Bridge/OpenMAX gst elements FM TX ALSA Graphics accelerator driver, EGL OpenGLES2.0, clutter LCD framebuffer toolkits LEDs sysfs MCE, HAL MMC/SD Block device ext3, vfat Peripherals sysfs, input layer MCE, HAL TV-out Xrandr USB driver LINUX HS USB OTG WLAN driver 802.11g
Discover Maemo Santa Clara, CA Dec 09
Maemo 5 Architecture SW Architecture
Target Top level view, logical view, process view Subsystem examples Deployment view
Discover Maemo Santa Clara, CA Dec 09
Solid target SW architecture on Linux – first in taking Linux desktop paradigm to mobile devices & now in its 5th generation
Design characteristics: Allow collaborative development of operating system components in open source projects and differentiation by Nokia in user experiences.
Objective: Solid, high performance software architecture for Linux-based multimedia computer – modular, secure, open, and expandable.
Discover Maemo Santa Clara, CA Dec 09
Top Level Architecture
Essentials; Kernel; Multimedia, Graphics, Communications & System adaptation
AF, Content, Context, System, Multimedia, Communications, Runtimes
People, Places, Media, Internet
Base interface
Middleware interface
Maemo platform interface
Maemo services
<<layer>> base
<<layer>> Middleware
<<layer>> Independent applications
Discover Maemo Santa Clara, CA Dec 09
Rockstars in subsystem view
PulseAudio GStreamer
Telepathy
V4L2
Clutter
OpenGL ES
Gconf
upstart
HAL GLib
BlueZ
BusyBox
Linux Kernel
D-Bus
Hildon desktop
Tracker
Xorg
SQLite
MAFW
GUPnP
OHM
linuxwireless.org
Qt
Core System
Multimedia
Communic.
Data mgmt
Desktop
SDL GTK+, GDK Toolkits
Debian pkg mgmt
Discover Maemo Santa Clara, CA Dec 09
Process view
Run as System processes UI server processes
dsme
bme
mce
dbus-daemon
maemo-launcher
user
nobody
haldaemon
messagebus
root
hildon-desktop
hildon-input-method
sapwood server
hildon-home
Discover Maemo Santa Clara, CA Dec 09
Deployment view – APIs
Hildon APIs * libhildon * libhildondesktop * libhildonfm * libosso * libnotify * libtracker-common * libtracker-module
Toolkit APIs * Gio * Glib * Gobject * GTK+ * ATK * GDK * GDK-pixbuf * dbus * dbus-glib * gconf * pango * cairo * clutter
System SW APIs * libhal * libhal-storage * libalarm * mce-dev * libprofile
RTCOM APIs * telepathy-glib * farsight2-libs * farsight2-plugins * telepathy-farsight * libnice * libaccounts * libosso-abook * libebook * libedataserver
Connectivity APIs * libconic * libgwobex * bluez * osso-wlan * icd2
Application Interface APIs * calendar-backend * libcityinfo * libtime * liblocation * libsharing-plugin
Multimedia APIs * gstreamer * gstreamer-libs * gstreamer-plugins-0.10 * pulseaudio * gupnp * gupnp-av * libcanberra * libmafw * libspeex * mafw-shared * libsoup
Discover Maemo Santa Clara, CA Dec 09
Deployment view – Typical application
Application
Hildon
Gnome VFS GStreamer libosso GTK+
Pango ATK
Cairo D-Bus
GConf2
GObject GLib
A typical UI application
Discover Maemo Santa Clara, CA Dec 09
Maemo 5 Architecture Developer tools architecture
Scratchbox
Discover Maemo Santa Clara, CA Dec 09
Maemo SDK basics Development environment
Uses Scratchbox masquerades host system and tools to look like target fixes tools rather than packages for cross compilation similar development process to normal desktop
Why Scratchbox? a lot of reuse of existing components in OSS projects these components are not designed to be cross compiled speed of development
Simple to use apt-get source <any standard Maemo distribution package> dpkg-buildpackage
Flexible execution X86, ARMEL, qemu
Supported programming languages C, C++ and Python (C officially)
The actual Maemo SDK is Set of preconfigured Scratchbox targets and root file systems
26
Discover Maemo Santa Clara, CA Dec 09
Scratchbox architecture
PC Host
Scratchbox sandbox OS platform:
software for target “scratchbox”
Target device
sbrsh/nfs
devkits toolchains
CPU transparencies
rootstrap
host tools
Discover Maemo Santa Clara, CA Dec 09
That’s all folks!
Tapio Tolvanen Chief Architect, Maemo US
Thank you!
Top Related