Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

POSIX.1 Frequently Asked Questions (FAQ Version 1.10)

12 views
Skip to first unread message

Andrew Josey

unread,
Nov 9, 2004, 4:20:57 AM11/9/04
to
Submitted-by: ajo...@rdg.opengroup.org (Andrew Josey)

POSIX(R) Frequently Asked Questions (FAQ Version 1.10)

Last Updated : October 28 2004: freq.ques,v 1.10

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. How do I become a participant in the development of the POSIX.1 standard?
Q7. What happened to the existing POSIX 1003.1-1990 and POSIX 1003.2-1992 standards when this revision completed?
Q8. What is the history of IEEE POSIX 1003.1 System Application Interface (C API) ?
Q9. What is the IEEE POSIX 1003.2 Shell and Utilities?
Q10. What are the IEEE POSIX Standards for Real-time?
Q11. How does the 1003.1 standard compare to the Linux Standard Base?
Q12. What options are there in the POSIX.1 standard?
Q13. What are the core technical changes in the latest POSIX.1 standard over 1003.1-1990 and 1003.2-1992?
Q14. 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?
Q15. What about POSIX Certification?
Q16. How do I report a bug in the POSIX.1 standard?
Q17. 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, 2004
Edition, developed by the Austin Group (see later). For further
information on the background, audience and purpose of POSIX.1 see
the following document:

URL:http://www.opengroup.org/austin/papers/backgrounder.html.

Q1. What is the Portable Application Standards Committee (PASC)?

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 2004 edition of the 1003.1 standard was published on April 30th
2004, and updates the 2001 edition of the standard to include
Technical Corrigendum 1 (TC1) and Technical Corrigendum 2 (TC2).
The 2004 Edition is formally known as:

IEEE Std 1003.1, 2004 Edition
The Open Group Technical Standard Base Specifications, Issue 6

Includes IEEE Std 1003.1-2001, IEEE Std 1003.1-2001/Cor 1-2002
and IEEE Std 1003.1-2001/Cor 2-2004

and its worth noting that within the text the standard is still
referred to as IEEE Std 1003.1-2001.

POSIX.1 is also an international standard, and ISO/IEC publication
occurred on August 18 2003, denoted as ISO/IEC 9945:2003. It
comprises four parts:

Part 1: Base Definitions
Part 2: System Interfaces
Part 3: Shell and Utilities
Part 4: Rationale

Technical Corrigendum 2 has been approved by ISO and will be
published as ISO/IEC 9945:2003/Cor 1:2004.

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/version3/, you
need to register for a copy.

A summary of the changes in Technical Corrigendum 1 is available
from: URL:http://www.opengroup.org/austin/docs/austin_155.txt.

A summary of the changes in Technical Corrigendum 2 is available
from: URL:http://www.opengroup.org/austin/docs/austin_206.txt.

The pdf text of just the Technical Corrigendum 1 (changes to the
2001 edition of the standard) is available from: URL:
http://www.opengroup.org/pubs/catalog/u057.htm .

The pdf text of just the Technical Corrigendum 2 (changes to the
2001/2003 edition of the standard) is available from: URL:
http://www.opengroup.org/pubs/catalog/u059.htm .

PDF copies of the final standard can also be obtained either from
The IEEE (search on 1003.1-2001) , The Open Group (Look for documents
T041,C046,C047,C048,C049) or ISO (look for ISO/IEC 9945 parts 1
thru 4). 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 the technical corrigenda are
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.

URL: http://www.opengroup.org/austin/. (Austin Group Home Page)

Interpretations of the standard can be found at URL:
http://www.opengroup.org/austin/interps/

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.

URL: http://www.opengroup.org/austin/login.html (Copyright Notice)

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. 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.

URL: http://www.opengroup.org/austin/lists.html. (How to Join the Austin Group)

Q7. What happened to the existing POSIX 1003.1-1990 and POSIX
1003.2-1992 standards when this revision completed?

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.

Q8. 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 1998 the first real-time profile standard, IEEE Std 1003.13-1998
was published, enabling POSIX to address embedded real-time
applications and smaller footprint devices.

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.

Q9. 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.

Q10. 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.

Q11. 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.

Two white papers with further information on this topic are at:
http://www.opengroup.org/platform/single_unix_specification/doc.tpl?gdid=6075
http://www.opengroup.org/platform/single_unix_specification/doc.tpl?gdid=5992


Q12. What options are there in the POSIX.1 standard?

For a good description of the modular options in the POSIX.1 standard
see URL: http://people.redhat.com/~drepper/posix-option-groups.html

Q13. What are the core technical changes in the latest 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.

Q14. 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?

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.

Q15. 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.

For the full announcement see: http://www.opengroup.org/press/03nov03.htm.

For a summary of web references for the new program see:
http://www.opengroup.org/certification/idx/posix.html.

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.

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. The POSIX certification system is a web-based workflow
system designed to lead applicants through the process to submit
a product for certification. The two POSIX Conformance test suites,
VSX-PCTS2003 and VSC-PCTS2003, are freely available to organizations
that register to apply for certification.

More information about the program, including all supporting
documentation is found at http://posixcertified.ieee.org/.

Two FAQs can be found at http://posixcertified.ieee.org/pcfaqs.html
and http://get.posixcertified.ieee.org/docs/posixfaq.html.

Q16. How do I report a bug in the POSIX.1 standard?

To report a bug in the POSIX.1 standard please complete the defect
report form at http://www.opengroup.org/austin/defectform.html.

Q17. How do I add a question to this FAQ?

Send the question (preferably with a proposed answer) to Andrew
Josey.

===
Andrew Josey
http://www.opengroup.org/austin/
#include <std/disclaimer.h>

0 new messages