1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. Copyright (C) 2018. |
---|
4 | .. COMMENT: On-Line Applications Research Corporation (OAR). |
---|
5 | | **COPYRIGHT (c) 20188.** |
---|
6 | .. **RTEMS Foundation, The RTEMS Documentation Project** |
---|
7 | |
---|
8 | Standards |
---|
9 | ========= |
---|
10 | |
---|
11 | This chapter describes each of the standards which RTEMS tracks |
---|
12 | API alignment with. As a general rules, these standards are related |
---|
13 | to the POSIX or C programming language standards. Many are the result |
---|
14 | of domain specific efforts to define subsets or profiles or the full |
---|
15 | POSIX standard which are suitable for a specific domain. Each |
---|
16 | API set is considered a "profile" against which the full capability |
---|
17 | set of RTEMS is evaluated. |
---|
18 | |
---|
19 | The RTEMS Complete Profile is the complete set of POSIX, BSD, and |
---|
20 | C programming language methods supported by RTEMS. This profile is |
---|
21 | independent of any standard and represents a union of multiple |
---|
22 | standards. For example, RTEMS supports BSD derived methods that |
---|
23 | are not in POSIX. |
---|
24 | |
---|
25 | The IEEE Standard 1003.1 is the POSIX standard which is maintained by The |
---|
26 | Open Group. Specifically, IEEE Standard 1003.1-2003 is the 2003 edition |
---|
27 | of the POSIX standard which is referred to by The Open Group as Issue 6. |
---|
28 | IEEE Standard 1003.1-2008 is the 2003 Edition of the standard with two |
---|
29 | Technical Corrigenda applied. It does not have an issue number associated |
---|
30 | with it. IEEE Standard 1003.1-2017 is also known as Issue 7. Each edition |
---|
31 | of the POSIX standard tends to add some methods, deprecate some methods, |
---|
32 | and obsolete (e.g. remove) other methods. |
---|
33 | |
---|
34 | API differences between Issue 5 and Issue 6 are documented at |
---|
35 | https://pubs.opengroup.org/onlinepubs/009695399/xrat/xsh_chap01.html. |
---|
36 | There is not a summary for the changes between Issue 6 as published |
---|
37 | and what was released as 1003.1-2008. However, there is a summary |
---|
38 | of API changes from Issue 6 to Issue 7 (POSIX 1003.1-2017) at |
---|
39 | https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html. |
---|
40 | |
---|
41 | PSE51 through PSE54 are Open Group defined profiles of the 2003 edition |
---|
42 | of the POSIX standard. These profiles are: |
---|
43 | |
---|
44 | * Profile 54 - Multipurpose |
---|
45 | |
---|
46 | * 1003.1-2003 Base Multi-process, Threads and File System |
---|
47 | |
---|
48 | * Profile 53 - Dedicated |
---|
49 | |
---|
50 | * Multi-process, Threads and File System |
---|
51 | |
---|
52 | * Profile 52 - Controller |
---|
53 | |
---|
54 | * Single Process, Threads, and File System |
---|
55 | |
---|
56 | * Profile 51 - Minimal |
---|
57 | |
---|
58 | * Single Process, Threads, with No File System |
---|
59 | |
---|
60 | The C99 Programming Language standard defines the Standard C Library. This |
---|
61 | library is largely included by reference in the POSIX standard. |
---|
62 | |
---|
63 | The C11 Programming Language standard defines also defines an |
---|
64 | updated version of the Standard C Library. It deletes a few methods |
---|
65 | from the C99 version but adds many methods. A large portion of these |
---|
66 | methods are optional and not commonly implemented. |
---|
67 | |
---|
68 | The Open Group FACE Consortium (https://www.opengroup.org/face) |
---|
69 | has defined four POSIX profiles targetting the avionics application |
---|
70 | domain. The FACE Technical Standard has been through multiple revisions |
---|
71 | and the POSIX API profiles are identical in Editions 1.0, 2.0, 2.1, |
---|
72 | and 2.1.1. In these editions, the profiles are as follows: |
---|
73 | |
---|
74 | * Security - 163 APIs, single process, no FILE * |
---|
75 | |
---|
76 | * Safety Basic - 246 APIs, single process, some FILE * |
---|
77 | |
---|
78 | * Safety Extended - 335 APIs, multi-process, more FILE * |
---|
79 | |
---|
80 | * General Purpose - 812 APIs, multi-process, much more |
---|
81 | |
---|
82 | FACE Technical Standard, Edition 3.0 adds the requirement for an |
---|
83 | operating system to support ``clock_nanosleep()`` in all profiles and |
---|
84 | defines one additional subcommand for the ``posix_devctl()`` methods. |
---|
85 | |
---|
86 | FACE Technical Standard, Edition 3.1 has a number of minor changes |
---|
87 | to the profiles. Most of these were to improve alignment with the |
---|
88 | Software Communications Architecture (SCA) profiles. Additionally, |
---|
89 | some inconsistencies in the profiles were noticed and addressed while |
---|
90 | doing the alignment review. |
---|
91 | |
---|
92 | RTEMS provides all of the methods required by the FACE Safety BASE profile |
---|
93 | and all of the methods in the Safety Extended profile which do not require |
---|
94 | multiple processes. Similarly, RTEMS provides most of the methods in the |
---|
95 | General Purpose profile which do not require multiple processes. |
---|
96 | |
---|
97 | The SCA specification targets the requirements for software-defined |
---|
98 | radios. This specification was originally developed in support of the |
---|
99 | Joint Tactical Radio System (JTRS) program in conjunction with the Object |
---|
100 | Management Group (OMG). This standard is now maintained by the Wireless |
---|
101 | Innovation Forum with support from the U.S. Navy Joint Tactical Network |
---|
102 | Center (JTNC). Some URLs of interest: |
---|
103 | |
---|
104 | * SCA at Wireless Innovation Forum - http://www.wirelessinnovation.org/sca-based-standards-library |
---|
105 | |
---|
106 | * JTRS - https://en.wikipedia.org/wiki/Joint_Tactical_Radio_System |
---|
107 | |
---|
108 | * JTNC - http://www.public.navy.mil/jtnc/Pages/home.aspx |
---|
109 | |
---|
110 | The SCA standard is hosted at the Wireless Innovation Forum with JTNC |
---|
111 | hosting supplemental information. |
---|
112 | |
---|
113 | RTEMS includes all methods required by the SCA POSIX profiles. |
---|