posix-compliance: Add description of standards

This commit is contained in:
Joel Sherrill 2018-02-14 17:16:00 -06:00
parent 5b76390b49
commit 9c9ba8f8bc
3 changed files with 84 additions and 5 deletions

View File

@ -43,6 +43,7 @@ to the Community Project hosted at http://www.rtems.org/.
:numbered: :numbered:
preface preface
standards
posix-compliance posix-compliance
glossary glossary
zreferences zreferences

View File

@ -26,8 +26,18 @@ a sensible fashion for an embedded environment while not returning
``ENOSYS`` (for not implemented) makes it significantly easier to port ``ENOSYS`` (for not implemented) makes it significantly easier to port
code from a UNIX environment without modifying it. code from a UNIX environment without modifying it.
Each chapter in this document presents the alignment of RTEMS with In general, adding missing methods is always an open project for a
a specific standard version or defined profile. Each section with a volunteer. If considering addressing missing methods, please discuss
chapter details the alignment of a specific header file relative to the this on mailing list. Some are properly implemented in the Newlib
chapter's standard or profile. The implementation status of the items C Standard Library used by RTEMS. Others may require target architecture
required by the standard are listed. specific implementations. Still others may be impossible to implement
without multiple processes or can only be implemented in a restricted
fashion.
The next chapter in this document describes each of the standards
with which the RTEMS alignment is tracked. Each subsequent chapter in
this document presents the alignment of RTEMS with a specific standard
version or defined profile. Each section with a chapter details the
alignment of a specific header file relative to the chapter's standard
or profile. The implementation status of the items required by the
standard are listed.

View File

@ -0,0 +1,68 @@
.. comment SPDX-License-Identifier: CC-BY-SA-4.0
.. COMMENT: COPYRIGHT (c) 2018.
.. COMMENT: On-Line Applications Research Corporation (OAR).
| **COPYRIGHT (c) 20188.**
.. **RTEMS Foundation, The RTEMS Documentation Project**
Standards
=========
This chapter describes each of the standards which RTEMS tracks
API alignment with. As a general rules, these standards are related
to the POSIX or C programming language standards. Many are the result
of domain specific efforts to define subsets or profiles or the full
POSIX standard which are suitable for a specific domain. Each
API set is considered a "profile" against which the full capability
set of RTEMS is evaluated.
The RTEMS Complete Profile is the complete set of POSIX, BSD, and
C programming language methods supported by RTEMS. This profile is
independent of any standard and represents a union of multiple
standards. For example, RTEMS supports BSD derived methods that
are not in POSIX.
The IEEE Std 1003.1-2008 API is the 2008 edition of the POSIX standard.
It is an update from the 2003 edition. Each edition of the POSIX standard
tends to add some methods, deprecate some methods, and obsolete
(e.g. remove) other methods.
PSE51 through PSE54 are Open Group defined profiles of the 2003 edition
of the POSIX standard. These profiles are:
* Profile 54 - Multipurpose
* 1003.1-2003 Base Multi-process, Threads and File System
* Profile 53 - Dedicated
* Multi-process, Threads and File System
* Profile 52 - Controller
* Single Process, Threads, and File System
* Profile 51 - Minimal
* Single Process, Threads, with No File System
The C99 Programming Language standard defines the Standard C Library. This
library is largely included by reference in the POSIX standard.
The Open Group FACE Consortium has defined four POSIX profiles targetting
the avionics application domain. The FACE Technical Standard has been
through multiple revisions and the POSIX API profiles are identical in
Editions 1.0, 2.0, and 2.1. They are as follows:
* Security - 163 APIs, single process, no FILE *
* Safety Basic - 246 APIs, single process, some FILE *
* Safety Extended - 335 APIs, multi-process, more FILE *
* General Purpose - 812 APIs, multi-process, much more
RTEMS provides all of the methods required by the FACE Safety BASE profile
and all of the methods in the Safety Extended profile which do not require
multiple processes. Similarly, RTEMS provides most of the methods in the
General Purpose profile which do not require multiple processes.