Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I see POSIX mentioned often and everywhere, and I had assumed it to be the baseline UNIX standard.. until I noticed the following excerpt on a Wikipedia page: The Open Group

The Open Group is most famous as the certifying body for the UNIX trademark, and its publication of the Single UNIX Specification technical standard, which extends the POSIX standards and is the official definition of a UNIX system.

If the official definition of a UNIX system is an extension of POSIX, then what exactly is POSIX? ,,, It surely seems to be a touchstone of the UNIX world, but I don't know how it fits into the overall picture.

share|improve this question
    
SUS is the official definition of UNIX since The Open Group, not the IEEE, owns the UNIX trademark. Se my answer below. –  penguin359 Apr 25 '11 at 21:32

3 Answers 3

up vote 37 down vote accepted

POSIX first was a standard in 1988 long before the Single UNIX Specification. It was one of the attempts at unifying all the various UNIX forks and UNIX-like systems. POSIX is an IEEE Standard, but as the IEEE does not own the UNIX® trademark, the standard is not UNIX® though it is based on the existing UNIX API at that time. The first standard POSIX.1 is formally know as IEEE std 1003.1-1988.[1] IEEE charged a substantial fee to obtain a copy of the standard.

The Open Group released the Single UNIX Specification (SUSv2) in 1997 based on IEEE's work of the POSIX standard. SUSv3 was released in 2001 from a joint working group between IEEE and The Open Group known as the Austin Group. SUSv3 is also known as POSIX:2001[2]. There is now also POSIX:2004 and POSIX:2008 which is the core of SUSv4. As for what UNIX® is, UNIX® is whatever the current registered trademark holder says it is. Since 1994, that is The Open Group.

Novell acquired the UNIX® systems business from AT&T/USL which is where UNIX® was born. In 1994, they sold the right to the UNIX® trademark to X/Open[3] now know as The Open Group. They then sold the UNIX® source code to SCO as UNIXWARE®.[3] UNIX® itself has forked many times[4][5] partly due to AT&T's licensing model. Purchasing UNIX® gave you the complete source of the operating system and the full tool-chain to build it. Modifications to the source can be distributed and used by anyone who owned a license to UNIX® from AT&T. The license fee was in the thousands.

BSD was a project at Berkeley which added a number of enhancements to the UNIX® operating system. BSD code was released under a much more liberal license than AT&T's source and did not require a license fee or even a requirement to be distributed with source unlike the GPL that the GNU Project and Linux use. This has cause a good part of the BSD code to be included with various commercial UNIX forks. By around 4.3BSD, they had nearly replaced any need for the original AT&T UNIX® source code. FreeBSD/NetBSD/OpenBSD are all forks of 4.3BSD that are a complete operating system and have none of the original AT&T source code. Nor do they have right to the UNIX® trademark, but much of their code is used by commercial UNIX operating systems. The Socket API used on UNIX was developed on BSD and the Unix Fast Filesystem code was borrowed and used on various UNIX Operating Systems like Solaris with their own enhancements.

Linux was developed in 1991, but was developed from scratch unlike BSD and used the existing GNU Project which was a clean-room implementation of much of the UNIX user-space. It implement much of POSIX for compatibility and is UNIX-like in design, but it does not have the close connection to AT&T or UNIX® that the BSDs have.

share|improve this answer
2  
Wow. Some paragraphs would help readability! –  Mikel Apr 26 '11 at 0:26
    
A great answer.. all (3) answers have been good, but this one was hugely informative (especially after having been prepped by the other 2); just what I needed... and thanks for the comment (below the question body) about SUS, I understand it well enough now, thanks... (and I didn't notice it was only one paragraph...It was too interesting :) –  Peter.O Apr 26 '11 at 1:26
1  
@Mikel hopefully my edit helps a little –  penguin359 Apr 26 '11 at 4:36
    
That's a fantastic answer there @penguin359! –  boehj Apr 28 '11 at 4:02

POSIX is a subset of UNIX which is intended to cover various Unix-like environments for other operating systems; this originally included environments such as Eunice for VMS, Windows NT's POSIX personality, and Apollo Domain/OS. You can think of it as a standard portability API for the subset of operating system services whose behavior is in common between Unix and non-Unix. See http://standards.ieee.org/develop/wg/POSIX.html for more information.

share|improve this answer
    
I've read more about it now, and it certainly seems that Uinx was the chicken and POSIX was the egg.. but I do wonder if UNIX still rules the roost.. ie..Does POSIX have a life of its own now, and UNIX must comply to POSIX? ... btw. it seems the name POSIX was coinded by Richard Stallman .... –  Peter.O Apr 25 '11 at 19:11
    
@fred.bear: Short answer: UNIX (the trade mark) must conform to POSIX; Unix (the product) was the main basis for POSIX; unices (the family of OSes) mostly conform but have more in common. See Is Linux a Unix? and Is Mac OS X, UNIX? for related discussions. –  Gilles Apr 25 '11 at 20:34
    
@fred-bear Many people argue that the POSIX standard is nowadays guided by the Linux kernel development community, which (if true) IMHO is not a good thing... –  faif Apr 26 '11 at 14:05
    
@faif I've never heard this and find it unlikely, can you post a reference? –  penguin359 Apr 28 '11 at 4:06
    
@Gilles The Open Group, owner of the UNIX® trademark is also in charge of the UNIX® certification and specification which they call Single UNIX Specification or SUS. POSIX is developed by the IEEE who are not in charge of UNIX®. Since 2001, they have been developed largely in sync, but it technically SUS which is now at version 4 that defined UNIX®. –  penguin359 Apr 28 '11 at 4:11

POSIX is the Portable Operating System standard. It describes certain utilities, APIs, and services a compliant operating system must provide to software (for example sockets, file I/O and threading) along with conventions on how these should be called from a program.

The idea is that a program written for one POSIX-Compliant OS would be easier to port to another POSIX-compliant OS than porting between non-POSIX-compliant OSes. This is why it is much easier to port an application from, say, FreeBSD to Linux than it is to port it from FreeBSD to Windows (though Windows ostensibly supports a subset of POSIX.)

share|improve this answer

Your Answer

 
discard

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.