multi users presentations_tdc2014_final

Download Multi users presentations_tdc2014_final

If you can't read please download the document

Upload: phil-c

Post on 16-Apr-2017

1.760 views

Category:

Technology


1 download

TRANSCRIPT

Tizen 3.0
Multi-User Features

Baptiste Durand

Software Engineer

Eurogiciel

Welcome to this MU presentation My name is BDI'm contractor for Intel on behalf of Eurogiciel company.I has been started to work on the Tizen Project since two years agoDuring this 2 years I worked on WRT integration on proof of concept profile of Tizen called Tizen PC.I also worked on x64 architecture build isse & gstreamer 1.0 migration.and various IVI debugging

And Now I'm dealing with Crosswalk Integration

Agenda

Tizen Multi User System and associated requirements

What has changed ? What are the upcoming updates ?

Status / RoadMap

I will present a new feature of tizen 3. the multi user compliance

Initialy , Tizen OS has been devellopped initially for single user syystem such as mobile phone.With Tizen 3, Tizen is going to become a multi user OS to answer to needs of profile such as TV or IVI system., Let me expoqe The one main difference bettween Tizen 2 and Tizen 3 and it associated requirements: the Tizen multi user system Platform ConfigurationApplication Framework User ManagementResources Management [Shared / Unique]Service API (Service proxy deamon)

Tizen Multi User System

Multi User System

There many diffent multi user system I present you an one that introduce Seat notion.

Here is a multple seat with 1 display probably a touch sceen display.

This kind of system is 1 of kind of system addressed by Tizen 3.0

Tizen Multi User System

Categories of Multi User System

Multi Seat System

The system can be used at the same time by several users and they could share the same display.

Single Seat System

The system can be used by one user at the given time

TV phone

Multi User System : Key Requirements

User Management

Needs user account

Each user has its Environment / data / applications

Administrator concept

Application Management

Global AppsUser 1 AppsUser 2 AppsSome needs are same for each categories preiously exposedThis one to standart Linux OS ones

Multi User System : Key Requirements

Security Management

User can only read its own data and system data

Security must protect the user data, the system data

Security must control resources access per User

Resource / Service Management

Shared Access

Exclusive Access

Service Concept

As Shared access resources we have network for example

Exclusive access : Bluettooth for example

Let talk about tizen specific needs especialy about IVI needs.

Multi Seat System : IVI Needs

Guest user

Is logged in by default

Starts Default Applications

Global AppsUser 1 AppsUser 2 AppsDefault Apps

Guest is logged in by defaultDefault apps doesn't needs to have specific configuration to be launched.

For example guest user can have access to email applications.That doesn't make any sense.We need to configure this kind of app for using it.That suppose we need to be identied by system

Multi Seat System : IVI Needs

Resources Management

Users can share the same display (e.g. passengers and driver)

Users can also exchange seats (and so displays)

User applications could be move from one seat to an other without restarting them

Single Seat System

Similar to profile system (shared phone TV)

No specific resource management

Security Management

We have simillar requireemnt than the previous ones execpt for Ressource management because here all HW ressources are avaible and dedicated to the only user

What has changed?
Upcoming Updates

The Multi user migration is currrently on going.

Some of changes are already avaibl in Tizen.I will detail them and also the upcomming changes

Multi User Related changes

Main Challenge

Keep the project consistent during migration process

Tizen Platform Configuration

Application Framework

Resources Services

Service API

User Management

Let me shouw up how we have been added some Multi User featue by keeping project integrity

Upcoming updates : Tizen Platform Configuration

Package source code compliance

The source code was not compliant with Multi User architecture Hard-coded path

Hard-coded uids / gids / Username related to user App

In order to prepare the code before the migration we had to remove hard coded path.

Indeed in Tizen 2,the architecture is single user.

There is a lot of hardcoded path related to one user called APP.

As we will see later all application framework architecture is mainly based on this user.

L

Upcoming updates : Tizen Platform Configuration

Package source code compliance

