Single UNIX Specification

From Wikipedia, the free encyclopedia

The Single UNIX Specification (SUS) is the collective name of a family of standards for computer operating systems to qualify for the name "Unix". The SUS is developed and maintained by the Austin Group, based on earlier work by the IEEE and The Open Group.

Contents

[edit] History

The SUS emerged from a mid-1980s project 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. These standards became IEEE 1003 (also registered as ISO/IEC 9945), or POSIX, which loosely stands for Portable Operating System Interface for Unix.

In the early 1990s a separate effort, known as the Common API Specification or Spec 1170, had been initiated by several major vendors, who formed the COSE alliance in the wake of the Unix wars. This specification became more popular because it was available for free, whereas the IEEE charged a substantial fee for access to the POSIX specification. Beginning in 1998 a joint working group known as the Austin Group, began to develop the combined standard that would be known as the Single UNIX Specification Version 3.

[edit] Specification

The user and software interfaces to the OS are specified in four main sections:

  • 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.
  • Shell and Utilities - a list of utilities and a description of the shell, sh.
  • System Interfaces - a list of available C system calls which must be provided.
  • Rationale - the explanation behind the standard.

The standard user command line and scripting interface is the Bourne Shell. Other user-level programs, services and utilities include awk, echo, ed, and numerous (hundreds) others. Required program-level services include basic I/O (file, terminal, and network) services.

A test suite accompanies the standard. It is called PCTS or the Posix Certification Test Suite.

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 a "Unix" despite no code in common.

[edit] Marks for compliant systems

There are two official marks for conforming systems:

  • 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

[edit] Linux and the SUS

Linus Torvalds designed Linux to be as POSIX conforming as possible. First, this was a lot of guess-work, because he purchased a printout of the standard some time after starting on Linux. He is also said to have based his system call behavior on man pages from other systems.

Most Linux vendors do not go to the expense of certifying a given version of their distribution as meeting the SUS. Furthermore, the content of a typical Linux distribution changes so fast that recertification would be required far more often than would be financially viable.

For Linux systems, several common extensions and complementary de facto standards are provided by the Linux Standard Base.

[edit] BSD and the SUS

No freely available BSD system has been registered as SUS compliant, for the same reasons as Linux.

Apple Computer has stated they will pursue UNIX 03 certification in Mac OS X 10.5, their upcoming BSD/Mach-based commercial product due in Spring of 2007[1].

[edit] Further reading

[edit] See also

[edit] References

  1. ^ Apple Computer, Inc. Leopard Technology Overview. Leopard Technology Series for Developers. Retrieved on 2006-10-24. “Apple will submit Leopard and Leopard Server to The Open Group for certification against the UNIX ‘03 product standard.”

[edit] External links

In other languages