21
Discover Maemo Santa Clara, CA Dec 09 Maemo 5 Architecture Tapio Tolvanen Chief Architect, Maemo US Overview

Maemo 5 Architecture by Tapio Tolvanen

Embed Size (px)

Citation preview

Page 1: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Maemo 5 Architecture

Tapio Tolvanen Chief Architect, Maemo US

Overview

Page 2: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Contents

• Introduction • HW Architecture (Nokia N900) • SW Architecture (Maemo 5) • Developer tools architecture • Q&A

Page 3: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Maemo 5 Architecture Introduction

Page 4: Maemo 5 Architecture by Tapio Tolvanen

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

Page 5: Maemo 5 Architecture by Tapio Tolvanen

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+.

Page 6: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Maemo 5 Architecture HW Architecture

Top Level view Runtime view “Developer” view

Page 7: Maemo 5 Architecture by Tapio Tolvanen

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

Page 8: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Runtime view

boot ROM code

boot loader

kernel code

[initrd] rootfs

Runtime view - boot

Page 9: Maemo 5 Architecture by Tapio Tolvanen

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

Page 10: Maemo 5 Architecture by Tapio Tolvanen

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

Page 11: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Maemo 5 Architecture SW Architecture

Target Top level view, logical view, process view Subsystem examples Deployment view

Page 12: Maemo 5 Architecture by Tapio Tolvanen

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.

Page 13: Maemo 5 Architecture by Tapio Tolvanen

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

Page 14: Maemo 5 Architecture by Tapio Tolvanen

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

Page 15: Maemo 5 Architecture by Tapio Tolvanen

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

Page 16: Maemo 5 Architecture by Tapio Tolvanen

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

Page 17: Maemo 5 Architecture by Tapio Tolvanen

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

Page 18: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

Maemo 5 Architecture Developer tools architecture

Scratchbox

Page 19: Maemo 5 Architecture by Tapio Tolvanen

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

Page 20: Maemo 5 Architecture by Tapio Tolvanen

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

Page 21: Maemo 5 Architecture by Tapio Tolvanen

Discover Maemo Santa Clara, CA Dec 09

That’s all folks!

Tapio Tolvanen Chief Architect, Maemo US

Thank you!