filesystem/filesystem_instance.cc[...]namespace {const unsigned kDefaultFileMode = 0755;const char kDefaultPath[] = "/opt/usr/media";const char kPathSounds[] = "/opt/usr/media/Sounds";const char kPathImages[] = "/opt/usr/media/Images";const char kPathVideos[] = "/opt/usr/media/Videos";const char kPathDownloads[] = "/opt/usr/media/Downloads";[...]AddInternalStorage(kLocationMusic, kPathSounds);AddInternalStorage(kLocationImages, kPathImages);AddInternalStorage(kLocationVideos, kPathVideos);AddInternalStorage(kLocationDownloads, kPathDownloads);AddInternalStorage(kLocationDocuments, kPathDocuments);[...]

X

Example of bad code

Upcoming updates : Tizen Platform Configuration

Tizen Platform Configuration

Goal : Having a unique package that defines how the environment variables are made

Based around on 1 configuration file (meta file) and 1 wrapper library

Easy to use (as it is bash readable)

Upcoming updates : Tizen Platform Configuration

Extract of meta file

############# Base dirs ############## Tizen 3 (single user):#TZ_USER_NAME=app#TZ_USER_HOME=$TZ_SYS_HOME/app#TZ_USER_SHARE=/opt/usr/share#TZ_USER_DATA=/opt/usr/data#TZ_USER_ETC=/opt/usr/etc#TZ_USER_LIVE=/opt/usr/live

# Tizen 3 (multi user):TZ_USER_NAME=$USERTZ_USER_HOME=$HOMETZ_USER_SHARE=$TZ_USER_HOME/shareTZ_USER_DATA=$TZ_USER_HOME/dataTZ_USER_ETC=$TZ_USER_HOME/etcTZ_USER_LIVE=$TZ_USER_HOME/live[...]

Upcoming updates : Tizen Platform Configuration

Example of usage

filesystem/filesystem_instance.cc[...]namespace {const unsigned kDefaultFileMode = 0755;const char kDefaultPath[] = "/opt/usr/media";const char kPathSounds[] = "/opt/usr/media/Sounds";const char kPathImages[] = "/opt/usr/media/Images";const char kPathVideos[] = "/opt/usr/media/Videos";const char kPathDownloads[] = "/opt/usr/media/Downloads";[...]AddInternalStorage(kLocationMusic, kPathSounds);AddInternalStorage(kLocationImages, kPathImages);AddInternalStorage(kLocationVideos, kPathVideos);AddInternalStorage(kLocationDownloads, kPathDownloads);AddInternalStorage(kLocationDocuments, kPathDocuments);[...]

X

Upcoming updates : Tizen Platform Configuration

Example of usage

filesystem/filesystem_instance.cc[...]namespace {- const unsigned kDefaultFileMode = 0755;- const char kDefaultPath[] = "/opt/usr/media";- const char kPathSounds[] = "/opt/usr/media/Sounds";- const char kPathImages[] = "/opt/usr/media/Images";- const char kPathVideos[] = "/opt/usr/media/Videos";- const char kPathDownloads[] = "/opt/usr/media/Downloads";[...]+ AddInternalStorage(kLocationMusic, tzplatform_getenv(TZ_USER_SOUNDS));+ AddInternalStorage(kLocationImages, tzplatform_getenv(TZ_USER_IMAGES));+ AddInternalStorage(kLocationVideos, tzplatform_getenv(TZ_USER_VIDEOS));+ AddInternalStorage(kLocationDownloads, tzplatform_getenv(TZ_USER_DOWNLOADS));+ AddInternalStorage(kLocationDocuments, tzplatform_getenv(TZ_USER_DOCUMENTS));[...]

X

Upcoming updates : Application Framework

Tizen 2.x Model

This framework is based on three deamon such as

Upcoming updates : Application Framework

On tizen 2, All apps were launched in a static 'sourced' Environment with the ID App

'User' concept needs to be introduced

Upcoming updates : Application Framework

Tizen 3.0 Model

Upcoming updates : Application Framework

Application are launched in the User Environment provided by systemd session.

Each User can access to :

A set of databases corresponding to System/common Application

Another corresponding to it own databases.

Application Databases look like the Tizen 2.0 ones

Core API should be extended

Upcoming updates : Resources Services

Resources not related to a Tizen framework should be shared:

Display (IVI Requirement)

Audio

Resources related to a framework should be managed:

Service API Daemon?

Audio = Murphy

Upcoming updates : Resources Services

WestonInitial Case

Officially 1 compositor per user session

User cannot switch of display without restarting the weston service

What's done

1 compositor for the whole system

Weston daemon is responsible to allocate visual resources to a user

Launched as display user (system uid)

Upcoming updates : Service API

State PROPOSAL

Other investigations are being also tested :Containers

Smack containers launcher

Upcoming updates : Service API

Framework / CORE API in Tizen2.0

Model in Tizen 2.X

Upcoming updates : Service API

Model in Tizen 3

Upcoming updates : Service API

Framework / CORE API Tizen3.0

New services API (SAPI) is introduced as a drop-in replacement for Core APIs

SAPI will be as close as possible as actual Core APIs

Calls are sent to the Services Daemon (local RPC)

The Services Daemon gets the app. credentials: uid, git, smack label and checks if the call is allowed (using Cynara)

The call is then executed using the actual Core APIs and the result sent back to client.

Extra features could be implented inside the SAPI Daemon (e.g. dynamic resources management)

Upcoming updates : TLM / GUMD

GumdManages users accounts

DBUS API

Tizen Login ManagerOpens user sessions

Provides : DBUS API

Support : GUI less / auto login

Should be adapted to include admin notion

RoadMap and Status

Status and estimated deliveries

StatusCommentsEstimate delivery

Tizen Configuration PlaformFully Integrated since sart of the yearPlatform Meta should be adopted by ProfileX

Application FrwkImplementedSome API extension are missingCrosswalk Need to be integratedEnd of this month

Ressources ManagementIn investigationNote :Weston Server Fully integratedBackground Work

Service APIArchitexture reviewArchitecture proposal is ready2014-Q3

Questions?

Links : https://wiki.tizen.org/wiki/Multi-user_Architecture

Thanks for your attention

Click to edit the title text format