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