33
Introduction to Tizen 1

Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

  • Upload
    others

  • View
    42

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Introduction to Tizen

1

Page 2: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Platform

2

Hardware platform

• Hardware + production processes

Software platform

• Common execution environment that provides various functions

• Java, web browser, etc.

Service platform

• App store, Facebook, Kakao

Page 3: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Platform

3

Hardware significance is fading

Using which platform = Using service anywhere

• PC • Smart device

H/W • iOS • ANDROID

OS • SNS • KAKAO

APP

Page 4: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Mobile platform

4

Before mobile platforms

• Platforms were designed for specific embedded devices

• Manufacturers did not want to share their proprietary platforms

Page 5: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Mobile platform

5

Web based mobile platforms

• Provides robust and flexible environments

• Anytime, Anywhere, Any device, Anything

android and tizen part describes details of web-based mobile platforms

Page 6: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Platform Trends - User

6

Before smart devices • Users were aware of platform differences • Therefore, users did not expect anything different.

Now • User expectations are different • Users expect uniform experience

Reality • Unfortunately, manufacturers are providing different user experience

for every other device/application

Why? • Each platform has been designed for a specific embedded device • Manufacturers do not want to share their proprietary platforms

Page 7: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Platform Trends - User

7

Before smart devices • Users were aware of platform differences • Therefore, users did not expect anything different.

Now • User expectations are different • Users expect uniform experience

Reality • Unfortunately, manufacturers are providing different user experience

for every other device/application

Why? • Each platform has been designed for a specific embedded device • Manufacturers do not want to share their proprietary platforms

Page 8: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Platform Trends - Market

8

Appearance of IoT

Page 9: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

What if the platform could...

9

Run the same software on all the devices

• With few or no changes

Seamlessly connect the devices

Provide better convergence services to users

Be easily deployed on manufacturers' products

Allow new features/services to be added without hassle • Given the software complies to platform standards

Page 10: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

What if the platform could...

10

The same software can run on many devices

• With few or no changes

Devices can be connected more easily

Provide better convergence services to users

Manufacturers can deploy the platform on their products easily

New features/services can be added without breaking • Given the software complies to platform standards

The platform should have two features 1. Standard-based, Cross Category Platform 2. Open Source Platform

Page 11: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen

11

Standard-based, cross category platform

• Provide common & multiple categories of compliances

Page 12: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen

12

Open source platform

• Tizen project resides within the Linux Foundation

Page 13: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen

13

Strong industry support

Page 14: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen

14

Provides a robust and flexible environment for

HTML5 based applications

Provides SDK and IDE

Provides open source community

Tizen platform will be IoT-ready in near future

Page 15: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Android and Tizen

15

David and Goliath

Similar but Different

Page 16: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Android Architecture

16

Activity manager

Application

Application Framework

Kernel

Libraries

Surface manager Media

framework SQLite OpenGL/ES

FreeType Webkit SGL libc

Linux Kernel & device drivers

Native Application

Window manager Content providers View system Project manager

Telephony manager Resource manager Location manager Notification

manager

Core libraries

Dalvik Virtual machine

Page 17: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen 2.2 Architecture

17

Base/IO/Text/Locales

Graphics/UI Net/Telephony/Messaging

Uix Locations Social/Content Web/Xml Media

App/Security/System Services

W3C/HTML5 Device APIs

Web Runtime

Video Touch

CSS3 WebGL

Worker

BT Call

LBS NFC

Msg … …

Application

Web Framework

Kernel

Core Framework

Native Framework

Application Framework

Graphics & UI Multimedia Web Messaging Location

Security System Base Connectivity Telephony PIM

Linux Kernel & device drivers

Web Application Native Application

Core Application

Page 18: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Android Application Framework

Java based development

Execution through Android runtime layer ( Dalvik VM )

18

Activity manager

Application

Application Framework

Native Application

Window manager Content providers View system Project manager

Telephony manager Resource manager Location manager Notification

manager

Public API

Page 19: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen 2.2 Application Framework

Web(HTML5 based), Native(C/C++ based) application

Hybrid(HTML5 for UI, C/C++ for code) application

Execute without virtual machine

19

Base/IO/Text/Locales

Graphics/UI Net/Telephony/Messaging

Uix Locations Social/Content Web/Xml Media

App/Security/System Services

W3C/HTML5 Device APIs

Web Runtime

Video Touch

CSS3 WebGL

Worker

BT Call

LBS NFC

Msg … …

Application

Web Framework Native Framework

Web Application Native Application

Public API

Page 20: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

20

Android and Tizen 2.2 Application Framework

Android

Dalvik (Interpreter)

Application

Load

Execute

Tizen

Application (Native)

Application (Web)

Webkit

Execute

Execute

Page 21: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Tizen project flow

21

Tizen dev. environment

build

Tizen application

development

Tizen security : SMACK

Tizen platform

development

Linux kernel

