Single UNIX Specification
The Single UNIX Specification is a standard for computer operating systems, compliance with which is required to qualify for using the "UNIX" trademark. The standard specifies programming interfaces for the C language, a command-line shell, and user commands. The core specifications of the SUS known as Base Specifications are developed and maintained by the Austin Group, which is a joint working group of IEEE, ISO/IEC JTC 1/SC 22/WG 15 and The Open Group. If an operating system is submitted to The Open Group for certification and passes conformance tests, then it is deemed to be compliant with a UNIX standard such as UNIX 98 or UNIX 03.
Very few BSD and Linux-based operating systems are submitted for compliance with the Single UNIX Specification, although system developers generally aim for compliance with POSIX standards, which form the core of the Single UNIX Specification.
The latest SUS consists of two parts: the base specifications technically identical to POSIX, and the X/Open Curses specification.
Some parts of the SUS are optional.
History
1980s: Motivation
The SUS emerged from multiple 1980s efforts to standardize operating system interfaces for software designed for variants of the Unix operating system. The need for standardization arose because enterprises using computers wanted to be able to develop programs that could be used on the computer systems of different manufacturers without reimplementing the programs. Unix was selected as the basis for a standard system interface partly because it was manufacturer-neutral.In 1984, the UNIX user group called /usr/group published the results of their standardization effort for programming interfaces in their 1984 /usr/group standard, which became basis for what would become the POSIX.1-1988 standard.
In 1985, AT&T published System V Interface Definition, a specification of UNIX System V programming interfaces.
1988: POSIX
In 1988, standardization efforts resulted in IEEE 1003, or POSIX.1-1988, which loosely stands for Portable Operating System Interface.1980s and 1990s: X/Open Portability Guide
The X/Open Portability Guide was a precursor to the SUS, published by the X/Open Company, a consortium of companies established in 1984. The guides were published in the following years.- XPG1: X/Open Portability Guide Issue 1: 1985
- XPG2: X/Open Portability Guide Issue 2: 1987
- XPG3: X/Open Portability Guide Issue 3: 1989
- XPG4: X/Open Portability Guide Issue 4: 1992
- System Interface Definitions, Issue 4,
- System Interfaces and Headers, Issue 4,
- Commands and Utilities, Issue 4,
1990s: Spec 1170
1994: Single UNIX Specification
In 1994, the X/Open Company released the Single UNIX Specification. The SUS was made up of documents that were part of the X/Open Common Applications Environment :- System Interface Definitions, Issue 4, Version 2
- System Interfaces and Headers, Issue 4, Version 2
- Commands and Utilities, Issue 4, Version 2
- Networking Services, Issue 4
Sources differ on whether X/Open Curses, Issue 4, Version 2 was part of this SUS; its copyright date is given as 1996. X/Open Curses, Issue 4 was published in 1995.
In October 1994, X/Open indicated they were going to refer to Spec 1170 as '"Single-Unix" specification'.
The SUS was at the core of the UNIX 95 brand.
This version had 1168 programming interfaces.
This version of SUS was drawn from the following sources:
- XPG4 Base by X/Open
- System V Interface Definition, Edition 3, Level 1 calls by AT&T
- Application Environment Specification by the Open Software Foundation
- Interfaces found in common use and not yet covered by a formal specification, drawn from a survey of major applications.
1997: Single UNIX Specification, version 2
In 1997, the Open Group released the Single UNIX Specification, Version 2.
This specification consisted of:
- System Interface Definitions, Issue 5,
- System Interfaces and Headers, Issue 5,
- Commands and Utilities, Issue 5,
- Networking Services, Issue 5,
- X/Open Curses, Issue 4, Version 2,
This version had 1434 programming interfaces.
2001: Single UNIX Specification, version 3, POSIX.1-2001
Beginning in 1998, a joint working group of IEEE, ISO JTC 1 SC22 and The Open Group known as the Austin Group began to develop the combined standard that would be known as the core of Single UNIX Specification, Version 3 and as POSIX.1-2001. It was released on January 30, 2002.This SUS consisted of:
- Base Specifications, Issue 6
- * Base Definitions, Issue 6
- * System Interfaces, Issue 6
- * Shell and Utilities, Issue 6
- * Rationale
- X/Open Curses, Issue 4, Version 2
The Base Specifications are technically identical to POSIX.1-2001, which is IEEE Std 1003.1-2001.
This version had 1742 programming interfaces.
An authorized guide is available for the version.
2004 Edition
In 2004, a new edition of the POSIX.1-2001 standard was released, incorporating two technical corrigenda. It is called IEEE Std 1003.1, 2004 Edition. Some informally call it POSIX.1-2004, but this is not an official identification.2008: Single UNIX Specification, version 4, POSIX.1-2008
In December 2008, the Austin Group published a new major revision of SUS and POSIX. This is the Single UNIX Specification, Version 4.This SUS consists of:
- Base Specifications, Issue 7
- * Base Definitions, Issue 7
- * System Interfaces, Issue 7
- * Shell and Utilities, Issue 7
- * Rationale, Issue 7,
- X/Open Curses, Issue 7
This version had 1833 interfaces, of which 1191 were in the System Interfaces section.
2013 Edition
Technical Corrigendum 1 mostly targeted internationalization, and also introduced a role-based access model. A trademark UNIX V7 was created to mark compliance with SUS Version 4.2016 Edition
Technical Corrigendum 2 was published in September 2016, leading into IEEE Std 1003.1-2008, 2016 Edition and Single UNIX Specification, Version 4, 2016 Edition.2018 Edition, POSIX.1-2017
In January 2018, an "administrative rollup" edition was released. It incorporates Single UNIX Specification version 4 TC1 and TC2, and is technically identical to the 2016 edition.The Base Specifications are technically identical to POSIX.1-2017, which is IEEE Std 1003.1-2017.
Specification
SUSv3 totals some 3700 pages, which are divided into four main parts:- Base Definitions - a list of definitions and conventions used in the specifications and a list of C header files which must be provided by compliant systems. 84 header files in total are provided.
- Shell and Utilities - a list of utilities and a description of the shell, sh. 160 utilities in total are specified.
- System Interfaces - contains the specification of various functions which are implemented as system calls or library functions. 1123 system interfaces in total are specified.
- Rationale - the explanation behind the standard.
Additionally, SUS includes CURSES specification, which specifies 372 functions and 3 header files. All in all, SUSv3 specifies 1742 interfaces.
Note that a system need not include source code derived in any way from AT&T Unix to meet the specification. For instance, IBM OS/390, now z/OS, qualifies as UNIX despite having no code in common.
Marks for compliant systems
There are five official marks for conforming systems:- UNIX 93
- UNIX 95 - the mark for systems conforming to version 1 of the SUS
- UNIX 98 - the mark for systems conforming to version 2 of the SUS
- UNIX 03 - the mark for systems conforming to version 3 of the SUS
- UNIX V7 - the mark for systems conforming to version 4 of the SUS
Compliance
| Product | Vendor | Architecture | UNIX V7 | UNIX 03 | UNIX 98 | UNIX 95 | UNIX 93 |
| AIX | IBM Corporation | POWER processors | |||||
| HP-UX | Hewlett Packard Enterprise | IA-64 | |||||
| macOS | Apple | x86-64, ARM64 | |||||
| OpenServer | Xinuos | IA-32 | |||||
| UnixWare | Xinuos | IA-32 | |||||
| z/OS | IBM Corporation | z/Architecture |