Single UNIX Specification

from Wikipedia, the free encyclopedia

The Single UNIX Specification ( SUS , German 'sole UNIX specification') describes a compilation of standards for operating systems of the Unix family. The SUS consists of two main parts, the Base Specifications (better known as POSIX ) and (X / Open) Curses .

UNIX in uppercase or small caps is a registered word mark of The Open Group and is a protected term. Only systems that have been certified as SUS-compliant may use this word mark. Historical systems that were previously published but are not new to the market now are not affected.

The Base Specifications are currently being developed and updated by the Austin Group .

history

Standardization as UNIX is tied to the history of Unix itself. The original UNIX operating system was developed in the Bell Labs in 1969 and published together with the source code. The first deductions were based on this. In the late 1970s and early 1980s, however, more and more systems emerged that were no longer compatible with the original, with incompatible changes or extensions, so that applications no longer ran or were compilable on all Unix-like operating systems .

In 1985 a working group was formed at the IEEE to define a defined minimum standard for UNIX systems. The IEEE Standard 1003 for the Portable Operating System Interface for UNIX , published in 1988 , subsequently became known with the abbreviation POSIX ( retronym "POSIX.1"). This name was coined by Richard Stallman to create a name for the standards that could be remembered.

POSIX initially consisted of a single document for the essential programming interface, but then gradually grew to 19 documents (POSIX.1, POSIX.2 etc.). The standards for the user command line and the scripting interface are based on the UNIX System V shell .

The X / Open group, a consortium of manufacturers of Unix-like operating systems, had developed a test specification in parallel to ensure compatibility for its members. In 1984 she published the first X / Open Portability Guide (XPG). The third version, the XPG3, then had the goal in 1988 to bring about a convergence with the POSIX specifications. The last update is the XPG4 in 1992. In 1993, this X / Open group acquired the rights to the “UNIX” word mark in capital letters from Novell, giving the possibility to use the mark for these standards.

In the years that followed, work began on developing a universal, manufacturer-independent UNIX standard. This also led to the merger of the X / Open group with the Open Software Foundation (OSF, another association of manufacturers of Unix-like systems) to form the Open Group in 1996. To date, several standards, the "Single UNIX Specification", have competed ') should remedy this and the title makes this clear.

The first SUS version from 1995, also known as UNIX 95 , is still essentially based on the XPG4 specification. The second version, UNIX 98 from 1998, in which the 64-bit extension stands out, was published without an XPG reference.

The working groups of the manufacturers and the working groups at the IEEE, which had already overlapped in terms of personnel, were organizationally merged in 1998. In the meantime, the SUS had developed into an essential standard reference and an industry standard, also because this specification was freely available, in contrast to the documents of the IEEE. The Austin Group has since continued to develop both SUS and POSIX, leading to UNIX 03 alias SUS Version 3 in 2003 . The POSIX 2004 edition takes into account the two correction sentences Technical Corrigendum 1 and Technical Corrigendum 2 for the development of SUS Version 4.

The further development in the Austin Group leads to the Open Group Base Specifications, Issue 7 and POSIX.1 2008 edition , which will become part of the Single UNIX Specification, Version 4 . These are updated with Technical Corrigendum 1 , published as POSIX.1 2013 edition . The associated IEEE Std 1003.1 is also internationally recognized as ISO / IEC 9945: 2009 and subsequently ISO / IEC 9945: 2009 / Cor 1: 2013 (E) . For the single UNIX Specification, Version 4, 2012 Edition , a new trademark UNIX V7 was issued, which should not be confused with the older Unix Version7 (see also section Linux and the SUS ). An outstanding feature of the 2012 edition are updates for an internationalization.

In September 2016, the Technical Corrigendum 2 was published, which was incorporated into the IEEE Std 1003.1, 2016 Edition . Accordingly, there is also a Single UNIX Specification, Version 4, 2016 Edition . This second correction also counted as POSIX.1 2008. In January 2018 the 2018 edition was published, T101 for short. This does not contain any technical innovations compared to the status of 2016, but reflects administrative adjustments for the publication of SUSv4 as POSIX.1 2017, alias IEEE Std 1003.1-2017 and ISO / IEC 9945: 2009 / Cor 2: 2017 (E).

Compliant systems

Marks for compliant systems

There are three official marks for marking SUS-compliant systems:

  • UNIX V7 - for systems that comply with version 4 of the SUS (full compliance, including corrigenda)
  • UNIX 03 - for systems that comply with version 3 of the SUS (full compliance)
  • UNIX 98 - for systems that comply with version 2 of the SUS (partial compliance)

Older UNIX standards (obsolete):

  • UNIX 95 - compatibility still acceptable for simpler software subsystems
  • UNIX 93 - completely obsolete

List of compliant systems

Operating systems whose conformity to the specification has been certified and therefore may be designated as UNIX:

UNIX V7

  • Solaris 11.4+ on x86 and SPARC systems

