Open Source Software in mobile devices. Timofey Turenko Nokia Research Center, Office of CTO

Similar documents
Mobile Linux Mojo. The XYZ of Mobile TLAs PDQ! Bill Weinberg January 29, Copyright 2009 Bill Weinberg, LinuxPundit,com

University co-operation with Maemo SW FRUCT seminar Tampere Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Integrating Open Source Tools for Developing Embedded Linux Applications

An overview of mobile and embedded platforms

Coda Fine 1.0 Distributed File System Manager Manual

Mobile Phone Programming

FutureWalker

RTOS, Linux & Virtualization Wind River Systems, Inc.

Phony Programming (Series 60 Symbian Phones)

Mobile Phone Programming

Moblin v2 SDK. Open Source Technology Center Presented by Bob Spencer

SMARTPHONE OPERATING SYSTEMS

The Mobile-Phone Domain and CELF. Scott E. Preece Motorola Mobile Devices Linux OS Development

Android App Development

Nokia for developers. Alexey Kokin. Developer Relations

Phony Programming (Series 60 Symbian Phones)

Android Sdk Tutorial For Windows 7 64 Bit Full Version

Introduction To Android

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

Poky Linux & OpenEmbedded based environment

Qt + Maemo development

Qt in MeeGo. Zhang Chi Manager of Qt & MeeGo ecosystem, Greater China

Ahmed Ali Big fan of Android

How To Install Java Manually Linux Mint 14 >>>CLICK HERE<<<

Google Android. 2008/3/10 NemusTech, Inc. Lee Seung Min

Familiar Linux for the ipaq H3975 (XScale Processor) CSC 714 Real Time Computing Systems Term Project

Adding Advanced Shader Features and Handling Fragmentation

Sony Ericsson Bluetooth Connect To Pc Suite For Windows 8

Trolltech's success with dual licensing 12 Years Of Symbiosis

Android System Development Training 4-day session

Colin Turfus, Symbian Developer Network. Developer essentials for Symbian OS

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Linux Essentials. Smith, Roderick W. Table of Contents ISBN-13: Introduction xvii. Chapter 1 Selecting an Operating System 1

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Miguel de Icaza A Genius Free Software Evangelist. Cristhian Figueroa PhD Student Ingegneria Informatica e dei Sistemi Politecnico di Torino 2013

Hands-on with the Sitara Linux SDK

Embedded Linux UI Comparison. Tim Bird Senior Staff Software Engineer Sony Electronics

MMAPI (Mobile Media API) Multimedia Framework for Mobile Devices

Firepoint: Porting Application to Mobile Platforms

Android. (XKE Mars 2009) Erwan Alliaume.

Lecture 1 Introduction Pervasive & Mobile Computing MIT 6.883

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

T Multimedia Programming. Different Operating Systems and their Multimedia Support

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Copyright

Embedded Systems. Mail: Web: Université de Nice - Sophia Antipolis

Programmazione di sistemi mobili e tablet

Integrated Software Environment. Part 2

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

IJRDTM Kailash ISBN No Vol.17 Issue

Tooling for Success: Embedded Linux File System Management

Android Programmierung leichtgemacht. Lars Vogel

Copyright

More performance options

Lab 6: OS Security for the Internet of Things

Chapter 2: Operating-System Structures

Lab 6: OS Security for the Internet of Things

Android - open source mobile platform

See the Power of Software - Optimizing mobile applications

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

Manual Java For Mac Developer Package

Palm Platform Hardware Intro to the Palm OS and application programming

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Introduction to Linux Spring 2014, Section 02, Lecture 3 Jason Tang

Our software strategy

Building graphic-rich and better performing native applications. Pro. Android C++ with the NDK. Onur Cinar

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Yocto Project components

Systems Programming. The Unix/Linux Operating System

Embedded Linux Birds of a Feather Session

Software Development. Integrated Software Environment

August 4, 2008 August 11, 2008 August 18, 2008 August 25, Avg. Time on Site 00:06:55 Site Avg: 00:05:35 (23.74%)

