POSIX® 1003.1 Frequently Asked Questions (FAQ Version 1.14)

Last Updated : October 4 2013: freq.ques,v 1.14

This is the Frequently Asked Questions file for the POSIX 1003.1
standard (IEEE Std 1003.1).
Its maintainer is Andrew Josey (ajosey at The Open Group ).
Suggestions and contributions are always welcome.

This document can be found on the world wide web at http://www.opengroup.org/austin/papers/posix_faq.html.

This article includes answers to the following.

Q0. What is POSIX? What is POSIX.1?
Q1. What is the Portable Application Standards Committee (PASC)?
Q2. What is the Austin Group?
Q3. What is the latest version of POSIX.1?
Q4. Where can I download the 1003.1 standard from?
Q5. What are the restrictions on the 1003.1 standard drafts and the full standard?
Q6. Is the standard available in Man Pages format?
Q7. How do I become a participant in the development of the POSIX.1 standard?
Q8. What happened to the existing POSIX 1003.1-1990 and POSIX 1003.2-1992 standards when this revision completed?
Q9. What is the history of IEEE POSIX 1003.1 System Application Interface
(C API) ?
Q10. What is the IEEE POSIX 1003.2 Shell and Utilities?
Q11. What are the IEEE POSIX Standards for Real-time?
Q12. How does the 1003.1 standard compare to the Linux Standard Base?
Q13. What options are there in the POSIX.1 standard?
Q14. What are the core technical changes in the latest POSIX.1
standard over 1003.1-1990 and 1003.2-1992?
Q15. Does removal of obsolescent utility syntax mean that implementations supporting usages of head -5 file, tail -5 file, tail -l file are no longer allowed?
Q16. What about POSIX Certification?
Q17. How do I report a bug in the POSIX.1 standard?
Q18. What are the plans for the next revision of POSIX.1?
Q19. How do I add a question to this FAQ?

Q0. What is POSIX? What is POSIX.1?

POSIX is a registered trademark of the IEEE.

POSIX is an acronym for Portable Operating System
Interface.

Although originated to refer to the original IEEE Std 1003.1-1988,
the name POSIX more correctly refers to a family of related standards:
IEEE Std 1003.n (where n is a number) and the parts of
ISO/IEC 9945. The term POSIX was originally used as a synonym for
IEEE Std 1003.1-1988. A preferred term for that standard, POSIX.1,
emerged. This maintained the advantages of readability of the symbol
``POSIX'' without being ambiguous with the POSIX family of standards.

For a full listing of the project numbers see
PASC Standing Document SD11.

The name POSIX was suggested by Richard Stallman. It is expected
to be pronounced pahz-icks, as in positive, not poh-six, or other
variations. The pronunciation has been published in an attempt to
promulgate a standardized way of referring to a standard operating
system interface.

The latest version of the POSIX.1 standard is IEEE Std 1003.1, 2013
Edition, developed by the Austin Group (see later).
For further information on the background, audience and purpose of POSIX.1
see the following document:

The IEEE Computer Society's Portable Application Standards Committee
(PASC) is the group that has and continues to develop the POSIX family
of standards. Historically, the major work has been undertaken within
Project 1003 (POSIX) with the best known standard being IEEE Std 1003.1
(also known as POSIX 1003.1, colloquially termed "dot 1"). The goal of
the PASC standards has been to promote application portability at the
source code level.

Q2. What is the Austin Group?

The Austin Common Standards Revision Group (CSRG) is a joint technical
working group established to develop and maintain the
latest version of the 1003.1 standard --- which combined
and revised ISO/IEC 9945-1,1996 edition, ISO/IEC 9945-2, 1993 Edition,
IEEE Std 1003.1,1996 edition, IEEE Std 1003.2, 1992 edition and
the appropriate parts of the Single UNIX Specification.

See http://www.opengroup.org/austin/ for more information.

Q3. What is the latest version of POSIX.1?

The 2013 edition of the 1003.1 standard was published
in April 2013.
The 2013 Edition is formally known as:

POSIX.1 is also an international standard, and ISO/IEC publication
occurred in September 2009, denoted as ISO/IEC 9945:2009.
The most recent Technical Corrigendum was approved by
ISO/IEC in late 2012.

Q4. Where can I download the 1003.1 standard from?

