1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR) |
---|
4 | |
---|
5 | Preface |
---|
6 | ======= |
---|
7 | |
---|
8 | RTEMS supports a variety of POSIX and BSD features including some POSIX |
---|
9 | methods that are now deemed obsolete and some methods for compatibility |
---|
10 | with GNU/Linux and FreeBSD. There are multiple POSIX standard versions |
---|
11 | as well as multiple efforts to tailor (e.g. profile) POSIX for embedded |
---|
12 | environments. They range in size from less than 200 required capabilities |
---|
13 | to the full POSIX standard which has over 1200 required capabilities. This |
---|
14 | document reports on the alignment of RTEMS with various standard versions |
---|
15 | and defined profiles. |
---|
16 | |
---|
17 | RTEMS supports a number of POSIX process, user, and group oriented |
---|
18 | routines in what is referred to as a "SUSP" (Single-User, Single |
---|
19 | Process) manner. RTEMS supports a single process, multithreaded |
---|
20 | POSIX environment. In a pure world, there would be no reason to even |
---|
21 | include routines like ``getpid()`` when there can only be one process. |
---|
22 | But providing routines like ``getpid()`` and making them work in |
---|
23 | a sensible fashion for an embedded environment while not returning |
---|
24 | ``ENOSYS`` (for not implemented) makes it significantly easier to port |
---|
25 | code from a UNIX environment without modifying it. |
---|
26 | |
---|
27 | In general, adding missing methods is always an open project for a |
---|
28 | volunteer. If considering addressing missing methods, please discuss |
---|
29 | this on mailing list. Some are properly implemented in the Newlib |
---|
30 | C Standard Library used by RTEMS. Others may require target architecture |
---|
31 | specific implementations. Still others may be impossible to implement |
---|
32 | without multiple processes or can only be implemented in a restricted |
---|
33 | fashion. |
---|
34 | |
---|
35 | Missing methods required by the C99 standard or FACE Technical |
---|
36 | Standard Edition 3.0 General Purpose Profile are good candidates to add. |
---|
37 | Proposals to add missing methods from the C11 standard should be reviewed |
---|
38 | by RTEMS core developers to ensure the effort is well spent. There are |
---|
39 | rumors that some optional methods that are not being widely implemented |
---|
40 | will be removed in a future versino of the C Programming Language standard. |
---|
41 | |
---|
42 | The next chapter in this document describes each of the standards |
---|
43 | with which the RTEMS alignment is tracked. Each subsequent chapter in |
---|
44 | this document presents the alignment of RTEMS with a specific standard |
---|
45 | version or defined profile. Each section with a chapter details the |
---|
46 | alignment of a specific header file relative to the chapter's standard |
---|
47 | or profile. The implementation status of the items required by the |
---|
48 | standard are listed. |
---|