Download - Multi users presentations_tdc2014_final
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