I wrote this in response to the bickering over wether or not OS X is in fact Unix in the forums here and at other sites. I direct this writing especially towards Tadpole.
The problem with labeling OS X a non-Unix is that the definition of Unix is very fuzzy. A tiny history of Unix is needed to spark this discussion. Unix did in fact originate at AT&T Bell Laboratories and developed along a single, unified path until 1975 when Version 6 was released. (Reference 1) This is where the first major split occurred. Developers at Berkeley began extending Unix (BSD) while AT&T continued releasing their own Unix's. An interesting point to make here is that every version of Unix released by AT&T after Version 6 contained elements of the BSD Unix developed at Berkeley. That means when System V.4 was released in 1988 by AT&T it contained many of the extended features that 4.4 BSD contained (released in 1993).
Contrary to statements I have seen about OS X inheriting from System V.x, it certainly did not. Darwin (OS X's base--including its kernel) was originally based on OpenStep 4.x, but was soon moved onto a Rhapsody base. (Reference 4) Rhapsody is based on BSD Lite2 which, in turn, is based on 4.4 BSD from Berkeley. This means that Darwin currently has no roots in AT&T's System V.x but is instead a derivative of BSD.
None of this addresses the issue of wether we can label OS X as Unix. For that, we must consider the current attempts at standardization. There have been many attempts at this, each having varying success. (Reference 2) All of these attempts occurred while AT&T still held a trademark on the name Unix.
Considering that a single party had control over the Unix trademark, these official standardization attempts were a bit futile: AT&T or whoever held the trademark could call anything they wanted to Unix and deny that right to anyone they wanted. Not to say that this type of arbitrary decision ever happened but the the owner of the trademark has that same right today.
Currently the trademark is held by the Open Group. This group is currently working on standardizing Unix for the world and allow companies to test and apply for the Unix label for their distributions. (Reference 3) Open Group only allows those distributions that conform to their standards use the Unix trademark and its logos. The standards they have laid down are a combination of the BSD, OSF/1, and System V.x Unix definitions. These standards are closer to the System V.x definition, however.
This can be demonstrated by Sun's various distributions. SunOS is Sun's BSD derivative operating system while their Solaris OS is based mostly on System V.4. (Reference 1) As you can see from the Open Group's web page (Reference 3), SunOS is NOT a registered Unix product while Solaris is.
The Open Group also maintains the POSIX standard that, while related to the Unix standard, is not the same as Unix.
So what does this all mean? Should we consider Mac OS X to be Unix? How about Linux? Or SunOS for that matter?
My personal inclination is to say that they are ALL Unix. That does not mean that everything that is compatible with linux will run on Solaris version 8. In fact, a quick test of Solaris compatible, non-gui based software on linux will show quite a few incompatibilities. The same would hold true with SunOS.
But the standard set down by Open Group should not be used as the end all definition of Unix. Developers at Berkeley did some amazing things with the original Unix released by AT&T. Many (if not most) of these things were later integrated into the original Unix (like virtual memory, the C shell, job control, and TCP/IP networking). I'm not sure that it is in the best interest of the Unix community to shut certain derivatives of Unix out while allowing others in. At the very least, another less constricting definition should be created to include those Unix derivatives that have viable uses as Unix systems.
Not to say that what the Open Group is doing is useless. They are attempting to create cross-platform compatibility standards. This is a very good cause, but does not strike at the heart of what is really a UNIX system.
I consider linux and Mac OS X Unix simply because most of the properties of Unix exist on these systems. I can take most shell scripts and run them on either OS X or Solaris and command line programs will generally compile on both systems. This is not always true, but I'm sure differences can be found in Unix compliant distributions by Compaq and Sun. Calling OS X a non-Unix operating system is senseless nit-picking.
I hope this provides clarity and inspires constructive comments or corrections.
Thanks
Matthew
References
1 Frisch, Aeleen Essential System Administration. O'Reilly & Associates, Inc., 1995.
2 Martin, Vernard There can be only one! A summary of the Unix standardization movement. ACM, 2001. http://www.acm.org/crossroads/xrds1-3/unix-standards.html
3 Register of Open Branded Products. Open Group, 2002. http://www.opengroup.org
4 Darwin FAQ Rob Braun, 2000. http://www.darwininfo.org/faq.shtml
The problem with labeling OS X a non-Unix is that the definition of Unix is very fuzzy. A tiny history of Unix is needed to spark this discussion. Unix did in fact originate at AT&T Bell Laboratories and developed along a single, unified path until 1975 when Version 6 was released. (Reference 1) This is where the first major split occurred. Developers at Berkeley began extending Unix (BSD) while AT&T continued releasing their own Unix's. An interesting point to make here is that every version of Unix released by AT&T after Version 6 contained elements of the BSD Unix developed at Berkeley. That means when System V.4 was released in 1988 by AT&T it contained many of the extended features that 4.4 BSD contained (released in 1993).
Contrary to statements I have seen about OS X inheriting from System V.x, it certainly did not. Darwin (OS X's base--including its kernel) was originally based on OpenStep 4.x, but was soon moved onto a Rhapsody base. (Reference 4) Rhapsody is based on BSD Lite2 which, in turn, is based on 4.4 BSD from Berkeley. This means that Darwin currently has no roots in AT&T's System V.x but is instead a derivative of BSD.
None of this addresses the issue of wether we can label OS X as Unix. For that, we must consider the current attempts at standardization. There have been many attempts at this, each having varying success. (Reference 2) All of these attempts occurred while AT&T still held a trademark on the name Unix.
Considering that a single party had control over the Unix trademark, these official standardization attempts were a bit futile: AT&T or whoever held the trademark could call anything they wanted to Unix and deny that right to anyone they wanted. Not to say that this type of arbitrary decision ever happened but the the owner of the trademark has that same right today.
Currently the trademark is held by the Open Group. This group is currently working on standardizing Unix for the world and allow companies to test and apply for the Unix label for their distributions. (Reference 3) Open Group only allows those distributions that conform to their standards use the Unix trademark and its logos. The standards they have laid down are a combination of the BSD, OSF/1, and System V.x Unix definitions. These standards are closer to the System V.x definition, however.
This can be demonstrated by Sun's various distributions. SunOS is Sun's BSD derivative operating system while their Solaris OS is based mostly on System V.4. (Reference 1) As you can see from the Open Group's web page (Reference 3), SunOS is NOT a registered Unix product while Solaris is.
The Open Group also maintains the POSIX standard that, while related to the Unix standard, is not the same as Unix.
So what does this all mean? Should we consider Mac OS X to be Unix? How about Linux? Or SunOS for that matter?
My personal inclination is to say that they are ALL Unix. That does not mean that everything that is compatible with linux will run on Solaris version 8. In fact, a quick test of Solaris compatible, non-gui based software on linux will show quite a few incompatibilities. The same would hold true with SunOS.
But the standard set down by Open Group should not be used as the end all definition of Unix. Developers at Berkeley did some amazing things with the original Unix released by AT&T. Many (if not most) of these things were later integrated into the original Unix (like virtual memory, the C shell, job control, and TCP/IP networking). I'm not sure that it is in the best interest of the Unix community to shut certain derivatives of Unix out while allowing others in. At the very least, another less constricting definition should be created to include those Unix derivatives that have viable uses as Unix systems.
Not to say that what the Open Group is doing is useless. They are attempting to create cross-platform compatibility standards. This is a very good cause, but does not strike at the heart of what is really a UNIX system.
I consider linux and Mac OS X Unix simply because most of the properties of Unix exist on these systems. I can take most shell scripts and run them on either OS X or Solaris and command line programs will generally compile on both systems. This is not always true, but I'm sure differences can be found in Unix compliant distributions by Compaq and Sun. Calling OS X a non-Unix operating system is senseless nit-picking.
I hope this provides clarity and inspires constructive comments or corrections.
Thanks
Matthew
References
1 Frisch, Aeleen Essential System Administration. O'Reilly & Associates, Inc., 1995.
2 Martin, Vernard There can be only one! A summary of the Unix standardization movement. ACM, 2001. http://www.acm.org/crossroads/xrds1-3/unix-standards.html
3 Register of Open Branded Products. Open Group, 2002. http://www.opengroup.org
4 Darwin FAQ Rob Braun, 2000. http://www.darwininfo.org/faq.shtml