The document provides an overview of the Maemo 5 architecture, including the hardware architecture of the Nokia N900, the software architecture of Maemo 5, and the developer tools architecture using Scratchbox. It describes the modular, open source-based design of the Maemo 5 software stack and its subsystems like the desktop, toolkits, multimedia, and core system components. It also outlines the deployment APIs and typical application development using the Maemo SDK and Scratchbox cross-compilation tools.
4. Product Multimedia Computer
Internet Optimized
evolution
Nokia N900
Nokia N810
WiMAX Edition
Nokia N810
Nokia N800
Discover Maemo
Nokia 770
Santa Clara, CA Dec 09
5. Software developed with the
community
14.000 members
700 hosted
projects
200 applications
Maemo
Nokia is a key
contributor to
Community projects such as
GNOME/GTK+.
Open source
projects
Discover Maemo
Santa Clara, CA Dec 09
6. Maemo 5 Architecture
HW Architecture
Top Level view
Runtime view
“Developer” view
Discover Maemo
Santa Clara, CA Dec 09
7. Top level view
Runtime view Peripherals
Keyboard, vibra, actuators…
WLAN
N900
(802.11g) …
OMAP 3430
Bluetooth
Proximity
(v2.1) Cortex A8
(ARM)
Modem SPI
I2C ALS
(HSPA) SSI PowerVR
DSP
SGX
USB Accelero-
(HS 2.0) SDRAM ctrl, DMA, …
meter
McBSP, UART
LCD Camera Camera
Touch MMC/SD
(800x480) (5 Mpx) (VGA)
Discover Maemo
Santa Clara, CA Dec 09
8. Runtime view - boot
rootfs
[initrd]
kernel
code
boot
loader
boot
ROM
code
Discover Maemo
Santa Clara, CA Dec 09
10. 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
Discover Maemo driver 802.11g
Santa Clara, CA Dec 09
11. Maemo 5 Architecture
SW Architecture
Target
Top level view, logical view, process view
Subsystem examples
Deployment view
Discover Maemo
Santa Clara, CA Dec 09
12. Solid target SW architecture on Linux – first in
taking Linux desktop paradigm to mobile devices & now in its
5th generation
Objective: Solid, high performance software
architecture for Linux-based multimedia computer
– modular, secure, open, and expandable.
Design characteristics: Allow collaborative
development of operating system components in
open source projects and differentiation by Nokia in
user experiences.
Discover Maemo
Santa Clara, CA Dec 09
13. Top Level Architecture
<<layer>> Independent applications
People, Places, Media, Internet Maemo services
Maemo platform interface
Middleware interface
<<layer>> Middleware
AF, Content, Context, System, Multimedia, Communications, Runtimes
Base interface
<<layer>> base
Essentials; Kernel; Multimedia, Graphics, Communications & System
Discover Maemo
adaptation
Santa Clara, CA Dec 09
14. Rockstars in subsystem view
Desktop Hildon desktop Clutter
Toolkits Qt GTK+, GDK SDL
Data mgmt SQLite Debian pkg mgmt Tracker
Communic. Telepathy GUPnP BlueZ
Multimedia PulseAudio GStreamer MAFW
linuxwireless.org OpenGL ES
V4L2 OHM upstart
Core
BusyBox Gconf D-Bus
System
Xorg HAL GLib
Discover Maemo Linux Kernel
Santa Clara, CA Dec 09
15. Process view
Run as System processes UI server
processes
user dsme hildon-desktop
nobody bme hildon-input-method
haldaemon mce sapwood server
messagebus dbus-daemon hildon-home
root maemo-launcher
Discover Maemo
Santa Clara, CA Dec 09
17. Deployment view – Typical application
Application
A typical UI application
Hildon
GTK+
Gnome VFS GStreamer libosso
GConf2
Pango ATK
Cairo D-Bus
GObject GLib
Discover Maemo
Santa Clara, CA Dec 09
18. Maemo 5 Architecture
Developer tools architecture
Scratchbox
Discover Maemo
Santa Clara, CA Dec 09
19. 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
Discover Maemo
Set of preconfigured Scratchbox targets and root file systems
Santa Clara, CA
26 Dec 09
20. Scratchbox architecture
Scratchbox sandbox
OS platform:
“scratchbox” software for target
devkits toolchains rootstrap
CPU transparencies
host tools
PC Host
sbrsh/nfs
Target device
Discover Maemo
Santa Clara, CA Dec 09
21. That’s all folks!
Thank you!
Tapio Tolvanen
Chief Architect, Maemo US
Discover Maemo
Santa Clara, CA Dec 09