1 | ======= |
---|
2 | Preface |
---|
3 | ======= |
---|
4 | |
---|
5 | This document describes the implementation of the RTEMS filesystem |
---|
6 | infrastructure. This infrastructure supports the following |
---|
7 | capabilities: |
---|
8 | |
---|
9 | - Mountable file systems |
---|
10 | |
---|
11 | - Hierarchical file system directory structure |
---|
12 | |
---|
13 | - POSIX compliant set of routines for the manipulation of files and directories |
---|
14 | |
---|
15 | - Individual file and directory support for the following: |
---|
16 | # Permissions for read, write and execute |
---|
17 | # User ID |
---|
18 | # Group ID |
---|
19 | # Access time |
---|
20 | # Modification time |
---|
21 | # Creation time |
---|
22 | |
---|
23 | - Hard links to files and directories |
---|
24 | |
---|
25 | - Symbolic links to files and directories |
---|
26 | |
---|
27 | This has been implemented to provide the framework for a UNIX-like |
---|
28 | file system support. POSIX file and directory functions have been |
---|
29 | implemented that allow a standard method of accessing file, device and |
---|
30 | directory information within file systems. The file system concept that |
---|
31 | has been implemented allows for expansion and adaptation of the file |
---|
32 | system to a variety of existing and future data storage devices. To this |
---|
33 | end, file system mount and unmount capabilities have been included in this |
---|
34 | RTEMS framework. |
---|
35 | |
---|
36 | This framework slightly alters the manner in which devices are handled |
---|
37 | under RTEMS from that of public release 4.0.0 and earlier. Devices that |
---|
38 | are defined under a given RTEMS configuration will now be registered as |
---|
39 | files in a mounted file system. Access to these device drivers and their |
---|
40 | associated devices may now be performed through the traditional file system |
---|
41 | open(), read(), write(), lseek(), fstat() and ioctl() functions in addition |
---|
42 | to the interface provided by the IO Manager in the RTEMS Classic API. |
---|
43 | |
---|
44 | An In-Memory File System (IMFS) is included which provides full POSIX |
---|
45 | filesystem functionality yet is RAM based. The IMFS maintains a |
---|
46 | node structure for each file, device, and directory in each mounted |
---|
47 | instantiation of its file system. The node structure is used to |
---|
48 | manage ownership, access rights, access time, modification time, |
---|
49 | and creation time. A union of structures within the IMFS nodal |
---|
50 | structure provide for manipulation of file data, device selection, |
---|
51 | or directory content as required by the nodal type. Manipulation of |
---|
52 | these properties is accomplished through the POSIX set of file and |
---|
53 | directory functions. In addition to being useful in its own right, |
---|
54 | the IMFS serves as a full featured example filesystem. |
---|
55 | |
---|
56 | The intended audience for this document is those persons implementing |
---|
57 | their own filesystem. Users of the filesystem may find information |
---|
58 | on the implementation useful. But the user interface to the filesystem |
---|
59 | is through the ISO/ANSI C Library and POSIX 1003.1b file and directory |
---|
60 | APIs. |
---|
61 | |
---|
62 | .. COMMENT: COPYRIGHT (c) 1988-2002. |
---|
63 | |
---|
64 | .. COMMENT: On-Line Applications Research Corporation (OAR). |
---|
65 | |
---|
66 | .. COMMENT: All rights reserved. |
---|
67 | |
---|