JavaME TAMZ. Department of Computer Science VŠB-Technical University of Ostrava

HOW TO INTEGRATE NFC CONTROLLERS IN LINUX

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Eclipse Environment Setup

Embedded Linux development made easier. User s manual. Version:

Kick Start your Embedded Development with Qt

Fragmentation vs Interoperabilty Jean-Pierre Temime, France Telecom-Orange

CS260 Intro to Java & Android 04.Android Intro

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Android Sdk Setup For Windows 7 32 Bit Full Version

Mobile Terminal Software Platform OPP

Connecting with Tizen : An Overview & Roadmap. Mohan Rao

SMARTPHONE MARKETS AND TECHNOLOGIES

Android Studio Setup Procedure

Introduction to Linux

Qt for Device Creation

Gentoo Linux. Software Freedom Day 2010 Charleston, SC Linux User Group. Presentation by Kevin Bowling

Step into Green Computing Consortium

The Evolution of Mobile Technology Part 4: Breaking Down Challenges in Open Source Tricks of the Trade

Unit 10. Linux Operating System

Android Sdk Install Documentation Eclipse. Ubuntu >>>CLICK HERE<<<

Linux and Open Source in Samsung

Embedded Systems Programming

SSQA Seminar Series. Server Side Testing Frameworks. Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007

Tutorial on Basic Android Setup

Static analysis for quality mobile applications

