Fix spelling and images size.
[src/app-framework-main.git] / docs / 5.1-application-framework.md
1 Comparison to other frameworks
2 ------------------------------
3
4  - Tizen framework
5
6  - xdg-app
7
8  - ostro
9
10 ### Organization of directory of applications ###
11
12 The main path for applications are: APPDIR/PKGID/VER.
13
14 Where:
15
16  - APPDIR is as defined above
17  - PKGID is a directory whose name is the package identifier
18  - VER is the version of the package MAJOR.MINOR
19
20 The advantage of such an organization is to allow several versions to live together.
21 This is required for multiple reasons (ie: roll back) and to comply with developers habits.
22
23 #### Identity of installed files ####
24
25 All the files are installed as user "userapp" and group "userapp".
26 All files have rw(x) for user and r-(x) for group and others.
27
28 This allows any user to read files.
29
30
31 #### Labeling the directories of applications ####
32
33
34 ### Organization of data ###
35
36 The data of a user are contain within its directory and are labeled using the application labels
37
38 ### Setting Smack rules for the application ###
39
40 For Tizen, the following rules are set by the security manager for each application.
41
42     System ~APP~             rwx
43     System ~PKG~             rwxat
44     System ~PKG~::RO         rwxat
45     ~APP~  System            wx
46     ~APP~  System::Shared    rxl
47     ~APP~  System::Run       rwxat
48     ~APP~  System::Log       rwxa
49     ~APP~  _                 l
50     User   ~APP~             rwx
51     User   ~PKG~             rwxat
52     User   ~PKG~::RO         rwxat
53     ~APP~  User              wx
54     ~APP~  User::Home        rxl
55     ~APP~  User::App::Shared rwxat
56     ~APP~  ~PKG~             rwxat
57     ~APP~  ~PKG~::RO         rxl
58
59 Here, ~PKG~ is the identifier of the package and ~APP~ is the identifier of the application.
60
61 ### What user can run an application? ###
62
63 Not all user are able to run all applications.
64 How to manage that?
65
66 [meta-intel]:       https://github.com/01org/meta-intel-iot-security                "A collection of layers providing security technologies"
67 [widgets]:          http://www.w3.org/TR/widgets                                    "Packaged Web Apps"
68 [widgets-digsig]:   http://www.w3.org/TR/widgets-digsig                             "XML Digital Signatures for Widgets"
69 [libxml2]:          http://xmlsoft.org/html/index.html                              "libxml2"
70 [openssl]:          https://www.openssl.org                                         "OpenSSL"
71 [xmlsec]:           https://www.aleksey.com/xmlsec                                  "XMLSec"
72 [json-c]:           https://github.com/json-c/json-c                                "JSON-c"
73 [d-bus]:            http://www.freedesktop.org/wiki/Software/dbus                   "D-Bus"
74 [libzip]:           http://www.nih.at/libzip                                        "libzip"
75 [cmake]:            https://cmake.org                                               "CMake"
76 [security-manager]: https://wiki.tizen.org/wiki/Security/Tizen_3.X_Security_Manager "Security-Manager"
77 [app-manifest]:     http://www.w3.org/TR/appmanifest                                "Web App Manifest"
78 [tizen-security]:   https://wiki.tizen.org/wiki/Security                            "Tizen security home page"
79 [tizen-secu-3]:     https://wiki.tizen.org/wiki/Security/Tizen_3.X_Overview         "Tizen 3 security overview"
80
81