.\" Copyright (c) 2006, Michael Kerrisk <mtk.manpages@gmail.com>
.\" includes some material by other authors that was formerly
.\" in intro.2.
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH STANDARDS 7 2007-11-15 "Linux" "Linux Programmer's Manual"
.SH NAME
standards \- C and UNIX Standards
.SH DESCRIPTION
The CONFORMING TO section that appears in many manual pages identifies
various standards to which the documented interface conforms.
The following list briefly describes these standards.
.TP
.B V7
Version 7, the ancestral UNIX from Bell Labs.
.TP
.B 4.2BSD
This is an implementation standard defined by the 4.2 release
of the
.IR "Berkeley Software Distribution",
released by the University of California at Berkeley.
This was the first Berkeley release that contained a TCP/IP
stack and the sockets API.
4.2BSD was released in 1983.

Earlier major BSD releases included \fI3BSD\fP (1980), \fI4BSD\fP (1980),
and \fI4.1BSD\fP (1981).
.TP
.B 4.3BSD
The successor to 4.2BSD, released in 1986.
.TP
.B 4.4BSD
The successor to 4.3BSD, released in 1993.
This was the last major Berkeley release.
.TP
.B System V
This is an implementation standard defined by AT&T's milestone 1983
release of its commercial System V (five) release.
The previous major AT&T release was
.IR "System III" ,
released in 1981.
.TP
.B System V release 2 (SVr2)
This was the next System V release, made in 1985.
The SVr2 was formally described in the
.I "System V Interface Definition version 1"
.RI ( "SVID 1" )
published in 1985.
.TP
.B System V release 3 (SVr3)
This was the successor to SVr2, released in 1986.
This release was formally described in the
.I "System V Interface Definition version 2"
.RI ( "SVID 2" ).
.TP
.B System V release 4 (SVr4)
This was the successor to SVr3, released in 1989.
This version of System V is described in the "Programmer's Reference
Manual: Operating System API (Intel processors)" (Prentice-Hall
1992, ISBN 0-13-951294-2)
This release was formally described in the
.I "System V Interface Definition version 3"
.RI ( "SVID 3" ),
and is considered the definitive System V release.
.TP
.B SVID 4
System V Interface Definition version 4, issued in 1995.
Available online at http://www.sco.com/developers/devspecs/ .
.TP
.B C89
This was the first C language standard, ratified by ANSI
(American National Standards Institute) in 1989
.RI ( X3.159-1989 ).
Sometimes this is known as
.IR "ANSI C" ,
but since C99 is also an
ANSI standard, this term is ambiguous.
This standard was also ratified by
ISO (International Standards Organization) in 1990
.RI ( "ISO/IEC 9899:1990" ),
and is thus occasionally referred to as
.IR "ISO C90" .
.TP
.B C99
This revision of the C language standard was ratified by ISO in 1999
.RI ( "ISO/IEC 9899:1999" ).
Available online at
http://www.open-std.org/jtc1/sc22/wg14/www/standards.
.TP
.B POSIX.1-1990
"Portable Operating System Interface for Computing Environments".
IEEE 1003.1-1990 part 1, ratified by ISO in 1990
.RI ( "ISO/IEC 9945-1:1990" ).
Further information can be found
in Donald Lewine's "POSIX Programmer's Guide" (O'Reilly & Associates,
Inc., 1991, ISBN 0-937175-73-0).
The term "POSIX" was coined by Richard Stallman.
.TP
.B POSIX.2
IEEE Std 1003.2-1992,
describing commands and utilities, ratified by ISO in 1993
.RI ( "ISO/IEC 9945-2:1993" ).
.TP
.BR POSIX.1b " (formerly known as \fIPOSIX.4\fP)"
IEEE Std 1003.1b-1993
describing real-time facilities
for portable operating systems, ratified by ISO in 1996
.RI ( "ISO/IEC 9945-1:1996" ).
For further information, see
"POSIX.4: Programming for the real world"
by Bill O. Gallmeister (O'Reilly & Associates, Inc. ISBN 1-56592-074-0).
.TP
.B POSIX.1c
IEEE Std 1003.1c-1995 describing the POSIX threads interfaces.
.TP
.B POSIX.1d
IEEE Std 1003.1c-1999 describing additional real-time extensions.
.TP
.B POSIX.1g
IEEE Std 1003.1g-2000 describing networking APIs (including sockets).
.TP
.B POSIX.1j
IEEE Std 1003.1j-2000 describing advanced real-time extensions.
.TP
.B POSIX.1-1996
A 1996 revision of POSIX.1 which incorporated POSIX.1b and POSIX.1c.
.TP
.B XPG3
Released in 1989, this was the first significant release of the
.IR "X/Open Portability Guide" ,
produced by the
X/Open Company, a multi-vendor consortium.
This multi-volume guide was based on the POSIX standards.
.TP
.B XPG4
A revision of the X/Open Portability Guide, released in 1992.
.TP
.B XPG4v2
A 1994 revision of XPG4.
This is also referred to as
.IR "Spec 1170" ,
where 1170 referred to the number of interfaces
defined by this standard.
.TP
.B SUS  (SUSv1)
Single UNIX Specification.
This was a repackaging of XPG4v2 and other X/Open standards
(X/Open Curses Issue 4 version 2,
X/Open Networking Service (XNS) Issue 4).
Systems conforming to this standard can be branded
.IR "UNIX 95" .
.TP
.B SUSv2
Single UNIX Specification version 2.
Sometimes also referred to as
.IR XPG5 .
This standard appeared in 1997.
Systems conforming to this standard can be branded
.IR "UNIX 98" .
See also
http://www.UNIX-systems.org/version2/ .)
.TP
.B POSIX.1-2001, SUSv3
This was a 2001 revision and consolidation of the
POSIX.1, POSIX.2, and SUS standards into a single document,
conducted under the auspices of the Austin group
(http://www.opengroup.org/austin/ .)
The standard is available online at
http://www.unix-systems.org/version3/ ,
and the interfaces that it describes are also available in the Linux
manual pages package under sections 1p and 3p (e.g., "man 3p open").

The standard defines two levels of conformance:
.IR "POSIX conformance" ,
which is a baseline set of interfaces required of a conforming system;
and
.IR "XSI Conformance",
which additionally mandates a set of interfaces
(the "XSI extension") which are only optional for POSIX conformance.
XSI-conformant systems can be branded
.IR "UNIX 03" .
(XSI conformance constitutes the
.I "Single UNIX Specification version 3"
.RI ( SUSv3 ).)

The POSIX.1-2001 document is broken into four parts:

.BR XBD :
Definitions, terms and concepts, header file specifications.

.BR XSH :
Specifications of functions (i.e., system calls and library
functions in actual implementations).

.BR XCU :
Specifications of commands and utilities
(i.e., the area formerly described by POSIX.2).

.BR XRAT :
Informative text on the other parts of the standard.

POSIX.1-2001 is aligned with C99, so that all of the
library functions standardized in C99 are also
standardized in POSIX.1-2001.

Two Technical Corrigenda (minor fixes and improvements)
of the original 2001 standard have occurred:
TC1 in 2003 (referred to as
.IR POSIX.1-2003 ),
and TC2 in 2004 (referred to as
.IR POSIX.1-2004 ).
.\" FIXME . Eventually we need to update the text on POSIX.1-200[89]/SUSv4
.TP
.B POSIX.1-200x, SUSv4
Work is currently in progress on the next revision of POSIX.1/SUS.
The balloting on the revision is expected to be completed in 2008,
so that the revision is likely to be named POSIX.1-2008.

The changes in this revision are not as large as those
that occurred for POSIX.1-2001/SUSv3,
but a number of new interfaces are added
and various details of existing specifications are modified.
Many of the interfaces that were optional in
POSIX.1-2001 become mandatory in the next revision of the standard.

The revised standard is broken into the same four parts as POSIX.1-2001,
and again there are two levels of conformance: the baseline
.IR "POSIX Conformance" ,
and
.IR "XSI Conformance" ,
which mandates an additional set of interfaces
beyond those in the base specification.

Further information can be found on the Austin group web site,
http://www.opengroup.org/austin/ .
.SH "SEE ALSO"
.BR feature_test_macros (7),
.BR posixoptions (7)
