7 Nokia Corporation - initial contribution. |
7 Nokia Corporation - initial contribution. |
8 Contributors: |
8 Contributors: |
9 --> |
9 --> |
10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept id="GUID-310A8A9C-98E7-59EE-9376-8E572580190F" xml:lang="en"><title>File |
12 <concept id="GUID-310A8A9C-98E7-59EE-9376-8E572580190F" xml:lang="en"><title>File services in Symbian platform</title><shortdesc>This topic describes the common concepts of file systems |
13 services in Symbian platform</title><shortdesc>This topic describes the common concepts of file systems and files |
13 and files used by Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 used by Symbian platform.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 <p>Like other software systems, Symbian platform can store data so |
15 <p>Like other software systems, Symbian platform can store data so that it |
15 that it is kept when a handset is powered down. </p> |
16 is kept when a handset is powered down. </p> |
16 <p>On PCs, a file is kept on magnetic disk or optical media such as |
17 <p>On PCs, a file is kept on magnetic disk or optical media such as CD or |
17 CD or DVD. On older generations of personal organisers, a file was |
18 DVD. On older generations of personal organisers, a file was often kept in |
18 often kept in RAM, needing a permanent power supply, and a backup |
19 RAM, needing a permanent power supply, and a backup battery to guarantee this. |
19 battery to guarantee this. On the most recent telephone handsets, |
20 On the most recent telephone handsets, files are normally stored in flash |
20 files are normally stored in flash memory, either NOR flash or NAND |
21 memory, either NOR flash or NAND flash, and also on removable devices such |
21 flash, and also on removable devices such as MultiMediaCard (MMC), |
22 as MultiMediaCard (MMC), Secure Digital card (SD card), Memory Stick or Compact |
22 Secure Digital card (SD card), Memory Stick or Compact flash (CF). </p> |
23 flash (CF). </p> |
23 <p>There are more sophisticated services for persisting data such |
24 <p>There are more sophisticated services for persisting data such as streams, |
24 as streams, stores, central repository etc. that applications can |
25 stores, central repository etc. that applications can use, but they all rely, |
25 use, but they all rely, either directly or indirectly, on the commonly |
26 either directly or indirectly, on the commonly understood idea of the file. </p> |
26 understood idea of the file. </p> |
27 <p>The ROM on a typical handset is located in non-volatile flash memory, allowing |
27 <p>The ROM on a typical handset is located in non-volatile flash memory, |
28 it to be upgraded by the handset manufacturer after initial production. The |
28 allowing it to be upgraded by the handset manufacturer after initial |
29 location for user data is almost always flash memory (NAND or NOR), on the |
29 production. The location for user data is almost always flash memory |
30 grounds of cost, although rotating media devices capable of holding large |
30 (NAND or NOR), on the grounds of cost, although rotating media devices |
31 amounts of data are likely in future handsets. </p> |
31 capable of holding large amounts of data are likely in future handsets. </p> |
32 <ul> |
32 <ul> |
33 <li id="GUID-798E9ED1-24DF-5990-9D1E-CD043B94B722"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C">Basic concepts</xref> </p> </li> |
33 <li id="GUID-798E9ED1-24DF-5990-9D1E-CD043B94B722"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C">Basic concepts</xref> </p> </li> |
34 <li id="GUID-BBB6D4C2-4AE6-55CD-BC65-416BCF705F31"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-62387DD0-D8E4-5426-8432-B14696291AF8">Accessing file services</xref> </p> </li> |
34 <li id="GUID-BBB6D4C2-4AE6-55CD-BC65-416BCF705F31"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-62387DD0-D8E4-5426-8432-B14696291AF8">Accessing file services</xref> </p> </li> |
35 <li id="GUID-B6AEF9DA-60D3-5728-9C46-59EE5C98346C"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF">Security issues</xref> </p> </li> |
35 <li id="GUID-B6AEF9DA-60D3-5728-9C46-59EE5C98346C"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF">Security issues</xref> </p> </li> |
36 <li id="GUID-ACF583E3-3FAA-52FE-9A07-8172A4BBBCC9"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-849F5D6E-7911-55F8-839A-019D1BF16726">File systems and mounting a drive</xref> </p> </li> |
36 <li id="GUID-ACF583E3-3FAA-52FE-9A07-8172A4BBBCC9"><p> <xref href="GUID-310A8A9C-98E7-59EE-9376-8E572580190F.dita#GUID-310A8A9C-98E7-59EE-9376-8E572580190F/GUID-849F5D6E-7911-55F8-839A-019D1BF16726">File systems and mounting a drive</xref> </p> </li> |
37 </ul> |
37 </ul> |
38 <section id="GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C"><title>Basic concepts</title> <p>Symbian |
38 <section id="GUID-DD8C4BFB-9816-5EA5-A9F2-5146C64BBC9C"><title>Basic |
39 platform uses a number of file concepts that are common to most operating |
39 concepts</title> <p>Symbian platform uses a number of file concepts |
40 systems, for example, drives and directories. </p> <p><b>Drives</b> </p> <p>Symbian |
40 that are common to most operating systems, for example, drives and |
41 platform uses the concept of the <i>drive</i>. This idea is similar to that |
41 directories. </p> <p><b>Drives</b> </p> <p>Symbian platform uses the concept of the <i>drive</i>. This idea is similar to that in other operating systems, |
42 in other operating systems, i.e. it corresponds to a logical device. A media |
42 i.e. it corresponds to a logical device. A media device such as a |
43 device such as a MultiMediaCard can be logically split into partitions, and |
43 MultiMediaCard can be logically split into partitions, and each partition |
44 each partition is treated as a separate drive. Symbian platform adopts a DOS-like |
44 is treated as a separate drive. Symbian platform adopts a DOS-like |
45 convention where each drive is identified by a single letter. This means that |
45 convention where each drive is identified by a single letter. This |
46 there can be up to 26 drives on a handset, identified by the letters <filepath>A:</filepath> through |
46 means that there can be up to 26 drives on a handset, identified by |
47 to <filepath>Z:</filepath>. In practice, there are far fewer than this, and |
47 the letters <filepath>A:</filepath> through to <filepath>Z:</filepath>. In practice, there are far fewer than this, and the number depends |
48 the number depends on the individual manufacturer's handset </p> <p>Internally, |
48 on the individual manufacturer's handset </p> <p>Internally, Symbian |
49 Symbian platform uses the idea of a drive number instead of a letter, and |
49 platform uses the idea of a drive number instead of a letter, and |
50 some legacy API items take a drive number as input, or return a drive number |
50 some legacy API items take a drive number as input, or return a drive |
51 as output. However, there are functions that can translate drive numbers to |
51 number as output. However, there are functions that can translate |
52 and from drive letters: <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-A0F50C51-A4F0-33C1-BBD4-757DEC4B7F2E"><apiname>RFs::DriveToChar()</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D545B868-0549-37A9-AACE-288E7C9CE8C3"><apiname>RFs::CharToDrive()</apiname></xref>. </p> <p>The |
52 drive numbers to and from drive letters: <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-A0F50C51-A4F0-33C1-BBD4-757DEC4B7F2E"><apiname>RFs::DriveToChar()</apiname></xref> and <xref href="GUID-E263C747-946F-35AA-9F1D-41833BD350FC.dita#GUID-E263C747-946F-35AA-9F1D-41833BD350FC/GUID-D545B868-0549-37A9-AACE-288E7C9CE8C3"><apiname>RFs::CharToDrive()</apiname></xref>. </p> <p>The main ROM |
53 main ROM on a handset is always identified as the <filepath>Z:</filepath> drive. |
53 on a handset is always identified as the <filepath>Z:</filepath> drive. |
54 Other drives may be in use: sixteen of the drives <filepath>C:</filepath> to <filepath>R:</filepath> are |
54 Other drives may be in use: sixteen of the drives <filepath>C:</filepath> to <filepath>R:</filepath> are usually reserved as local drives, |
55 usually reserved as local drives, i.e. for media devices located within the |
55 i.e. for media devices located within the handset. A common convention |
56 handset. A common convention is to adopt <filepath>C:</filepath> as the main |
56 is to adopt <filepath>C:</filepath> as the main user data drive. and |
57 user data drive. and to designate <filepath>D:</filepath> or <filepath>E:</filepath> as |
57 to designate <filepath>D:</filepath> or <filepath>E:</filepath> as |
58 drives for removable media. <i>Be aware</i>, however, that this is a convention |
58 drives for removable media. <i>Be aware</i>, however, that this is |
59 that some handset manufacturers may not follow, so you are always advised |
59 a convention that some handset manufacturers may not follow, so you |
60 to check the full SDK that applies to a specific handset for guidance. Indeed, |
60 are always advised to check the full SDK that applies to a specific |
61 as a matter of principle, you should always use the <xref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita">system |
61 handset for guidance. Indeed, as a matter of principle, you should |
62 drive</xref> for user data. </p> <p><b>Volume</b> </p> <p>The concept of the volume applies to removable media. As users insert |
62 always use the <xref href="GUID-629AB2C9-BEDD-5166-8B09-F8DFF7527C03.dita">system drive</xref> for user data. </p> <p><b>Volume</b> </p> <p>The concept of the volume applies to removable |
63 and remove individual devices, so different volumes are said to be mounted |
63 media. As users insert and remove individual devices, so different |
64 and demounted. For media types that can be split into partitions, each partition |
64 volumes are said to be mounted and demounted. For media types that |
65 corresponds to a separate volume. </p> <p><b>File |
65 can be split into partitions, each partition corresponds to a separate |
66 names and directory structures</b> </p> <p>Files have names, and Symbian platform |
66 volume. </p> <p><b>File names and directory structures</b> </p> <p>Files have names, |
67 uses a hierarchical directory structure in which to organize them; this is |
67 and Symbian platform uses a hierarchical directory structure in which |
68 similar to schemes adopted by other operating systems. For example: </p> <codeblock id="GUID-C4330879-E93B-5939-A810-8D4A1E5B14DB" xml:space="preserve">C:\AAA\BBB\CCC\DDD.EXT</codeblock> <p>There |
68 to organize them; this is similar to schemes adopted by other operating |
69 are four main parts to the structure: </p> <ul> |
69 systems. For example: </p> <codeblock id="GUID-C4330879-E93B-5939-A810-8D4A1E5B14DB" xml:space="preserve">C:\AAA\BBB\CCC\DDD.EXT</codeblock> <p>There are four main parts to the structure: </p> <ul> |
70 <li id="GUID-39D18587-8793-511F-B3CC-8CFA6D129F80"><p>the <i>drive</i>; this |
70 <li id="GUID-39D18587-8793-511F-B3CC-8CFA6D129F80"><p>the <i>drive</i>; this is always at the top of the hierarchy, and is represented |
71 is always at the top of the hierarchy, and is represented by a drive letter |
71 by a drive letter and a colon. </p> </li> |
72 and a colon. </p> </li> |
72 <li id="GUID-8F5F5EB0-721F-5C5B-90B6-08E2CB92BA98"><p>the <i>path</i>; this is a list of names, each name representing a level in the |
73 <li id="GUID-8F5F5EB0-721F-5C5B-90B6-08E2CB92BA98"><p>the <i>path</i>; this |
73 hierarchy. Each directory name is separated by a back slash character, |
74 is a list of names, each name representing a level in the hierarchy. Each |
74 and the last directory name is always terminated by a back slash character. </p> </li> |
75 directory name is separated by a back slash character, and the last directory |
75 <li id="GUID-BD848A50-9BEA-5E08-ACDB-92EDB9C5CA86"><p>the <i>filename</i>; this is everything after the final backslash, and before the dot |
76 name is always terminated by a back slash character. </p> </li> |
76 if there is a file extension. Symbian platform supports long file |
77 <li id="GUID-BD848A50-9BEA-5E08-ACDB-92EDB9C5CA86"><p>the <i>filename</i>; |
77 filenames. </p> </li> |
78 this is everything after the final backslash, and before the dot if there |
78 <li id="GUID-07E1D5CB-9D9B-5141-AD7B-76F839AA2FC0"><p>the <i>extension</i>, everything after the final dot. There is no restriction on the |
79 is a file extension. Symbian platform supports long file filenames. </p> </li> |
79 length of the extension; limits on length apply to the whole structure, |
80 <li id="GUID-07E1D5CB-9D9B-5141-AD7B-76F839AA2FC0"><p>the <i>extension</i>, |
80 not to any single part of it. </p> </li> |
81 everything after the final dot. There is no restriction on the length of the |
81 </ul> <p>You will find that the whole structure is sometimes referred |
82 extension; limits on length apply to the whole structure, not to any single |
82 to as the full file name or the full path name. The maximum length |
83 part of it. </p> </li> |
83 of a full file name is limited to 256 characters. Symbian platform |
84 </ul> <p>You will find that the whole structure is sometimes referred to as |
84 does not use the extension to identify the software or application |
85 the full file name or the full path name. The maximum length of a full file |
85 that can access the data. Instead, files have UIDs embedded within |
86 name is limited to 256 characters. Symbian platform does not use the extension |
86 them, and the mapping of files to applications is done through these |
87 to identify the software or application that can access the data. Instead, |
87 UIDs. For more information, see <b>Symbian^3 Tools Guide > Building</b>.</p> <p>The case of full path names is always preserved, but operations |
88 files have UIDs embedded within them, and the mapping of files to applications |
88 on names are case insensitive. This means that two files that have |
89 is done through these UIDs. See <xref href="GUID-3AFA877F-41DE-5343-8BC2-C0FB894A062C.dita">Application |
89 the same name but differ only in case are considered to refer to the |
90 registration information</xref>. </p> <p>The case of full path names is always |
90 same file. </p> <p>Full file names are normally manipulated programmatically. |
91 preserved, but operations on names are case insensitive. This means that two |
91 Extracting drive names, filenames, file extensions, and changing the |
92 files that have the same name but differ only in case are considered to refer |
92 names of a directory structure are typical activities. Symbian platform |
93 to the same file. </p> <p>Full file names are normally manipulated programmatically. |
93 provides you with the <xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse</apiname></xref>, <xref href="GUID-A6268E58-68EC-3041-93FD-5368CD230947.dita"><apiname>TParsePtr</apiname></xref>, and <xref href="GUID-C65BCDAB-0476-3EAC-9BFC-37243AE43FE9.dita"><apiname>TParsePtrC</apiname></xref> classes to help you do this manipulation. </p> <p>See <xref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita">parsing |
94 Extracting drive names, filenames, file extensions, and changing the names |
|
95 of a directory structure are typical activities. Symbian platform provides |
|
96 you with the <xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse</apiname></xref>, <xref href="GUID-A6268E58-68EC-3041-93FD-5368CD230947.dita"><apiname>TParsePtr</apiname></xref>, and <xref href="GUID-C65BCDAB-0476-3EAC-9BFC-37243AE43FE9.dita"><apiname>TParsePtrC</apiname></xref> classes |
|
97 to help you do this manipulation. </p> <p>See <xref href="GUID-ECF9E432-EA93-5284-B0E6-A1211289CBD8.dita">parsing |
|
98 paths and filenames</xref> . </p> </section> |
94 paths and filenames</xref> . </p> </section> |
99 <section id="GUID-62387DD0-D8E4-5426-8432-B14696291AF8"><title>Accessing file |
95 <section id="GUID-62387DD0-D8E4-5426-8432-B14696291AF8"><title>Accessing |
100 services</title> <p>On Symbian platform, file services are a common resource. |
96 file services</title> <p>On Symbian platform, file services are a |
101 Like other common or shared resources on Symbian platform, file services are |
97 common resource. Like other common or shared resources on Symbian |
102 handled by a server - the file server. Applications and other software that |
98 platform, file services are handled by a server - the file server. |
103 require access to files, directories and drives are clients of the file server, |
99 Applications and other software that require access to files, directories |
104 and send file-related requests using the <xref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita">file |
100 and drives are clients of the file server, and send file-related requests |
105 server client-side API</xref>. </p> <p>The file server is multithreaded, which |
101 using the <xref href="GUID-198DCED1-F429-5C95-A51D-53AE416687E8.dita">file |
106 allows each logical drive to be accessed concurrently. More than one request |
102 server client-side API</xref>. </p> <p>The file server is multithreaded, |
107 can be issued for the same drive, but these requests are handled sequentially. |
103 which allows each logical drive to be accessed concurrently. More |
108 For example, a request to read or write data to a MultiMediaCard can be handled |
104 than one request can be issued for the same drive, but these requests |
109 at the same time as a request to read or write data to the main user drive. </p> <p>The |
105 are handled sequentially. For example, a request to read or write |
110 file server has a main thread that initially handles all requests. Short requests, |
106 data to a MultiMediaCard can be handled at the same time as a request |
111 such as those that require access to the ROM drive, and those that do not |
107 to read or write data to the main user drive. </p> <p>The file server |
112 require access to any media, run in the file server. </p> <p>The services |
108 has a main thread that initially handles all requests. Short requests, |
113 provided by the file server can be divided into two types: </p> <ul> |
109 such as those that require access to the ROM drive, and those that |
114 <li id="GUID-12F7606D-835D-5948-B0F0-EBACC5F6E569"><p>those that give you |
110 do not require access to any media, run in the file server. </p> <p>The services provided by the file server can be divided into two |
115 access to individual files, directories and drives using the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-9D7E765B-6872-3EB9-9D5B-1503FA466EC1.dita"><apiname>RFormat</apiname></xref> classes. </p> <p>See also <xref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita">How to |
111 types: </p> <ul> |
116 use sessions, files, and directories</xref>. </p> </li> |
112 <li id="GUID-12F7606D-835D-5948-B0F0-EBACC5F6E569"><p>those that give |
117 <li id="GUID-9E40CF33-C35E-52CE-80B9-8A019F34F305"><p>those that allow you |
113 you access to individual files, directories and drives using the <xref href="GUID-BE0804F6-4375-3C8A-8C83-968F510466E0.dita"><apiname>RFile</apiname></xref>, <xref href="GUID-12AE154F-7741-38C0-ADFE-9784FCF5E516.dita"><apiname>RDir</apiname></xref> and <xref href="GUID-9D7E765B-6872-3EB9-9D5B-1503FA466EC1.dita"><apiname>RFormat</apiname></xref> classes. </p> <p>See also <xref href="GUID-30B2AF3F-E120-5D47-AAA2-529555625B55.dita">How to use sessions, |
118 to do higher level longer running operations such as moving, copying and deleting |
114 files, and directories</xref>. </p> </li> |
119 files, using the <xref href="GUID-82CEC14F-1479-3922-846A-9FCDB6465EF7.dita"><apiname>CFileMan</apiname></xref> class, scanning directory trees |
115 <li id="GUID-9E40CF33-C35E-52CE-80B9-8A019F34F305"><p>those that allow |
120 using the <xref href="GUID-C657AF2D-1183-3CD2-ACAF-3B0B00FC91BB.dita"><apiname>CDirScan</apiname></xref> class, and tracking the progress of |
116 you to do higher level longer running operations such as moving, copying |
121 these operations using the <xref href="GUID-E608485F-B3E3-3310-A80E-169D8B9D2234.dita"><apiname>MFileManObserver</apiname></xref> class. </p> <p>See |
117 and deleting files, using the <xref href="GUID-82CEC14F-1479-3922-846A-9FCDB6465EF7.dita"><apiname>CFileMan</apiname></xref> class, scanning |
122 also <xref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita">File management |
118 directory trees using the <xref href="GUID-C657AF2D-1183-3CD2-ACAF-3B0B00FC91BB.dita"><apiname>CDirScan</apiname></xref> class, and tracking |
123 and searching</xref> </p> </li> |
119 the progress of these operations using the <xref href="GUID-E608485F-B3E3-3310-A80E-169D8B9D2234.dita"><apiname>MFileManObserver</apiname></xref> class. </p> <p>See also <xref href="GUID-ACF6C0A2-87ED-55B3-B22A-9B331D9940AC.dita">File management and |
124 </ul> <p>Like most other servers, the client API allows you to make file requests |
120 searching</xref>. </p> </li> |
125 synchronously or asynchronously. </p> <p>See also <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">client-server</xref>. </p> </section> |
121 </ul> <p>Like most other servers, the client API allows you to make |
126 <section id="GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF"><title>Security issues</title> <p>Security |
122 file requests synchronously or asynchronously. </p> <p>See also <xref href="GUID-6047DB3F-DC92-51DF-9EEB-00E79E890B54.dita">client-server</xref>. </p> </section> |
127 considerations restrict the parts of a handset's directory structure that |
123 <section id="GUID-9FF4525A-EBFD-5E9F-BD86-C6B75E5C35EF"><title>Security |
128 an application is allowed to access. The concept is referred to as <i>data |
124 issues</title> <p>Security considerations restrict the parts of a |
129 caging</i>. </p> <p>There are a number of principles involved: </p> <ul> |
125 handset's directory structure that an application is allowed to access. |
130 <li id="GUID-21674EE5-40A3-5F71-9973-C089FD838585"><p>The fundamental principle |
126 The concept is referred to as <i>data caging</i>. </p> <p>There are |
131 is the separation of executable code from data. Executable code can only reside |
127 a number of principles involved: </p> <ul> |
132 in the <filepath>/sys/bin/</filepath> directory. Executables cannot be loaded |
128 <li id="GUID-21674EE5-40A3-5F71-9973-C089FD838585"><p>The fundamental |
133 from any location other than <filepath>/sys/bin/</filepath>. Unless an application |
129 principle is the separation of executable code from data. Executable |
134 has the appropriate system capabilities, the <filepath>/sys/</filepath> directory |
130 code can only reside in the <filepath>/sys/bin/</filepath> directory. |
135 is not visible to that application. System capabilities are a discrete set |
131 Executables cannot be loaded from any location other than <filepath>/sys/bin/</filepath>. Unless an application has the appropriate system |
136 of 'permissions' that give access to various sensitive system services, and |
132 capabilities, the <filepath>/sys/</filepath> directory is not visible |
137 which can only be granted to applications, if justified, through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian Signed</xref> scheme. </p> </li> |
133 to that application. System capabilities are a discrete set of 'permissions' |
138 <li id="GUID-4A1854CE-25CB-5630-A27C-73931D937567"><p>Applications have their |
134 that give access to various sensitive system services, and which can |
139 own private directory, under which they are free to create further directory |
135 only be granted to applications, if justified, through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian |
140 structures and files, and to write to those files. This is the directory structure <filepath>/private/<app_SID>/</filepath>. <i><app_SID></i> is known as a secure identifier and, in general, is used when verifying |
136 Signed</xref> scheme. </p> </li> |
141 an executable's rights of access to system resources. Here, it is used to |
137 <li id="GUID-4A1854CE-25CB-5630-A27C-73931D937567"><p>Applications |
142 form the path name for the executable's private directory. The secure identifier |
138 have their own private directory, under which they are free to create |
143 is a UID which is allocated to a developer through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian Signed</xref> scheme, and is guaranteed to be unique |
139 further directory structures and files, and to write to those files. |
144 within the handset on which the application is installed. The UID is coded |
140 This is the directory structure <filepath>/private/<app_SID>/</filepath>. <i><app_SID></i> is known as a secure identifier and, in general, |
145 into the <filepath>mmp</filepath> file(s) that define the application's source |
141 is used when verifying an executable's rights of access to system |
146 files, link requirements, and general characteristics. </p> <p>Other applications |
142 resources. Here, it is used to form the path name for the executable's |
|
143 private directory. The secure identifier is a UID which is allocated |
|
144 to a developer through the <xref href="https://www.symbiansigned.com/app/page" scope="external">Symbian |
|
145 Signed</xref> scheme, and is guaranteed to be unique within the handset |
|
146 on which the application is installed. The UID is coded into the <filepath>mmp</filepath> file(s) that define the application's source files, |
|
147 link requirements, and general characteristics. </p> <p>Other applications |
147 have no right of access to an application's private directory. </p> </li> |
148 have no right of access to an application's private directory. </p> </li> |
148 <li id="GUID-2814D086-A660-5294-9952-E6D66243B652"><p>There is a directory <filepath>/resource/</filepath> to |
149 <li id="GUID-2814D086-A660-5294-9952-E6D66243B652"><p>There is a directory <filepath>/resource/</filepath> to which all applications have read access, |
149 which all applications have read access, but no write access. The purpose |
150 but no write access. The purpose of this directory is to conatin common |
150 of this directory is to conatin common read-only files. </p> </li> |
151 read-only files. </p> </li> |
151 <li id="GUID-FC6EE81A-59FA-5AC5-8EC4-3034597F8829"><p>All other directories |
152 <li id="GUID-FC6EE81A-59FA-5AC5-8EC4-3034597F8829"><p>All other directories |
152 are accessible for both reading and writing. This allows the use of standard |
153 are accessible for both reading and writing. This allows the use of |
153 file system hierarchies that may be available on removable media. </p> </li> |
154 standard file system hierarchies that may be available on removable |
|
155 media. </p> </li> |
154 <li id="GUID-95121831-873B-5E79-B07C-410858FC9779"><p>The above principles |
156 <li id="GUID-95121831-873B-5E79-B07C-410858FC9779"><p>The above principles |
155 apply regardless of the drive. </p> </li> |
157 apply regardless of the drive. </p> </li> |
156 </ul> <p>It is possible to pass an open file to another process, or between |
158 </ul> <p>It is possible to pass an open file to another process, or |
157 a client and server, so that the target can access the file without knowing |
159 between a client and server, so that the target can access the file |
158 the full path name. The only information that is passed to the target is the |
160 without knowing the full path name. The only information that is passed |
159 filename and extension. </p> </section> |
161 to the target is the filename and extension. </p> </section> |
160 <section id="GUID-849F5D6E-7911-55F8-839A-019D1BF16726"><title>File systems |
162 <section id="GUID-849F5D6E-7911-55F8-839A-019D1BF16726"><title>File |
161 and mounting a drive</title> <p>The varying characteristics of media types |
163 systems and mounting a drive</title> <p>The varying characteristics |
162 can mean that different media types require different formats. A common format |
164 of media types can mean that different media types require different |
163 is VFAT, and typically, this is used for removable media to maintain compatibility |
165 formats. A common format is VFAT, and typically, this is used for |
164 with other systems. This also means that long file names are supported. </p> <p>In |
166 removable media to maintain compatibility with other systems. This |
165 Symbian platform, format schemes are implemented by what are called file systems; |
167 also means that long file names are supported. </p> <p>In Symbian |
166 they are constructed as plugins to the file server. This means that the file |
168 platform, format schemes are implemented by what are called file systems; |
167 server itself is independent of the format scheme, and also means that a phone |
169 they are constructed as plugins to the file server. This means that |
168 manufacturer is free to add new file systems to a handset. The ROM is an exception |
170 the file server itself is independent of the format scheme, and also |
169 - it has its own file system built into the main file server code. </p> <p>A |
171 means that a phone manufacturer is free to add new file systems to |
170 file system must be associated with a drive before the drive can be used. |
172 a handset. The ROM is an exception - it has its own file system built |
171 This is known as mounting the drive, and is typically done at system boot |
173 into the main file server code. </p> <p>A file system must be associated |
172 time. </p> <p>In practice, an application does not need to concern itself |
174 with a drive before the drive can be used. This is known as mounting |
173 with the format scheme. </p> </section> |
175 the drive, and is typically done at system boot time. </p> <p>In practice, |
|
176 an application does not need to concern itself with the format scheme. </p> </section> |
174 </conbody></concept> |
177 </conbody></concept> |