Document Number: AUSTIN/9r4 Title: Action item 9809-04 Revision Date: 1999-03-12 Original Date: 1998-09-11 Source: Andrew Josey, Chair Action: for information Long Description of the Proposed Common Standards Revision Project SUMMARY ------- This document describes the proposed project to produce a common standard to revise ISO/IEC 9945-1, ISO/IEC 9945-2, IEEE Std 1003.1, IEEE Std 1003.2, and the appropriate parts of The Open Group Single UNIX Specification. 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 both the IEEE POSIX designation and The Open Group's CAE Specification designation, and if adopted an ISO/IEC designation. BASE DOCUMENTS -------------- The following are the base documents for the revision: IEEE Std 1003.1, 1996 Edition (incorporating ANSI/IEEE Stds 1003.1-1990, 1003.1b-1993, 1003.1c-1995, and 1003.1i-1995) ISBN 1-55937-573-6 Amendments to IEEE Std 1003.1-1990 approved by December 31st 1999 (Candidates are P1003.1a, P1003.1d (Additional Realtime Extensions), P1003.1g (Protocol Independent Interfaces), P1003.1h (SRASS), P1003.1j (Advanced Realtime Extensions), P1003.1m (Checkpoint/Restart), and P1003.1q (Trace)) IEEE Std 1003.2-1992 (includes IEEE Std 1003.2a-1992) ISBN 1-55937-255-9 IEEE Std 1003.2d-1994 Amendments to IEEE Std 1003.2-1992 approved by December 31st 1999 (The following project is a candidate:P1003.2b) System Interface Definitions, Issue 5, (XBD5) The Open Group ISBN 1-85912-186-1 February 1997 System Interfaces and Headers, Issue 5 - Two Volumes, (XSH5) The Open Group ISBN 1-85912-181-0 February 1997 Commands and Utilities, Issue 5, (XCU5) The Open Group ISBN 1-85912-191-8 February 1997 Networking Services, Issue 5 , XNS5 The Open Group ISBN 1-85912-165-9 February 1997 Note that if a later version of XNS5 is available before December 31st 1999 (i.e. XNS5v2) then it will be used as a Base document in its place. Once the ISO C Revision (C9x) is approved it will also become a base document for the revision. SCOPE ----- The three "Base volumes" of the Single UNIX Specification, Version 2 (XBD5, XSH5, XCU5) are supersets of the functionality contained in the existing published IEEE standards (1003.1-1996 and 1003.2-1992), this project proposes to use them as the basis for the revision and to add additional parts of the POSIX functionality to them. The additional functionality from the POSIX standards to be merged with the Base volumes is as follows: Normative text not included in the Base volumes. The amendments to IEEE Stds 1003.1-1990 and 1003.2-1992 approved by December 31st 1999 Portability Considerations (Annex F of .1-1996, .2-1992) Additional rationale and notes ( Annex B of 1003.1-1996, Annex E of 1003.2-1992). The following features will not be carried forward into the amendment, features marked Legacy or obsolescent in the Base volumes, and those marked obsolescent in POSIX. From XSH this means the following Legacy Interfaces, Headers and External Variables will not be carried forward: advance() gamma() putw() sbrk() wait3() brk() getdtablesize() re_comp() sigstack() chroot() getpagesize() re_exec() step() compile() getpass() getw() regcmp() ttyslot() cuserid() regex() valloc() loc1 __loc1 loc2 locs From XCU thus means the following Legacy Utilities will not be carried forward: calendar cancel cc dis egrep fgrep mail pack pcat unpack uulog col cpio cu dircmp line lint lpstat pg spell sum uuname uupick tar uuto In addition Legacy features within non-legacy manual pages (for example headers) will not be carried forward. POSIX.1-1996 obsolescent features to be removed are: p 112 CLK_TCK p 197 tcgetattr() - rate returned option In POSIX.2 obsolescent features to be removed are: p 75 zero-length prefix within PATH p 156,159 set synopsis etc p 178 awk - use of no argument and no parentheses with length p 215 ll 2084 chmod - octal form of mode p 259 ed synopsis etc p 272 env synopsis etc p 282 find -perm [-]onum p 295-296 egrep synopsis etc p 299-300 head synopsis etc p 305-306 join synopsis etc p 309-310 kill synopsis etc p 431-433,435-436 sort synopsis etc p 444-445 tail synopses etc p 453,455-456 touch synopsis etc p 464-465 tty synopsis etc p 467 umask - octal mode p 472 uniq synopsis section p 515-516 ex synopsis etc p 542-543 expand synopsis etc p 563-565 more synopsis etc p 574-576 newgrp synopsis etc p 578 nice synopsis etc p 594-596 renice synopsis etc p 597-598 split synopsis etc p 600-601 strings synopsis etc p 624-625 vi synopsis etc p 693 lex synopsis etc In XSH, text marked OH needs to be reviewed on a case by case basis. The XCU text marked OF, OP, PI, and UN will need to be reviewed on a case by case basis. Interpretations Issues raised by IEEE or ISO/IEC Interpretations against IEEE Std 1003.1 and IEEE Std 1003.2 will be addressed in the revision. Issues raised in corrigenda for the Base volumes and working group resolutions from OGTGbase (the group responsible for the Base volumes) will be addressed in the revision. Corrigenda and resolutions passed by OGTGnet (the group responsible for XNS) will be addressed in the revision. Options. The revision will consider the options within the standard, and whether its possible to reduce the number of them. It will also include an examination of the possibility of adding overriding options (feature groups in the existing XSH) that combine a set of finer grained options or related functionality. Functional extensions from XSH/XCU over POSIX will be added as one or more options, for example there could be a STREAMS option and a System V IPC option. This allows standards building on the Common Standard to mandate the options, one such example would be the UNIX specification. Terminology The agreed terminology style is to use ISO/IEC style for the revision ("shall" rather than "will"). This will require some changes to the Base volumes that are the basis for the revision, and The Open Group has produced a discussion paper on proposed terminology style. Slicing and Dicing as per 1003.13 If either the PASC SSWG or .13 Working group make a proposal on how to modify POSIX.1 and POSIX.2 by 1999-12-31 then it will be considered as in the scope of the revision. A possible approach will be to define the "units of functionality" as "feature groups" in the revision that are mandatory for base conformance, with a note that they are provided for profile writers. Since the existing "slice and dice" is well specified in 1003.13 , the "feature groups" may be revised to also include new functionality introduced by the revision. EXPECTED OUTPUT --------------- The expected output of the project is four logical books: Base Definitions System Interfaces Commands & Utilities Rationale (Informative) * Base Definitions: This book is organised in chapters as follows: Introduction Definitions File Format Notation Character Set Locale Environment Variables Regular Expressions Directory Structure and Devices General Terminal Interface Utility Conventions There is currently no POSIX book corresponding to this book. The existing base document XBD5 contains major parts of POSIX.1 Section 2 (Terminology and General Requirements), POSIX.2 Section 2 (Terminology and General Requirements), and extended definitions common to XCU5, and XSH5. The presence of this book reduces duplication in the other volumes and ensures consistency of use of terminology. Where terminology and definitions common to both the System Interfaces and Commands & Utilities books occurs then additions will be made to this book. * System Interfaces: This book is similar to POSIX.1-1996 except that after it is organised as follows: Chapter 1 Introduction Chapter 2 General Information Chapter 3 System Interfaces Chapter 4 Headers Chapters 3 and 4 are organized alphabetically. The existing Base document contains all the normative part of POSIX.1-1996 except for: -1. major chunks of Section 2 (Terminology and General Requirements) [which are included in the Base Definitions], -2. Section 10 (Data Interchange Format) archive format header block descriptions associated with the cpio, pax, and tar utilities [which are included in Commands & Utilities], -3. Annex B (Rationale and Notes) [although some of this is included in Examples and Application Usage sections], -4. Annex D (Profiles), -5. Annex E (Sample National Profile), -6. Annex F (Portability Considerations), -7. Annex G (Performance Metrics), and -8. Annex H (Realtime Files). This project proposes to add 3 and 6 to the resulting document. The functionality from P1003.1g/XNS5 will be merged into the System Interfaces book. * Commands & Utilities: This book is similar to POSIX.2 combined with POSIX.2a, except that it is organized as follows: Chapter 1 Introduction Chapter 2 Shell Command Language Chapter 3 Utilities Chapter 3 is organized alphabetically. The existing Base document contains all of POSIX.2 and POSIX.2a except: -1. major chunks of Section 2 (Terminology and General Requirements) [which are included in the Base definitions], -2. Section 7 (Language Independent System Services) and Annex B (C-Language Bindings Option) [which are included in the System Interfaces book], -3. Annex E (Rationale and Notes) [although some of of this is included in Application Usage and Examples sections], -4. Annex F (Portability Considerations), -5. Annex G (Sample National Profile), and -6. Annex H (Proposals for Future Revisions). This project proposes to add 3 and 4 to the Base document. The existing Base document also contains: +1. POSIX.1 Section 10 (Data Interchange Format) cpio and tar archive format header block descriptions associated with the cpio, pax, and tar utilities, +2. full alignment with ISO C (including Amendment 1), and +3. several extensions (additional utilities and additional options to POSIX utilities). It does not contain IEEE Std 1003.2d-1994 (Batch Extensions). REQUIREMENTS ------------ The following are requirements on the revision. Backward compatibility. It has been agreed that there should be no breakage of functionality in the existing base documents. This requirement will have to be tempered by any breakage introduced in the proposed C9x revision. Architecture and n-bit neutral. The common standard should not make any implicit assumptions about the system architecture or size of data types, for example previously some 32-bit implicit assumptions had crept into the standards. Extensibility. It should be possible 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.