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. Specifically, IEEE |
---|
26 | Standard 1003.1-2008 is the 2003 edition of the POSIX standard and IEEE |
---|
27 | Standard 1003.1-2008 is the 2008 edition. The 2008 is is an update from |
---|
28 | the 2003 edition. Each edition of the POSIX standard tends to add some |
---|
29 | methods, deprecate some methods, and obsolete (e.g. remove) other methods. |
---|
30 | |
---|
31 | PSE51 through PSE54 are Open Group defined profiles of the 2003 edition |
---|
32 | of the POSIX standard. These profiles are: |
---|
33 | |
---|
34 | * Profile 54 - Multipurpose |
---|
35 | |
---|
36 | * 1003.1-2003 Base Multi-process, Threads and File System |
---|
37 | |
---|
38 | * Profile 53 - Dedicated |
---|
39 | |
---|
40 | * Multi-process, Threads and File System |
---|
41 | |
---|
42 | * Profile 52 - Controller |
---|
43 | |
---|
44 | * Single Process, Threads, and File System |
---|
45 | |
---|
46 | * Profile 51 - Minimal |
---|
47 | |
---|
48 | * Single Process, Threads, with No File System |
---|
49 | |
---|
50 | The C99 Programming Language standard defines the Standard C Library. This |
---|
51 | library is largely included by reference in the POSIX standard. |
---|
52 | |
---|
53 | The C11 Programming Language standard defines also defines an |
---|
54 | updated version of the Standard C Library. It deletes a few methods |
---|
55 | from the C99 version but adds many methods. A large portion of these |
---|
56 | methods are optional and not commonly implemented. |
---|
57 | |
---|
58 | The Open Group FACE Consortium (https://www.opengroup.org/face) |
---|
59 | has defined four POSIX profiles targetting the avionics application |
---|
60 | domain. The FACE Technical Standard has been through multiple revisions |
---|
61 | and the POSIX API profiles are identical in Editions 1.0, 2.0, 2.1, |
---|
62 | and 2.1.1. In these editions, the profiles are as follows: |
---|
63 | |
---|
64 | * Security - 163 APIs, single process, no FILE * |
---|
65 | |
---|
66 | * Safety Basic - 246 APIs, single process, some FILE * |
---|
67 | |
---|
68 | * Safety Extended - 335 APIs, multi-process, more FILE * |
---|
69 | |
---|
70 | * General Purpose - 812 APIs, multi-process, much more |
---|
71 | |
---|
72 | FACE Technical Standard Edition 3.0 adds the requirement for an |
---|
73 | operating system to support ``clock_nanosleep()`` in all profiles and |
---|
74 | defines one additional subcommand for the ``posix_devctl()`` methods. |
---|
75 | |
---|
76 | RTEMS provides all of the methods required by the FACE Safety BASE profile |
---|
77 | and all of the methods in the Safety Extended profile which do not require |
---|
78 | multiple processes. Similarly, RTEMS provides most of the methods in the |
---|
79 | General Purpose profile which do not require multiple processes. |
---|
80 | |
---|
81 | The Software Communications Architecture (SCA) specification targets the |
---|
82 | requirements for software-defined radios. This specification was originally |
---|
83 | developed in support of the Joint Tactical Radio System (JTRS) program |
---|
84 | in conjunction with the Object Management Group (OMG). This standard is |
---|
85 | now maintained by the Wireless Innovation Forum with support from the |
---|
86 | U.S. Navy Joint Tactical Network Center (JTNC). Some URLs of interest: |
---|
87 | |
---|
88 | * SCA at Wireless Innovation Forum - http://www.wirelessinnovation.org/sca-based-standards-library |
---|
89 | |
---|
90 | * JTRS - https://en.wikipedia.org/wiki/Joint_Tactical_Radio_System |
---|
91 | |
---|
92 | * JTNC - http://www.public.navy.mil/jtnc/Pages/home.aspx |
---|
93 | |
---|
94 | The SCA standard is hosted at the Wireless Innovation Forum with JTNC |
---|
95 | hosting supplemental information. |
---|
96 | |
---|
97 | RTEMS includes all methods required by the SCA POSIX profiles. |
---|