The html version of the latest version of the standard (which
incorporates technical corrigendum 1) is freely available to read and download
from:
URL:http://www.unix-systems.org/version4/, you need to register for a copy.

PDF copies of the final standard can also be obtained either from The
IEEE (search on 1003.1) , The Open Group (Look for
documents T101,C138) or ISO (look for ISO/IEC 9945).
It is freely available in pdf format to members of The Open Group from
The Open Group publications catalog. If you wish to signup up
your organization to become a
member of The Open Group and are an active participant you can sign up
for no fee at
http://www.opengroup.org/austin/ogmembers/ (note this is
for companies and organizations only). If you want to join
as an individual please contact Andrew Josey directly, he can then
add you as an individual affiliate member.

Ongoing draft specifications for future technical corrigenda may be available
online from the Austin Group web site at http://www.opengroup.org/austin/ .
You need to be a member of the Austin Group. Information on how to
join the group is on the web site.

Q5. What are the restrictions on the 1003.1 standard drafts and the full standard?

See the copyright notice on the documents and
the notice at http://www.opengroup.org/austin/login.html .
Downloading the draft is taken as agreement to abide by the
stated terms and conditions. In brief you need to be a participant
in the Austin Group in order to download the drafts.

Note also that the IEEE and The Open Group have granted permission
to several open source projects to incorporate materials from the
standard.
All queries regarding permission to reproduce sections
of the standard should be sent to austin-group-permissions at
Open Group . Permission needs to be granted by both copyright
holders, The IEEE and The Open Group.

The IEEE and The Open Group position on
implementations of the standard is as follows:
"it is fair use of the standard for
implementors to use the names, labels etc contained within the
specification. The intent of publication of the standard is to
encourage implementations of the standard. Your attention is drawn
to the disclaimer regarding verification of patents when implementing
the standard."

Q6. Is the standard available in Man Pages format?

A personal use copy of the standard in html man page format
can be downloaded from
http://www.unix.org/single_unix_specification.

A set of nroff manual pages are maintained by
Michael Kerrisk, who oversees the Linux Manual Pages Project,
with the permission of IEEE and The Open Group.
These can be obtained from
http://man7.org/linux/man-pages/index.html

Q7. How do I become a participant in the POSIX.1 Working Group?

To participate you need to join the Austin Group.
See http://www.opengroup.org/austin/lists.html for more
information.

Q8. What happened to the original POSIX 1003.1-1990 and POSIX 1003.2-1992 standards?

Since the material contained in the existing POSIX 1003.1 and POSIX 1003.2 standards
is merged into the revision, POSIX 1003.1-1990 and its amendments, and
POSIX 1003.2-1992 and its amendments
were administratively withdrawn by the IEEE.

Q9. What is the history of the IEEE POSIX 1003.1 System Application Interface (C API) ?

Historically, POSIX 1003.1 has been the base standard upon which the POSIX
family of standards has been built. In keeping with its original focus
on the UNIX system, it is aimed at interactive timesharing computing
environments.

The first edition of IEEE Std 1003.1 was published in 1988. Subsequent
editions were published in 1990, 1996 and 2001. The 1990 edition was a
revision to the 1988 edition and became the stable base standard onto
which further amendments were added. The 1990 edition was also approved
as an international standard, ISO/IEC 9945-1:1990.

The 1996 edition added the IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995,
and 1003.1i-1995 amendments to the base standard, keeping the stable core
text unchanged. The 1996 edition of IEEE Std 1003.1 was also approved
as an international standard, ISO/IEC 9945-1:1996.

In 1999 the decision was taken to commence the first major revision to
the core base standard in ten years, including a merger with the 1003.2
standards for Shell and Utilities which had been a separate standard
up to this point . It was agreed that this work be undertaken by the
Austin Group. As part of this decision the PASC decided
to cease rolling amendments to the base standard after completion of
IEEE Stds 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q, and 1003.2b.
These projects were rolled into the 2001 edition of IEEE Std 1003.1.
It was decided to convert other projects in progress to standalone
documents.

Q10. What is IEEE POSIX 1003.2 Shell and Utilities?

This standard defines a standard source level interface to the shell
and utility functionality required by application programs, including
shell scripts. This standard has been incorporated into the latest
revision of POSIX 1003.1 and thus a POSIX.2 standard no longer exists.

Q11. What are the IEEE POSIX Standards for Real-time?

