Architecture Tizen
Dominig ar Foll
(Intel Open Source Technology Centre)
<dominig.arfoll@fridu.net>
Stéphane Desneux
(Eurogiciel)
<stephane.Desneux@eurogiciel.fr>
Solutions Linux - Mai 2013
3 Architecture Tizen – Solutions Linux 2013
Eurogiciel
Intégrateur et développeur Open source :
• Tizen : Tizen PC / Tizen Application ; Meego
• Développement embarqué multimédia :
- Widi/Miracast stack
- Wayland/Weston
- Browser Webkit2 avec acceleration HW
• Application: HTML5/CSS3, jquery, jqmobi, Cordova
4 Architecture Tizen – Solutions Linux 2013
1. Tizen Is Open Source Project
• Upstream projects used by Tizen:
– X Windows, Cairo, EFL for UI and graphics
– Gstreamer, PulseAudio, OpenAL for multimedia
– Connman, BlueZ, libsoup, wpa_supplicant for connectivity
– WebKit for Web
– Smack and OpenSSL for security
– Dbus, glibc for base
– Sqlite for database and PIM
– Linux for OS Kernel
– Eclipse for Tizen SDK
– QEMU, U-Boot for target Emulator
– GCC, llvm, cmake, gbs for build
– And more…
5 Architecture Tizen – Solutions Linux 2013
1. Tizen Is Open Source Project | Contribution to OSS
• Intel and Samsung maintain or significantly contribute to:
– Linux, WebKit, EFL, GStreamer, U-Boot, FFMPEG, WebCL, Cairo,
BlueZ, QEMU, GCC, ConnMan, NFC, PulseAudio, Smack, Wayland,
oFono, X, wpa_supplicant, Dbus, glibc, OpenGL, Geoclue, and libsoup
– With notices, attributions, full license statements, and compliance to
other obligations
• Virtually everything newly developed for Tizen has been open-
sourced under Apache 2.0 License:
– app-core, WRT(Web Runtime), system-server, sensor-fw, app-service,
slp-pkgmgr, libslp-pm, msg-service, email-service, telephony-daemon,
audio-session-manager, contacts-service, slp-calendar, accounts-svc,
sync-fw, cert-svc, secure-storage, nfc-manager, and more.
8 Architecture Tizen – Solutions Linux 2013
4. Tizen Is Standards-based | HTML5/W3C API Support
• Tizen has the top score in html5test.com
• HTML5 is being adopted rapidly, especially for mobile Web app
development
[1] http://www.dotcominfoway.com/blog/dot-com-infoway-releases-html5-infographic
9 Architecture Tizen – Solutions Linux 2013
Tizen Release History
Web-centric platform
●
Highest HTML5 coverage
●
Tizen Device Web API
●
Web UI framework
(jQueryMobile based
Extension)
Web-centric platform
●
Highest HTML5 coverage
●
Tizen Device Web API
●
Web UI framework
(jQueryMobile based
Extension)
Tizen 1.0 Web/native dual framework
• Native API
• Unified SDK for Web and native
• Web Runtime based on WebKit2
• Web Audio, HTML Media Capture
• HTML Drag & Drop, Clipboard API
Web/native dual framework
• Native API
• Unified SDK for Web and native
• Web Runtime based on WebKit2
• Web Audio, HTML Media Capture
• HTML Drag & Drop, Clipboard API
Tizen 2.0
Readiness for commercialization in
terms of stability & maturity
●
Hybrid Web and native app
support
●
Content security policy
●
Trusted inter-app sharing
●
Account management
●
QR code and image recognition
●
Systemd replacing init daemon
Readiness for commercialization in
terms of stability & maturity
●
Hybrid Web and native app
support
●
Content security policy
●
Trusted inter-app sharing
●
Account management
●
QR code and image recognition
●
Systemd replacing init daemon
Tizen 2.1
Linux kernel 2.6.36
Linux kernel 3.0 (w/ many 3.4 features backported, such as CMA/IOMMU)
Memory optimization for graphics (Framebuffer DRM/GEM, DMABUF)
eMMC 4.5 support, V4L2 (for codec and camera) support
Apr. 2012
Feb. 2013
May. 2013
13 Architecture Tizen – Solutions Linux 2013
• Web framework
– Provides state-of-the-art HTML5/W3C APIs, Web UI framework, supplementary
APIs, and additional Tizen device APIs
• Native framework
– Supports full-featured native application development and provides a variety of
features like background service, image and face recognition, and TTS/STT
• Core
– Underlying layer for Web and native providing common functionalities and a
security mechanism
– HW adaptation layer with plug-in
architecture
– OpenGL® ES/EGL graphics driver
Architecture Overview in Detail
14 Architecture Tizen – Solutions Linux 2013
[Ref] Presentation Map
WebKit for Tizen
Creating Tizen native apps
with the native UI framework
Tizen Web Runtime
update
Perf. optimization for Tizen
WebKit: memory and graphic
Tizen compliance overview
Tizen compliance tests
Tizen input service
framework
How to embrace
Wayland for Tizen
Protecting JS code
during Web Runtime
Tizen telephony framework
In 2.1: what’s new?
HTML5 features
for Tizen
Next generation BlueZ and BT
Smart devicesSMACK
It may be simple
but how is it useful,
smack me now
Tizen Web
Device API
Migration of existing
Web apps to Tizen
15 Architecture Tizen – Solutions Linux 2013
• Native and Web frameworks are complementary to each other
– Web is strong in portability, ease of app development, and has a minimal learning curve
– Native is relatively better in terms of performance and memory consumption
– Native enables reusing the existing engine and libraries written in C & C++ in app
development
Web vs. Native Framework
16 Architecture Tizen – Solutions Linux 2013
• Different combinations for mixing Web and native, depending on
the characteristics or requirements of the app to be developed
Web and Native: Mix & Match
Using W3C
APIs only
W3C + Device API Web app for UI with
native app for service
Standard
C/C++ based
Tizen Native API
with standard C/C++
Native app
with WebControl
Web app
with plug-in
Hybrid appWeb app Native app
Highly portable Portable and feature-rich Performance-centric
and feature-rich
Apps with bg monitoring
(location, push,)
Highly reusable
(source-code level)
17 Architecture Tizen – Solutions Linux 2013
• Both are native in nature but focusing on different aspects
• Core focuses on:
– Providing common functionalities to Web and native frameworks
– No need to guarantee app binary compatibility (ABC)
– Performance and power optimization
• Native framework focuses on:
– Application development productivity while guaranteeing ABC
– Well-documented API references, developer guide, sample codes, and
associated tools
Native Framework vs. Core
18 Architecture Tizen – Solutions Linux 2013
• Web and native applications
– Apps using only public APIs to get full
support for package installation and
upgrade, security, backward compatibility,
and so on
– Many sample apps included in the SDK
• Core applications
– Apps using Core APIs to fully utilize device
capabilities such as telephony
– Usually implemented and preloaded by
device implementers
– Backward binary compatibility is not
guaranteed
Application Types
v v
v
19 Architecture Tizen – Solutions Linux 2013
• W3C standard Web APIs
– W3C/HTML5 markup, CSS, and
JavaScript APIs
• Supplementary APIs
– De-facto APIs (such as Khronos and
Mozilla)
• Tizen Device APIs
– Advanced access to the device's
platform capabilities
• UI framework
– jQueryMobile-based
– Tools, such as widgets, events,
effects, and animations
Web Framework
20 Architecture Tizen – Solutions Linux 2013
• Package management
(such as installation and
update)
• Execution and life-cycle
(such as launching, pause, and
resume)
• Runtime security
(such as API/network access
and sandboxing)
• Platform integration
Web Runtime
21 Architecture Tizen – Solutions Linux 2013
• Since 2.0, Tizen is using WebKit2 (http://www.webkit.org)
– Split process model for web content and UI with non-blocking APIs
– UI responsiveness, robustness, security, and better use of multicore
CPUs
WebKit2 based Browser and Web Runtime
22 Architecture Tizen – Solutions Linux 2013
• HTML5 Canvas is accelerated by
– Cairo OpenGL® ES backend
• WebGL
– Directly uses OpenGL® ES
– Triple buffering
Web 2D and 3D Graphics
2D Canvas performance score WebGL fps test
Performance Optimization in Webkit
Day2: 15:15-15:55 Seojin Kim
Performance Optimization in Webkit
Day2: 15:15-15:55 Seojin Kim
23 Architecture Tizen – Solutions Linux 2013
• Released in Tizen 2.0
• Set of C++ namespaces with more than 10,000 APIs
– Base, IO, App, Security, Graphics and UI, Net, Messaging, Social, Locations, Web,
etc
• Support for standard C/C++, and popular open source libraries
– eglibc, STL, libstdc++, libxml2, OpenGL® ES, OpenAL, and OpenMP®
• Multiprocessing support
– OpenMP, GCD
Native Framework
24 Architecture Tizen – Solutions Linux 2013
Core
• Providing common features
– Various native and Web APIs
are implemented using the
functionalities of core modules
• Unified management for:
– Package (un)installation and
upgrade
– Launching applications
– Windows for different apps with
E17
– Sensor loading and value
retrieval
– Power consumption
– Connectivity
– Security enforcement with
Smack from the kernel
– And more..
30 Architecture Tizen – Solutions Linux 2013
Tizen 3.0 @ tizen.org
• All development at @ tizen.org
– Git trees are maintained @ tizen.org
– Patch submission via Gerrit @ tizen.org
– Daily / Weekly images availability @ tizen.org
• Upstream and Tizen specific packages already available @
tizen.org
• Generic Images are available @ tizen.org
– Images for IVI and mobile platforms is being worked @ tizen.org
The Tizen Development Model
Day2: 14:15-14:55 Anas Nashif
The Tizen Development Model
Day2: 14:15-14:55 Anas Nashif
31 Architecture Tizen – Solutions Linux 2013
Conclusions
• Tizen is Standard-based, open source, cross category software platform
under Linux Foundation that has strong industry support.
• Architecture:
– Linux Kernel 3.0
– Core,
– Web and Native frameworks
• Profiles
– Mobile
– IVI
• Tizen 3.0 Development @ tizen.org
32 Architecture Tizen – Solutions Linux 2013
Questions ? / En savoir plus
• Point d'entrée : https://www.tizen.org
• Développeurs : https://developer.tizen.org
• Open source: https://source.tizen.org
• Bugs : https://bugs.tizen.org
• mailto:philippe.coval@eurogiciel.fr
• https://wiki.tizen.org/wiki/User:Pcoval
33 Architecture Tizen – Solutions Linux 2013
Remerciements
• Dominique, Patrick, Romuald, Daniel pour les ressources de ce
document.
• BeMyApp pour l’organisation du Devlab Tizen
• Les équipes TizenPC, WRT, et SDK.
• Tout le monde à Intel OTC et partenaires (dont Eurogiciel)
• Les fondateurs de Tizen : Intel, Samsung, et ex MeeGo.
• Les projets opensources : WebKit, Gnome, EFL, Linux, Eclipse...
Notas del editor
Slide 1 Nom de votre présentation Votre Nom + email et le mien + email. Vous excusez pour moi car je bloqué au Japon avec Linux Con. Cela vous permettra d'introduite Eurogiciel (Vannes) comme étant en charge de l'intégration de Tizen avec Intel. A la question "Intel a un site à Vannes ?" La réponse est "Intel possède Wind River qui a un site à Vannes depuis 20 ans".
Here is a component view of Tizen SW Architecture. It is based on Linux Kernel. On top of Linux Kernel, there is the core service layer with native implementation. There are the application framework, Graphics & UI, Multimedia, Web, Messaging, Location, Security, System, Base, Connectivity, Telephony and PIM are composing this layer. On top of core services layer, Tizen provide Web APIs for Web applications. Let me explain more details about each layer from bottom to top