1 44 Understanding Tizen Platform Embedded Software Lab
1 44 Understanding Tizen Platform Embedded Software Lab. @ SKKU
2 Syllabus 44 • Main text – No regular textbooks • References – Tizen. org – Tizen Developers Conference – Tizen Source Code • Grading policy (subject to change) – Attendance: 5% – Final exam: 35% – Team Project: 60% Embedded Software Lab. @ SKKU
3 Team Project 44 • Contributing Tizen Open Source – Should modify Tizen Linux kernel or Tizen Platform • No application-level work – Should demonstrate your work at Tizen-ported Odroid-U 3 board. – Schedule • Proposal: 10/27, Demo & Report: 12/8 – Team: 3~4 students – Graded by professor (50%) and other students (50%) • Or Study and Present a Tizen-related Topic (1 hr) Embedded Software Lab. @ SKKU
4 Device 44 • Odroid-U 3 – – – 1. 7 GHz Quad-Core processor and 2 GByte RAM 10/100 Mbps Ethernet with RJ-45 LAN Jack 3 x High speed USB 2. 0 Host ports Audio codec with headphone jack on board GPIO/UART/I 2 C ports Embedded Software Lab. @ SKKU
5 44 Introduction to Tizen Platform Embedded Software Lab. @ SKKU
6 Proprietary Platform 44 • Manufacturers provide different applications and user experiences • Why could not manufacturers provide the same platform for their devices? – The platform has been designed for a specific embedded device. – Manufacturers do not want to share their proprietary platforms. Embedded Software Lab. @ SKKU
7 Tizen is, 44 • Standard-based, cross category platform – Provide common & multiple categories of compliances • Open Source Platform – Tizen project resides within the Linux Foundation • Provides a robust and flexible environment for HTML 5 based application Embedded Software Lab. @ SKKU
Tizen is W 3 C Standard-Based • HTML 5 is being adopted rapidly, especially for mobile Web app development • Tizen has the top score in html 5 test. com Embedded Software Lab. @ SKKU 8 44
9 Industry Support 44 • NEC, Panasonic, and Telefonica leaved Tizen Association. • Telefonica: Firefox Phone Embedded Software Lab. @ SKKU
10 Tizen Releases 44 Embedded Software Lab. @ SKKU
11 Tizen Releases 44 • Tizen 2. x Mobile source code continues to be productized Embedded Software Lab. @ SKKU
12 Tizen Releases 44 • Tizen 3. 0 – All development happens at tizen. org • Most of code is common and close to upstream development – Moved from in-out to out-in development – Tizen IVI continues to be developed in tizen. org – Configurable and multi-product support with one code base Embedded Software Lab. @ SKKU
Tizen Open Source Information • Visit – – http: //www. tizen. org http: //developer. tizen. org/sdk http: //source. tizen. org/ https: //developer. tizen. org/documentation • Community – – Mailing lists: http: //www. tizen. org/community/mailing-lists IRC Channel: #tizen Wiki: https: //www. tizen. org/community/wiki JIRA: http: //bugs. tizen. org • Tizen Developer Conference – https: //www. tizen. org/conference Embedded Software Lab. @ SKKU 13 44
Open Source Projects within Tizen • Upstream projects used by Tizen: – X Windows, Cairo, EFL for UI and graphics – Gstreamer, Pulse. Audio, Open. AL for multimedia – Conn. Man, Blue. Z, libsoup, wpa_supplicant for connectivity – Web. Kit for Web – Smack and Open. SSL 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 – GC, llvm, cmake, gbs for build – And more… Embedded Software Lab. @ SKKU 14 44
Open Source Projects within Tizen (cont) 15 • Intel and Samsung maintain or significantly contribute to: – Linux, Web. Kit, EFL, GStreamer, U-Boot, FMPEG, Web. CL, Cairo, Blue. Z, QEMU, GCC, Conn. Man, NFC, Pulse. Audio, Smack, Wayland, o. Fono, X, wpa_supplicant, Dbus, glibc, Open. GL, Geoclue, and libsoup – With notices, attributions, full license statements, and compliance to other obligations • Virtually everything newly developed for Tizen has ben opensourced 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. – Flora License • solely as incorporated into a Tizen Certified Platform • Encourage Tizen member companies to contribute their patents to Tizen project Embedded Software Lab. @ SKKU 44
Tizen Architecture Overview 16 44 OSP(Open Services Platform, C++ APIs) Embedded Software Lab. @ SKKU
Tizen Architecture Overview (cont) 17 • Linux kernel and H/W Abstraction – Linux kernel – Device Drivers – Hardware Adaptation Layer • Core – Underlying layer to provide common functionalities and a security mechanism – HW adaptation layer with plug-in architecture – Open. GL ES/EGL graphics driver • Web framework – Provides state-of-the-art HTML 5/W 3 C 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 – will be deprecated Embedded Software Lab. @ SKKU 44
Tizen Kernel and H/W Abstraction • Linux kernel – Modified Linux kernel • 3. 0. 15, 3. 10. y support (for ARMv 7, AArch 64) • DRM, CMA, KDBUS, dma_buf, Power Manager, etc. • Device Drivers • Hardware Adaptation Layer – Plug-ins • Open. GL ES/EGL Graphics Driver – DRM-based graphics stack Embedded Software Lab. @ SKKU 18 44
19 Core Framework 44 • Common features – Various native, Web APIs are implemented using the core modules • Unified management for – package installation and upgrade – Launching applications – Windows with E 17 – Sensor management – Power management – Connectivity – Security enforcement with smack – and more. Embedded Software Lab. @ SKKU
20 Web Framework 44 • W 3 C standard web APIs – W 3 C/HTML 5 markup, CSS, JS • Supplementary APIs – De-facto APIs (Khronos, Mozilla, etc. ) • Tizen Device APIs – Advanced access to the device capabilities • UI framework – JQuery. Mobile-based – Tools, such as widgets, events, effects, and animations Embedded Software Lab. @ SKKU
21 Web Runtime (WRT) 44 • Package management – installation and update • Execution and life-cycle – launching, pause, and resume • Runtime security – API/network access and sandboxing • Platform integration Embedded Software Lab. @ SKKU
Webkit 2 based Browser and Web Runtime • Tizen (over 2. 0) using Webkit 2 – Split process model for web content and UI with non-blocking APIs – UI responsiveness, robustness, security, and better use of multicore CPUs Embedded Software Lab. @ SKKU 22 44
Web 2 D and 3 D Graphics • HTML 5 Canvas is accelerated by – Cairo Open. GL ES backed • Web. GL – Directly uses Open. GL ES Embedded Software Lab. @ SKKU 23 44
24 Native Framework 44 • Released since Tizen 2. 0 • Set of C++ namespaces with more than 10, 000 APIs – Base, IO, App, Security, Graphics and UI, Network, Messaging, Social, Locations, Web, etc. • Support for standard C/C++, and popular open source libraries – eglibc, STL, libstdc++, libxml 2, Open. GL ES, Open. AL, Open. MP • Multiprocessing support – Open. MP, GCD Embedded Software Lab. @ SKKU
Web vs. Native Framework 25 • Native and Web frameworks are complementary to each other – Web is Storing 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 and Native App can be mixed into Hybrid App Embedded Software Lab. @ SKKU 44
Native vs. Core Framework 26 • Both are native (C, C++), but focusing on different aspects • Core focuses on: – Providing common functionalities to Web and native frameworks – No need to guarantee application 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 Embedded Software Lab. @ SKKU 44
27 Application Types 44 • Web and Native applications – App using only public APIs to get full support for package installation and upgrade, security, backward compatibility, etc. – 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 Embedded Software Lab. @ SKKU
28 Tizen 3. 0 44 • Tizen Common Architecture (without specific profile) Embedded Software Lab. @ SKKU
How to Create a Tizen 3. 0 Common Source • Common Source + Profile based packages – Share source for common features across products – Test on reference devices Embedded Software Lab. @ SKKU 29 44
Tizen 3. 0 Common Feature Highlight 30 • Key Features 2014 -Q 2 release: – – – – – Multi-user SMACK: three domains security Wayland, Enlightenment Window Manager Crosswalk/BLINK 64 -bit IA / ARM New Configuration System – BUXTON KDBUS 3 D UI & Rendering Engine New Bluetooth Framework Wi. Fi Framework to combine Wi. Fi Direct. Manager, Mobile AP-agent and net-config Embedded Software Lab. @ SKKU 44
31 Tizen SDK 44 • Consists of – IDE, Web Simulator, Event Injector, UI Builder – Documents, Sample applications, Remote Inspector, Localization Wizard, Project Wizard – … Embedded Software Lab. @ SKKU
32 44 Tizen Core Services (Mobile Profile) Embedded Software Lab. @ SKKU
Application Framework 33 • Launching a new Application (aul, app-svc) – Explicit or implicit information (Combination of Action, URI, and MIME) can be used to determine an app to launch – Allowed to launch different type of app (i. e. Web to Native and Native to Web) • Application life cycle management and handling system events (app-core) – Getting app state change notification or system events through main loop – Then, calling registered callbacks for the events • Installing/Uninstalling application (package manager) • Managing application launch history (librua) • Setting an alarm to launch at specific time (alarm-manager) Embedded Software Lab. @ SKKU 44
34 Graphics & Input 44 • Enlightenment Foundation Libraries – Rich Widgets multiple theme supports by Elementary – Retained mode canvas by Evas (Scene-graph, Open. GL ES back-end) – Compositing Window Manager • Window System based on X 11 • 3 D (Open. GL ES), Font (freetype 2, fontconfig) • Input Service (SCIM), Voice FW (STT, TTS), SCIM: Smart Common Input Method Embedded Software Lab. @ SKKU
35 Web 44 • Provides: – Best Web experience with Browser and packaged Web Apps • Focusing on functionality(HTML 5), performance (UI Responsiveness, 2 D/3 D Acceleration, JS Engine), Standard Compliance(W 3 C) • More device feature accessibility through Tizen Device API • j. Query. Mobile-based Tizen Web UI FW enables easy Web App development • Consists of: – Web. Veiw (Web. Kit /EFL): Java. Script. Core, Web. Core(HTML 5/W 3 C API implementation), Web. Kit API – Web Runtime: Execution environment for packaged Web Apps Embedded Software Lab. @ SKKU
36 Multimedia 44 • Provides: – Playback of audio and video contents (local and streaming) – Capturing images and recording audio and video – 3 D Audio Sound (Open. AL) specially for games – Scanning & Playback of radio – Determining audio policy – Extracting and displaying media content information • Features: – High Quality Video Playback • Full HD(1080 P) Playback (with HW codec & Render Optimization) • Support for various kind of Multimedia Streaming (HTTP, RTP/RTSP) • Support for HTML 5 Video and embedded playback in Web Browser – High Quality & High Speed Camera/Recorder • High Quality Image Capture & Video Recording • Support for various kind of shooting mode (single, continuous, paronama, etc) Embedded Software Lab. @ SKKU
37 Multimedia (cont) 44 • Key Components: – GStreamer: Audio, Video, Recording, Streaming, Editing, Etc – Audio Session Manager: Sound Policy Management – Pulse. Audio: Software mixing multiple audio streams – Multiple-Format Codec: Various support of codec – Media Content Service: Content management for media files – Audio I/O: Accessing raw audio buffer to manipulate Embedded Software Lab. @ SKKU
38 Location 44 • Provides: – Hybrid position information • GPS, WPS (Wi-Fi Positioning System), SPS (Sensor Positioning System) – Map Service (Geocode, POI, Route) • Key Components: – Geo. Clue: Deliver location info from various positioning sources • Geo. Clue library: An open source geo-information library • Geo. Clue Providers: Implement the Geo. Clue library API • Currently GPS Manager in Geo. Clue Providers is provided Embedded Software Lab. @ SKKU
39 System 44 • Provides: – System monitoring and event handling functionalities • Key components: – System Manager • Runs as a daemon process • Monitors device and system status and handles events from devices (battery, USB, MMC, charger, earjack, etc) – Sensor Manager: Handling sensor events from various sensors – Device Manager: Setting/getting device values such as brightness – Power Manager: Controls LCD display backlight and application sleep Embedded Software Lab. @ SKKU
40 Connectivity 44 • Cellular and Wi-Fi Connection – “Always-on” internet connections based on cellular(e. g. 3 G) and Wi-Fi. – Conn. Man manages internet connections • Allowing automatic connection for available Wi-Fi access point – Managing statistics of data network • Bluetooth – Based on Blue. Z and profiles (OPP, A 2 DP, RFCOMM, HFP, HDP, etc) – Discovering / bonding / exchanging data with remote devices • Tethering – Providing three type of tethering : USB, Bluetooth and Wi-Fi • NFC – Including NFC Manager to handling NFC plug-ins – Supporting P 2 P, Controlling NDEF tag, car emulator • Wi-Fi – Scanning and connecting Access Points – Connecting hidden Access Points, car emulator Embedded Software Lab. @ SKKU
41 Telephony 44 • Consists of cellular functionalities for communicating with modem: – Managing call/non-call info, packet-related services, network status information, SMSrelated services for UMTS and CDMA – Managing SIM Application Toolkit services for UMTS. – Managing SIM files, phone book, and security • Key Components: – TAPI is available as a library for client – Defining a plug-in architecture for Telephony Server Embedded Software Lab. @ SKKU
42 PIM 44 • Provides: Contact, Calendar, Account, and Sync Services • Key Components: – Account: Manage accounts to share account information on the device – Contact/Calendar: • Account based, Multiple address/calendar books for an account. • Enough features to satisfy mobile contact/calendar app requirements. • Supporting v. Card 3. 0 and v. Calendar 1. 0 respectively • Synchronization (Sync-FW) Embedded Software Lab. @ SKKU
43 Messaging 44 • Provides: SMS, MMS, Email – SMS, WAP and cell broadcast messages – MMS protocols: OMA MMS 1. 2. – Email protocols: SMTP, IMAP, POP 3 • Key Components – Message Client API – Message Server • • Transaction Manager: Manage IPC between message server and library Main Handlers: Handle message sending/receiving/filtering/setting. Storage Handlers: Save on DB Plug-in Manager: Manage SMS and MMS Plug-ins Embedded Software Lab. @ SKKU
44 Security 44 • Provides: – – – Certificate management and verification Secure storage for confidential data User space access control management Cryptography and SSL support Mandatory access control support • Security model: – No root applications/No privilege escalation – Sandboxed by SMACK – Service daemons will make use of SMACK and enforce access control in server side – Manifest based permission policy for Apps Embedded Software Lab. @ SKKU
- Slides: 44