The PASC Real-time System Services Working Group (SSWG-RT) has developed
a series of standards that amend IEEE Std 1003.1-1990 and a profile
standard (IEEE Std 1003.13-1998).

The Real-time amendments to IEEE Std 1003.1-1990 are as follows:

IEEE Std 1003.1b-1993 Realtime Extension

IEEE Std 1003.1c-1995 Threads

IEEE Std 1003.1d-1999 Additional Realtime Extensions

IEEE Std 1003.1j-2000 Advanced Realtime Extensions

IEEE Std 1003.1q-2000 Tracing

These have all been folded in as options within the revision project
undertaken by the Austin Group in producing IEEE Std 1003.1-2001.

The Real-time profile is known as IEEE Std 1003.13-1998. At the time
of writing there is a revision to IEEE Std 1003.13-1998 in progress to
align it with IEEE Std 1003.1-2001, this project current known as IEEE
P1003.13-200x.

Q12. How does the POSIX.1 standard compare to the Linux Standard Base?

The POSIX.1 standard specifies application programming interfaces (APIs)
at the source level, and is about source code portability.
Its neither a code implementation nor an operating system, but
a stable definition of a programming interface that those systems supporting the
specification guarantee to provide to the application programmer.
Efforts such as the Linux Standard Base, and similarly the iBCS2 for x86
implementations of System V, are primarily about binary portability
and define a specific binary implementation of an interface to
operating system services. In general they build upon the foundations
of the POSIX standard.

Q14. What are the core technical changes in the
POSIX.1 standard over 1003.1-1990 and 1003.2-1992?

The main changes are as follows: alignment with ISO/IEC 9899:1999 (ISO C),
support for IPv6, integration of recent POSIX realtime amendments (
1003.1d, 1003.1j, 1003.1q), amendments to the core POSIX functionality from
the 1003.2b and 1003.1a amendments, application of technical corrigendum
from The Open Group and IEEE interpretations, revision of options ,
removal of obsolescent and legacy interfaces.

No, in general the intent of removing the obsolescent forms of the utility
synopses was not to disallow them to be supported by implementations but
to downgrade the status of their use in applications from conforming
application using an obsolescent feature to non-conforming application.
In general it is allowed for utilities to have extensions that violate
the utility syntax guidelines so long as the forms defined in the standard
that are required to follow the utility syntax guidelines do so. The
cases cited fit the case. The Austin Group has more general
cases under review at the present time.

Q16. What about POSIX Certification?

In November 2003, The IEEE and The Open Group launched a new program
extending POSIX(R) Certification
for the 2003 Edition of IEEE Std 1003.1. This has subsequently
been extended to include IEEE Std 1003.13-2003, initially
for the PSE54 Multipurpose Profile, with plans to include
a PSE52 Realtime Controller Profile.

The program includes a product standard for each type of product that can
be certified within the POSIX Certification Program. In this initial
iteration of the certification program these are as follows:

1003.1-2003 Base Product Standard: This is a profile product standard
that comprises the mandatory functionality from IEEE Std
1003.1, 2003 Edition. It is comprised of two component product
standards.

1003.1-2003 System Interfaces Product Standard: This is a
component product standard for the mandatory system interfaces and
headers related functionality from IEEE Std 1003.1.

1003.1-2003 Shell and Utilities Product Standard: This is a
component product standard for the mandatory shell and utilities
related functionality from IEEE Std 1003.1.

PSE54 Multipurpose Realtime 1003.13TM-2003 System:
This is for operating system environments providing realtime services
based on IEEE Std 1003.13 Profile PSE54. This supports applications
portability at the source code level and includes the provision of a
standard operating system interface and environment, including a full
file system implementation and support for multiple users.

A product can be certified against one or more product standards and
the program allows for two levels of certification: Platform Specific
Certification, which applies to a single defined hardware and software
environment, and Product Family Certification, which applies to all
members of a binary-compatible family.

The POSIX trademark can be optionally licensed for use in association with
certified products meeting the 10003.1-2003 Base Product Standard or
PSE54 Multipurpose Realtime 1003.13-2003 System Product Standard. The
POSIX certification system is a web-based workflow system designed to lead
applicants through the process to submit a product for certification. Two
of the POSIX Conformance test suites, VSX-PCTS2003 and VSC-PCTS2003,
are freely available to organizations that register to apply for
certification.