Document Number: AUSTIN/285r2 Title: Long Scope for 200x Revision Revision Date: 2006-09-18 Source: Andrew Josey, Chair Action: for information Long Description of the Proposed Common Standards Revision Project SUMMARY ------- This document describes the project to produce a common standard to revise ISO/IEC 9945:2003 Parts 1 through 4, IEEE Std 1003.1, 2004 Edition, and the appropriate parts of The Open Group Single UNIX Specification Version 3. It describes the Base Documents for consideration in the revision, the criteria for inclusion and exclusion of material, the expected deliverables and outline structure of the project and requirements for the project. The approach to specification development is "write once, adopt everywhere", with the deliverables being a set of specifications that will carry the IEEE POSIX designation, The Open Group's CAE Specification designation, and the ISO/IEC designation. BASE DOCUMENTS -------------- The following are the base documents for the revision: IEEE Std 1003.1, 2004 Edition (Includes IEEE Std 1003.1-2001, IEEE Std 1003.1-2001/Cor 1-2002 and IEEE Std 1003.1-2001/Cor 2-2004 ) which is technically identical to The Open Group Technical Standard Base Specifications, Issue 6, 2004 Edition and technically identical to ISO/IEC 9945:2003 Parts 1 to 4, with ISO/IEC 9945:2003/Cor.1:2004(E) Parts 1 to 4 ISO/IEC 9899:1999 Programming Languages -- C (including ISO/IEC 9899:1999/Cor.1:2001(E) and ISO/IEC 9899:1999/Cor.2:2004(E)) The Open Group Extended API Sets Parts 1 through 4 SCOPE ----- IEEE Std 1003.1-200x defines a standard operating system interface and environment, including a command interpreter (or "shell"), and common utility programs to support applications portability at the source code level. It is intended to be used by both applications developers and system implementors. IEEE Std 1003.1-200x comprises four major components (each in an associated volume): 1. General terms, concepts, and interfaces common to all volumes of IEEE Std 1003.1-200x, including utility conventions and C-language header definitions, are included in the Base Definitions volume of IEEE Std 1003.1-200x. 2. Definitions for system service functions and subroutines, language-specific system services for the C programming language, function issues, including portability, error handling, and error recovery, are included in the System Interfaces volume of IEEE Std 1003.1-200x. 3. Definitions for a standard source code-level interface to command interpretation services (a "shell") and common utility programs for application programs are included in the Shell and Utilities volume of IEEE Std 1003.1-200x. 4. Extended rationale that did not fit well into the rest of the document structure, containing historical information concerning the contents of IEEE Std 1003.1-200x and why features were included or discarded by the standard developers, is included in the Rationale (Informative) volume of IEEE Std 1003.1-200x. The following areas are outside of the scope of IEEE Std 1003.1-200x: * Graphics interfaces * Database management system interfaces * Record I/O considerations * Object or binary code portability * System configuration and resource availability IEEE Std 1003.1-200x describes the external characteristics and facilities that are of importance to applications developers, rather than the internal construction techniques employed to achieve these capabilities. Special emphasis is placed on those functions and facilities that are needed in a wide variety of commercial applications. The facilities provided in IEEE Std 1003.1-200x are drawn from the following base documents: * IEEE Std 1003.1(tm), 2004 Edition (POSIX-1) (incorporating IEEE Stds 1003.1(tm)-2001, 1003.1(tm)-2001/Cor 1-2002 and 1003.1(tm)-2001/Cor 2-2004) * Open Group Technical Standard, 2006, Extended API Set Part 1 * Open Group Technical Standard, 2006, Extended API Set Part 2 * Open Group Technical Standard, 2006, Extended API Set Part 3 * Open Group Technical Standard, 2006, Extended API Set Part 4 * ISO/IEC 9899:1999, Programming Languages - C ( including ISO/IEC 9899:1999/Cor.1:2001(E) and ISO/IEC 9899:1999/Cor.2:2004(E)) Explanatory Notes -------------------- This work is being undertaken by the Austin Group, a joint working group of IEEE, ISO/IEC SC22 JTC1 and The Open Group. The resulting work will be adopted as an IEEE standard, an ISO/IEC standard and an Open Group standard. Emphasis is placed on standardizing existing practice for existing users, with changes and additions limited to correcting deficiencies in the following areas: * Issues raised by Austin Group defect reports, IEEE Interpretations against IEEE Std 1003.1 and ISO/IEC defect reports against ISO/IEC 9945 * Issues raised in corrigenda for the Open Group Technical Standards and working group resolutions from The Open Group * Issues arising from ISO TR 24715:2006,"Conflicts between POSIX and the LSB" * Changes to make the text self-consistent with the additional material merged * Features, marked Legacy or obsolescent in the Base documents, will be considered for withdrawal in the revision * A review and reorganization of the options within the standard * Alignment with the ISO/IEC 9899:1999 standard including technical corrigendum 2 Further details follow: The revision will add new functionality from The Open Group Extended API Sets Parts 1 through 4 The revision will address issues arising from ISO TR 24715:200x, "Conflicts between POSIX and the LSB". The revision will include new work items for additions to the specification, to reflect current practice and knowledge, as proposed by the IEEE, The Open Group or ISO SC22 by July 31st 2006 The revision will review the use of fixed path filenames within the standard, for example the at, batch and crontab utilities that presently have a requirement for use of the directory /usr/lib/cron The following features, marked Legacy or obsolescent in the Base documents, will be considered for withdrawal in the revision. From XSH this means that selected Legacy Interfaces, Headers and External Variables will be considered for withdrawal: Selected interfaces from the XSI Legacy option group bcmp bcopy bzero ecvt, fcvt, gcvt fcvt ftime gcvt getwd index mktemp rindex wcswcs [# note that: utimes - set file access and modification times (LEGACY) has been omitted intentionally, it is recommended that be considered to move from legacy to XSI] Selected Obsolescent features from the following list will be considered for withdrawal: functions: bsd_signal() getcontext( ), gethostbyaddr() gethostbyname() makecontext( ), pthread_attr_getstackaddr() pthread_attr_setstackaddr() scalb() setcontext( ), swapcontext( ) ualarm() usleep() vfork() headers: fnmatch.h FNM_NOSYS glob.h GLOB_NOSYS netdb.h h_errno regex.h REG_ENOSYS wordexp.h WRDE_NOSYS utilities: cp -r option * Changes to existing options and functionality are noted here: The following features will be marked Legacy or obsolescent in the Base documents, to denote a status of future withdrawal: From XCU: The Batch Environment Services and Utilities option. Specifically XCU Chapter 3 and the following utilities from XCU chapter 4: qalter qdel qhold qmove qmsg qrerun qrls qselect qsig qstat From XSH The POSIX tracing option, specifically functionality denoted by the options: _POSIX_TRACE _POSIX_TRACE_EVENT_FILTER _POSIX_TRACE_INHERIT _POSIX_TRACE_LOG Functionality denoted by the Process Sporadic Scheduler and Thread Sporadic Scheduler options. Interpretations and Defect Reports Issues raised by Austin Group Interpretations against IEEE Std 1003.1 will be addressed in the revision. Issues raised by Defect Reports as recorded in the Aardvark reports and SD/5 by will be addressed in the revision Consistency Changes to the standard will be made to make it self-consistent with the material merged. Options. The revision will consider the options within the standard, and whether its possible to reduce the number of them. (THR -> Base ? BAR -> THR -> Base? SPI -> THR -> Base? ) TSA TSS -> Base ? TMO -> Base ? IPv6 -> Base?) A move of functionality from an option into the Base would include an an update to the subprofiling considerations appendix to record the grouping by name and the list of associated functions. Functional extensions from new documents over the Base document may be added, possibly as one or more options. Terminology The agreed terminology style is to continue to use the existing ISO/IEC style as in the current Base document ("shall" rather than "will"). EXPECTED OUTPUT --------------- The expected output of the project is four logical books (to be treated as a single specification for conformance purposes) as per the existing Base documents: Base Definitions System Interface Shell & Utilities Rationale (Informative) REQUIREMENTS ------------ The following are requirements on the revision. Backward compatibility. For interfaces carried forward it is agreed that there should be no breakage of functionality in the existing base documents. All strictly conforming applications will be conforming but not necessarily strictly conforming to the revised standard. The goal is for system implementations to be able to support the existing and revised standards simultaneously. Architecture and n-bit neutral. The common standard should not make any implicit assumptions about the system architecture or size of data types. Extensibility. The intent is to be able to extend the common standard without breaking backward compatibility. For example, the name space should be reserved and structured to avoid duplication of names between the standard and extensions to it.