Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What are the differences between POSIX, the Single UNIX Specification, and the Open Group Base Specifications? I think their purpose is for determining if an OS is Unix?

share|improve this question

migrated from superuser.com Jun 3 '11 at 20:55

This question came from our site for computer enthusiasts and power users.

up vote 22 down vote accepted

Today, POSIX and SUS are basically the same thing; SUS encompasses a little more.

Quoting here:

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 and as POSIX:2001 (formally: IEEE Std 1003.1-2001). It was released on January 30, 2002


In December 2008, the Austin Group published a new major revision, known as POSIX:2008 (formally: IEEE Std 1003.1-2008). This is the core of the Single UNIX Specification, Version 4

share|improve this answer
Thanks! What are the differences between their purposes? – Tim Jun 3 '11 at 20:52
@Tim I believe it's purely historic. See here, they seem to have started out separately but became pretty much the same thing with SUS 3 / POSIX 2001. – Daniel Beck Jun 3 '11 at 20:56

Looking at the top of the Open Group Base Specifications, you will see the standard identifier IEEE Std 1003.1-2008. IEEE Std 1003.1 is what is known as POSIX.1 with 2008 just being the latest incarnation. Looking at POSIX on Wikipedia, you will see that the standard contains three parts including:

  • Base Definitions, Issue 7
  • System Interfaces and Headers, Issue 7
  • Commands and Utilities, Issue 7

Basically, POSIX is just the name of the standard developed by the IEEE with the initial version done in 1988. POSIX is not UNIX™ officially simply because IEEE does not own the trademark, but it is the operating system environment and interface found on UNIX™ systems. Later on, The Open Group who controls the UNIX™ trademark got involved with creating a standard based on POSIX called Single UNIX Specification version 2 or SUSv2. Now these two specifications are developed jointly as The Austin Group. The latest version is SUSv4. So, to sum up:

POSIX:2008 = IEEE Std. 1003.1-2008 = SUSv4 = The Open Group Specification Issue 7.

Also, read my answer to What exactly is POSIX?

share|improve this answer
It is also ISO/IEC 9945-2009 – fpmurphy1 Jul 9 '11 at 14:25
Ah, yes, how lovely it is to have so many standards. I'm still struggling to figure out the differences between ISO/IEC 10646 and Unicode which, while represent identical character sets kept strictly synchronized with each other are still two separate and different standards. I'm not sure why they can't just get along and declare them completely synonymous. – penguin359 Jul 11 '11 at 14:21
In the specific case of POSIX vs SUS, the reason has to do with licensing and trademark. POSIX is generic, can be implemented on any OS. SUS is the standard to define UNIX. Even if they are identical, POSIX is needed for anything *nix., or *nix compatible. SUS must be fulfilled to even attempt getting called UNIX. If SUS didn't exist, than at minimum the UNIX trademark could be weakened. I'm not justifying any corporate action, just speculating on their position. – TechZilla Dec 16 '11 at 1:47

One important "difference" is the XSI (XOPEN) option group, which specifies a number of traditional Unix interfaces which are unlikely to be applicable to a new operating system that's not "a Unix". Often people will use "SUS" to refer to the full standard including the XSI option, and "POSIX" to refer to the base standard and possibly the non-Unix-centric option groups.

Successive versions of SUS seem to be gradually deprecating parts of the XSI option that were not really useful for writing portable applications and that instead just reflected legacy implementations, and moving a few of the more-useful parts to the base standard.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.