UNIX 03

  • AIX 5L V5.2 with some updates, AIX 5L V5.3;
  • HP-UX 11i V3 Release B.11.31;
  • macOS from Leopard 10.5 , on "Intel Macs" ( 32 and 64 bit)
  • Solaris 10 on x86 and SPARC systems (32 and 64 bit);
  • z / OS 1.9 from IBM; On September 28, 2007, IBM announced that z / OS 1.9 would “better meet” the UNIX 03 specification. It is unclear what degree of compatibility was meant.

UNIX 98

UNIX 95

UNIX 93

Linux and the SUS

Before the SUSv3 appeared in December 2001, Linux distributors often cited high costs as the reason for a lack of certification. For this reason, the Open Group promised certification at a symbolic price. The certification process, in which OpenGroup members actively helped, made good progress at the beginning, but was canceled in 2005 due to irreconcilable differences between the Linux Standard Base and the Open Group. For the time being, Linux is therefore not fully SUSv3- compliant.

Versioning

The first Unix was developed in the C programming language . All Unix-like operating systems show their compatibility with the Unix standards by means of #defineconstants, and if other operating systems offer an additional library, these constants can also be found there.

In the context of the POSIX specification, the versions are based on the date of the revision. The operating system reports its compatibility with _POSIX_VERSION, while a program reports the expected API by defining _POSIX_C_SOURCE.

  • _POSIX_VERSION 198808L for POSIX.1-1988
  • _POSIX_VERSION 199009L for POSIX.1-1990
  • _POSIX_VERSION 199506L for POSIX.1-1996
  • _POSIX_VERSION 200112L for POSIX.1-2001
  • _POSIX_VERSION 200809L for POSIX.1-2008 and POSIX.1-2017

Instead of the POSIX macros, the XPG / XOPEN macros can also be used, the value of which is given by the base generation. The generations XPG3 and earlier are not used in program sources. The operating system reports its compatibility with _XOPEN_VERSION, while a program reports the expected API by defining _XOPEN_SOURCE.

  • _XOPEN_VERSION 400 - X / Open Portability Guide release 4 (XPG4)
  • _XOPEN_VERSION 420 - X / Open Portability Guide for UNIX95
  • _XOPEN_VERSION 500 - X / Open 5, equivalent to POSIX 1995
  • _XOPEN_VERSION 520 - X / Open Portability Guide for UNIX98
  • _XOPEN_VERSION 600 - X / Open 6, equivalent to POSIX 2004
  • _XOPEN_VERSION 700 - X / Open 7, equivalent to POSIX 2008/2017

There are no independent macros for the SUS version itself, but the Single Unix Specification records the values ​​shown. Since traditionally (before the Austin Group) the POSIX specification was less extensive than the XSI specification (X / Open System Interface), some Unix systems ignore the POSIX_SOURCE value when a XOPEN_SOURCE value is specified. With SUSv4 / POSIX.1-2008 this behavior was set as the standard.

See also

Individual evidence

  1. https://publications.opengroup.org/standards/unix/t101
  2. http://www.unix.org/unix/version3/overview.html
  3. https://www2.opengroup.org/ogsys/catalog/x1201
  4. SINGLE UNIX® SPECIFICATION, VERSION 4, 2018 EDITION, REFERENCE: T101 . The Open Group. January 31, 2018.
  5. http://www.unix.org/unixv7.html
  6. ^ The Open Group: Oracle Corporation - UNIX V7. In: The Open Brand Register. The Open Group, April 10, 2018, accessed September 2, 2018 .
  7. Mac OS X Leopard - Technology - UNIX . In: Leopard Technology Overview . Apple Inc .. Retrieved June 11, 2007: "Leopard is now an Open Brand UNIX 03 Registered Product, conforming to the SUSv3 and POSIX 1003.1 specifications for the C API, Shell Utilities, and Threads."
  8. ^ The Open Group: Mac OS X Version 10.5 Leopard on Intel-based Macintosh computers certification . Retrieved June 12, 2007.
  9. ^ The Open Group: Mac OS X Version 10.13 High Sierra on Intel-based Macintosh computers certification. Accessed December 12, 2017 .
  10. http://www.opengroup.org/openbrand/register/apple.htm
  11. Preview: IBM z / OS V1.9 advanced infrastructure solutions for your business needs (PDF; 112 kB) IBM. S. pp. 4, February 15, 2007. Retrieved June 11, 2007.
  12. Solaris 2.5.1 ( Memento of the original from September 12, 2005 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www.ocf.berkeley.edu
  13. Last report on necessary changes to Linux for SUSv3 compatibility by Andrew Josey
  14. a b Open Group Base Specifications Issue 7, 2008 edition . The Open Group. The _POSIX_C_SOURCE Feature Test Macro. Retrieved August 29, 2018: "Note that the definition of _XOPEN_SOURCE with the value 700 makes the definition of _POSIX_C_SOURCE redundant and it can safely be omitted."
  15. unistd - standardized constants and types for Unix (SUSv4) . The Open Group. Version test macros. Retrieved January 16, 2016.
  16. http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html

Hints:

  1. _POSIX_SOURCE is also possible, but this is ignored if _POSIX_C_SOURCE is used
  2. below 500 you also used _XOPEN_SOURCE_EXTENDED to activate all optional components

Web links