Wireless Internet Platform for Interoperability (WIPI(

Program for Advance Telecom Services (PATS) Mobile Developer Days

Transcription:

Open Source Software in mobile devices Timofey Turenko timofey.turenko@nokia.com Nokia Research Center, Office of CTO

Agenda What is OSS? How did OSS come into mobile? OSS platforms for mobile devices Maemo

What is OSS? 1/2 The source code is available and you can read it, modify it, compile it Free Software Foundation (FSF) (www.fsf.org), 1985 GNU project GNU licences Free Software Directory (http://directory.fsf.org/) The Free Software Definition Projects hosting Open Source Initiative (OSI), 1998 (http://www.opensource.org/) reviewing and approving licenses: do they comply with OpenSource Definition? Very very long list of available software http://directory.fsf.org/ http://en.wikipedia.org/wiki/list_of_open_source_software_packages Sourceforge.net hosted 311583 projects yesterday (177,686 projects 22.05.2008)

What is OSS? 2/2 Open Source Free Free SW can be closed source (Google Picasa) If you have source code it doesn't automatically mean you can use it in any way you want (Software IPRs!!!, mp3 codec) Open Source GPL: there are a lot of different licenses It is a good idea to read license agreement

How did OSS come into mobile? 1/3 Mobile devices become more and more complex and more close to PC: now mobile phone looks like a multimedia computer and Internet center We need applications from 3 rd party developers Platform should be open for 3 rd party developers How to inspire people and companies to create applications for our platform? Experienced PC application developers should be able to start creating applications for mobiles without significant reeducation It should be easy to port existing applications to mobile device Not necessary to create everything from scratch There are a lot of useful code under GPL: if we use GPL code it have to be open source

How did OSS come into mobile? 2/3 How can I develop for mobile? JavaME: virtual machine, slow, limited capabilities Proprietary OS with some public APIs: special knowledge is needed; proprietary SDKs; a lot of limitations Symbian Windows Mobile Mac OS Is it possible to run PC OS in mobile? Different HW, different processor architecture (ARM), device is always on Strong power consumption and heat dissipation requirements Reliability: blue screen of death is not good for mobile phone Security: do you want some hacker can use your phone to send spam sms? Let's take Linux and modify it to be suitable for mobile!

How did OSS come into mobile? 3/3 Embedded Linux some hacker's Linux ports: HP ipaq A lot of linux powered devices: routers, measuring instruments, internet kiosks, navigators Why Linux? Highly configurable: we can get rid of all unnecessary stuff to optimize for mobile There are ports and compilers for a number of processor architectures (Intel, ARM, Alpha, SPARC, PowerPC, SuperH, MIPS, Motorola 68000,...) Official support from many processor vendors OSS means we can modify everything A lot of applications and developer tools A lot of developers It is good to have the same OS on mobile and PC There are well tested and stable versions

Alternatives Maemo Nokia + Community Android Google, Open Headset Alliance LiMo A number of supporters leaded by Motorola Moblin Open source project supported by Intel Qtopia phone edition Trolltech Openmoko TuxPhone Group of enthusiasts (~5 persons)

MAEMO Devices are available on the market (in Russia www.linuxcenter.ru) Nokia provides support (see www.maemo.org) Regular device SW, SDK, tutorials updates Help with applications distribution and promoting (Maemo repositories) A big number of applications from Nokia Big number of available applications: maemo extras, garage.maemo.org Wide range of development tools: almost all that you can find in Linux Linux SDK with cross compile and emulation tools: you can compile for ARM and run on device or you can compile for i386 and run on PC

Android Only one device is available now (T Mobile G1, made by HTC) Hacker's ports testing result: very slow (UI written in Java, only Java is available for application developers) Cross platform SDK (Java + Eclipse + Android plug in) Licensing issues are not clear (complex combination of Linux kernel, Google code and hardware vendor code (drivers, device specific applications)) A lot of restrictions in SDK

LiMo SDK from Motorola: MOTODEV Studio Trial license, valid until December 31, 2008 No right to disclose info on SDK and other software test results Closed source, available to free download in binary form Contains a limited number of source files (application examples): no right to disclose them Right to use them to develop your own application No right to disclose your own code if it uses these source files or parts of these files Functionally incomplete (info from Motorola web site) There are a number of devices on the market now Motorola ROKR EM30, MOTOZINE ZN5, U9, MOTO Z6w, MOTORAZR2 V8,...; NEC NTTDOCOMO FOMA 906im; Panasonic NTT DOCOMO FOMA P906i; Aplix OPAL; LG LiMo Phone; Purple Labs Purple Magic OS Source code is open only for kernel and some libraries, but device drivers, UI, user applications, and many key libraries are closed; a lot of closed APIs Big question about future licensing and openness

Moblin Open source project supported by Intel Linux port for Intel Atom processors Main target Mobile Internet Devices (MID): small laptops like Eee PC, OLPC Cooperates with Ubuntu Mobile Uses Hildon desktop and libosso (there are a lot of links from moblin.org to the documentation on maemo.org) Application porting between Moblin and Maemo should be an easy task SDK uses Intel C++ compiler (not GNU) Free for download (now), but not open source GNU compilers exist, but there is no any notice about them on moblin.org To install a new application to the mobile device it is necessary to create a new image with Moblin Image Creator and re flash the device Moblin Image Create tool is a set of bash and python scripts

Maemo vs desktop Linux Different CPU architecture (do we need to know about it?) Security mode: single user desktop Light weight base system: BusyBox instead full set of GNU utilities Hildon Desktop Optimized for small screen Input methods: touch screen support, virtual keyboard, handwriting recognition Device state monitoring and improved power management (proprietary code) Battery monitoring Go to sleep mode as soon as possible, switch off unused HW Screen backlight control LibOSSO: maemo initialization, battery status messages, application state saving, OSSO category databases JFFS2 filesystem (compressed)

MAEMO SDK Scratchbox GNU toolchain: compilers, linkers, debuggers, profilers ARM i386 Rootstrap a clone of device root filesystem Xepher virtual X server (emulates device screen)

Application porting Command line apps: just compile in Scratchbox for ARM (do not forget to check for missing libraries) Graphical apps GTK+ should not be used directly; use Hildon instead Consider state saving issue Try to avoid unnecessary HW usage: BATTERY!!!

How to start Download SDK install scripts from maemo.org Try to port something or try to create HelloWorld: see Maemo 4 Quick Start Guide and Maemo Diablo Reference Manual Or go to garage.maemo.org: you can find a lot of Open Source application use them as examples Java, Phyton? Why not? It should work... Something you do not like in Maemo? SDK? Any ideas how to improve? Let's create your own project, contact community, contact Nokia,...

Questions? Ideas? Projects?