development

Project 0 Tizen porting to Odroid-U3

Project 1 Tizen web application development

Project 2 Basic SMACK features

Project 3 SMACK Security rule modify

Project 4 New SMACK rules

Page 22: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

22

Project 0 : Tizen Porting

Embedded board

Linux host machine

Build project environment

• Target: Tizen mobile 2.2

• Host: Ubuntu 12.04 Linux

• Odroid-U3 & VU

Tizen platform

Linux kernel

Page 23: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 0 : Tizen Porting

23

Tizen build system workflow

pre build package

Source Material

gbs.conf

build.sh

device profile

kickstart Image Data

local package

remote package

image generation

config. analysis

apply profile

package compile

package splitting analysis

+ package

dependency analysis

*.rpm generation

Page 24: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 1 : Application Develop & Run

24

Tizen 2.2 architecture

Base/IO/Text/Locales

Graphics/UI Net/Telephony/Messaging

Uix Locations Social/Content Web/Xml Media

App/Security/System Services

W3C/HTML5 Device APIs

Web Runtime

Video Touch

CSS3 WebGL

Worker

BT Call

LBS NFC

Msg … …

Application

Web Framework

Kernel

Core Framework

Native Framework

Application Framework

Graphics & UI Multimedia Web Messaging Location

Security System Base Connectivity Telephony PIM

Linux Kernel & device drivers

Web Application Native Application

Core Application

Page 25: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

25

sdb이용해서 연결 한 화면

테스트 어플 크롬기반 에뮬레이터에 구동

테스트 어플 실제 기계에 구동

• screen-orientation 불일치

• 어플 코드 수정 후 제대로 동작

− 피아노 ㅋㅋ

Project 1 : Application Develop & Run

Page 26: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 1 : Application Develop & Run

26

sdb이용해서 연결 한 화면

테스트 어플 크롬기반 에뮬레이터에 구동

테스트 어플 실제 기계에 구동

• screen-orientation 불일치

• 어플 코드 수정 후 제대로 동작

− 피아노 ㅋㅋ

Page 27: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 1 : Application Develop & Run

27

Page 28: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 2 : Basic SMACK Features

28

Tizen 2.2 architecture

Base/IO/Text/Locales

Graphics/UI Net/Telephony/Messaging

Uix Locations Social/Content Web/Xml Media

App/Security/System Services

W3C/HTML5 Device APIs

Web Runtime

Video Touch

CSS3 WebGL

Worker

BT Call

LBS NFC

Msg … …

Application

Web Framework

Kernel

Core Framework

Native Framework

Application Framework

Graphics & UI Multimedia Web Messaging Location

Security System Base Connectivity Telephony PIM

Linux Kernel & device drivers

Web Application Native Application

Core Application

Page 29: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

29

Project 2 : Basic SMACK Features

Simplified Mandatory Access Control Kernel

Analyzing Features

• Main three components : Kernel, Utility, Data

• What are Domain, Label, Rule?

Getting adjusted to SMACK commands

• Commands : ls, id, ps, chsmack, attr …

• Extended attributes : SMACK64, SMACK64EXEC …

• Related files : /smack/access, /smack/load …

kernel 3.10v

platform

Tizen SMACK source

kernel SMACK source

Page 30: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

Project 2 : Basic SMACK Features

30

SMACK Units

• Object, Subject, Access permission

• Object: processes

• Subject: processes, files

SMACK Rules • SMACK rule files in /opt/etc/smack/

• Rule format

(subject) (object) (access permission)

When (subject) accesses (object), access between them follows (access permission)

E.g.: When (process) accesses (file), read only is permitted

Page 31: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

31

Project 3 : Security Problem

System Data

Manifest file

App Rule, Label

Manifest file

App

- Read permitted - Write home dir only

Not able to read/write

Cracking a system that does not include SMACK

SMACK roles in Tizen

Page 32: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

32

Project 4 : New SMACK Rules

Adding Rules

• For disposable files: Can be read only once

• For secret files: Can not be uploaded

Adding Feature

• How to make new rules invariant?

• New rules must be immutable for security reasons

To do : Linux kernel / Tizen platform source modification

Page 33: Introduction to TizenTizen 2.2 Application Framework Web(HTML5 based), Native(C/C++ based) application Hybrid(HTML5 for UI, C/C++ for code) application Execute without virtual machine

References

33

O’REILLY OSCON, Tizen Overview and Architecture

• http://www.oscon.com/oscon2013/public/schedule/detail/31475

KOREA LINUX FORUM 2012, Tizen Overview and Architecture

• https://events.linuxfoundation.org/images/stories/pdf/lceu2012_haitz

ler.pdf

TIZEN DEVELOPER CONFERENCE 2012, Tizen Architecture

• https://download.tizen.org/misc/media/conference2012/tuesday/ball

room-a/2012-05-08_1330-1410-tizen_architecture.pdf