source: rtems-docs/posix-compliance/standards.rst

Last change on this file was 1568ed2f, checked in by Joel Sherrill <joel@…>, on 05/05/21 at 21:31:53

posix-compliance: Update to include POSIX 1003.1-2017 (Issue 7).

  • Property mode set to 100644
File size: 4.7 KB
Line 
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
8Standards
9=========
10
11This chapter describes each of the standards which RTEMS tracks
12API alignment with. As a general rules, these standards are related
13to the POSIX or C programming language standards. Many are the result
14of domain specific efforts to define subsets or profiles or the full
15POSIX standard which are suitable for a specific domain. Each
16API set is considered a "profile" against which the full capability
17set of RTEMS is evaluated.
18
19The RTEMS Complete Profile is the complete set of POSIX, BSD, and
20C programming language methods supported by RTEMS. This profile is
21independent of any standard and represents a union of multiple
22standards. For example, RTEMS supports BSD derived methods that
23are not in POSIX.
24
25The IEEE Standard 1003.1 is the POSIX standard which is maintained by The
26Open Group.  Specifically, IEEE Standard 1003.1-2003 is the 2003 edition
27of the POSIX standard which is referred to by The Open Group as Issue 6.
28IEEE Standard 1003.1-2008 is the 2003 Edition of the standard with two
29Technical Corrigenda applied. It does not have an issue number associated
30with it.  IEEE Standard 1003.1-2017 is also known as Issue 7. Each edition
31of the POSIX standard tends to add some methods, deprecate some methods,
32and obsolete (e.g. remove) other methods.
33
34API differences between Issue 5 and Issue 6 are documented at
35https://pubs.opengroup.org/onlinepubs/009695399/xrat/xsh_chap01.html.
36There is not a summary for the changes between Issue 6 as published
37and what was released as 1003.1-2008.  However, there is a summary
38of API changes from Issue 6 to Issue 7 (POSIX 1003.1-2017) at
39https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap01.html.
40
41PSE51 through PSE54 are Open Group defined profiles of the 2003 edition
42of 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
60The C99 Programming Language standard defines the Standard C Library. This
61library is largely included by reference in the POSIX standard.
62
63The C11 Programming Language standard defines also defines an
64updated version of the Standard C Library. It deletes a few methods
65from the C99 version but adds many methods. A large portion of these
66methods are optional and not commonly implemented.
67
68The Open Group FACE Consortium (https://www.opengroup.org/face)
69has defined four POSIX profiles targetting the avionics application
70domain. The FACE Technical Standard has been through multiple revisions
71and the POSIX API profiles are identical in Editions 1.0, 2.0, 2.1,
72and 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
82FACE Technical Standard, Edition 3.0 adds the requirement for an
83operating system to support ``clock_nanosleep()`` in all profiles and
84defines one additional subcommand for the ``posix_devctl()`` methods.
85
86FACE Technical Standard, Edition 3.1 has a number of minor changes
87to the profiles. Most of these were to improve alignment with the
88Software Communications Architecture (SCA) profiles. Additionally,
89some inconsistencies in the profiles were noticed and addressed while
90doing the alignment review.
91
92RTEMS provides all of the methods required by the FACE Safety BASE profile
93and all of the methods in the Safety Extended profile which do not require
94multiple processes. Similarly, RTEMS provides most of the methods in the
95General Purpose profile which do not require multiple processes.
96
97The SCA specification targets the requirements for software-defined
98radios. This specification was originally developed in support of the
99Joint Tactical Radio System (JTRS) program in conjunction with the Object
100Management Group (OMG). This standard is now maintained by the Wireless
101Innovation Forum with support from the U.S. Navy Joint Tactical Network
102Center (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
110The SCA standard is hosted at the Wireless Innovation Forum with JTNC
111hosting supplemental information.
112
113RTEMS includes all methods required by the SCA POSIX profiles.
Note: See TracBrowser for help on using the repository browser.