POSIX.1 Revision Overview
by Andrew Josey
Andrew Josey is the director, server platforms, for The Open Group in Reading, England, and the chair of the Austin Group.
This article gives an overview of the ongoing POSIX.1 revision, the scope of its contents, and its organization.
The POSIX.1 revision is being developed by a joint working group known as the Austin Common Standards Revision Group, or Austin Group for short. This joint technical working group was convened in late 1998 to consider the matter of a common revision of ISO/IEC 9945-1, ISO/IEC 9945-2, IEEE Std 1003.1, IEEE Std 1003.2, and the appropriate parts of the Single UNIX Specification. The approach to specification development was to write once, adopt everywhere, with the deliverables being a single set of specifications that carry both the IEEE POSIX designation and The Open Group's Technical Standard designation (becoming the core of the Single UNIX Specification Version 3), and if adopted, an ISO/IEC designation.
The base document for the revision was The Open Group's Base volumes of its Single UNIX Specification, Version 2. These were selected since they were a superset of the existing POSIX.1 and POSIX.2 specifications and had some organizational aspects that would benefit the audience for the new revision.
base standard The portions of this standard that are not optional, equivalent to the definitions of classic POSIX.1 and POSIX.2.
XSI extension The portions of this standard addressing the extension added for support of the Single UNIX Specification.
standard developers The individuals and companies in the development organizations responsible for this revision: the IEEE P1003.1 working groups; The Open Group Base working group, advised by the hundreds of individual technical experts who balloted the draft standards within the Austin Group; and the member bodies and technical experts of ISO/IEC JTC1/SC22/WG15.
Scope of the Revision
Since the revision includes merging the base volumes of the Single UNIX Specification, many features that were previously not adopted into earlier revisions of POSIX.1 and POSIX.2 are now included in this document. In most cases, these additions are part of the XSI extension; in other cases the standard developers decided that now was the time to migrate these to the base standard.
The Single UNIX Specification programming environment provides a broad-based functional set of interfaces to support the porting of existing UNIX applications and the development of new applications. The environment also supports a rich set of tools for application development.
The majority of the obsolescent material from the existing POSIX.1 and POSIX.2 standards, and material marked Legacy from The Open Group's base specifications, has been removed in this revision.
The following IEEE Standards have been added to the base documents in this revision: IEEE Std 1003.1d-1999, 1003.1j-2000, 1003.1q-2000, 1003.1a-2000, 1003.2d-1994, and 1003.2b-2000. It also includes selected parts of IEEE Std 1003.1g-2000.
Only selected parts of 1003.1g-2000 were included. This was because there is much duplication between the Networking Services Issue 5.2 specification (another base document) and the material from IEEE Std 1003.1g, the former document being aligned with the latest networking specifications for IPv6. Only the following sections of 1003.1g were considered for inclusion:
The following were requirements on this standard:
Architecture and n-bit neutral:
POSIX.1 and the C Standard
The standard developers believed it essential for a programmer to have a single complete reference place but recognized that deference to the formal standard had to be addressed for the duplicate interface definitions between ISO C and the Single UNIX Specification.
It was agreed that where an interface has a version in the C standard, the DESCRIPTION section should describe the relationship to the C standard and markings should be added as appropriate to show where C has been extended in the text.
The following block of text was added to each manual page affected:
The functionality described on this manual page is aligned with the C standard. Any conflict between the requirements described here and the C standard are unintentional. This document defers to the C standard.
Each page was parsed for additions beyond the C standard, that is, including both POSIX and UNIX extensions, and these extensions were marked as CX extensions (for C Extensions).
Organization of the Document
The three volumes are as follows:
The presence of this volume reduces duplication in the other volumes and ensures consistency of use of terminology. Where terminology and definitions common to both the System Interfaces and Shell & Utilities volumes occurs, then additions have been made to this volume.
SHELL AND UTILITIES
Further information about the Austin Common Standards Revision Group activities can be found on The Open Group Web site at <http://www.opengroup.org/austin/>.