23

I know that macOS is a UNIX operating system, but I don't know whether macOS could be called a UNIX distribution in the same way Gentoo or Debian are GNU/Linux distributions.

Is macOS a UNIX distribution? If it isn't, how could one correctly refer to macOS' membership in the UNIX operating system family and compliance to Single UNIX Specification (i.e., is it a Unix variant, a Unix version, a Unix flavor, etc.)? Also, this question applies to Solaris, HP-UX and other unices (are they all UNIX distributions?).

Furthermore, is the word "distribution" restricted to GNU(/Linux, /Hurd, /kFreeBSD, /etc) operating systems, or may it be used in other cases?

EDIT: I've realized that the UNIX' official website uses "UNIX implementations" and "UNIX operating systems" for referring to the family of Unix operating systems, i.e., the ones which implement the Single Unix Standard.

S.S. Anne
  • 482
Seninha
  • 1,035
  • How do you define "Unix distribution" and what do you mean by "being a Unix distribution"? – Jörg W Mittag Feb 09 '18 at 23:24
  • @JörgWMittag I don't have any definition for it. I think that the GNU-ish sense of distributions as the set of operating systems which share the same core software, as defined in the answer, is the rightest one. – Seninha Feb 09 '18 at 23:39
  • 2
    UNIX is a brand. Unix is a operating system. They are two different things. – fpmurphy Feb 10 '18 at 01:33
  • 1
    Strictly speaking, Debian and Gentoo aren't Unix distributions, they're Linux distributions. Linux isn't Unix, it just works like Unix. Nor AFAIK are they GNU distributions: the GNU tools are a part of any Linux distribution, but not the only part. – jamesqf Feb 10 '18 at 03:46
  • 1
    If you post your edit as an answer, it will get my upvote. – dcorking Feb 10 '18 at 19:40

2 Answers2

36

What is UNIX at all ?

Short answer: UNIX is a specification/standard nowadays.

At the time of writing, to quote the official sources, "UNIX® is a registered trademark of The Open Group", the company which among many things provides UNIX certification:

"UNIX®, an open standard owned and managed by The Open Group, is an enabler of key technologies and delivers reduced total cost of ownership, increased IT agility, stability, and interoperability in hetero¬geneous environments enabling business and market innovation across the globe."

The same page specifically states which specification defines UNIX:

The latest version of the certification standard is UNIX V7, aligned with the Single UNIX Specification Version 4, 2013 Edition

Details of those specs can be found here. Curiously enough the latest standard listed on their website is UNIX 03, and to quote another source, "UNIX® 03 - the mark for systems conforming to version 3 of the Single UNIX Specification".

To quote the About Us page with my own emphasis in bold:

The success of the UNIX approach led to a large number of “look-alike” operating systems, often divergent in compatibility and interoperability. To address this, vendors and users joined together in the 1980s to create the POSIX® standard and later the Single UNIX Specification.

So what this suggests (or at least so is my interpretation), is that when an OS conforms to the POSIX standard and Single UNIX Specifications, it is compatible in behavior with Unix as an OS that once existed at one point in time in history. Please note that this does not mention the presence of any traces of the original Unix source code, nor does it mention the kernel in any way (this will become important later).

As for the AT&T and System V Unix developed by Ritchie and Thompson, nowadays we can say it has ceased to exist. Based on the above sources, it seems UNIX nowadays is not that specific OS, but rather a standard derived out of the best possible generalization for how operating systems in Unix family behave.


 Where does macOS X stand in the *nix world ?

In a very specific definition, macOS version 10.13 High Sierra on Intel-based hardware is compliant to the UNIX 03 standard and to quote the pdf certificate, "Apple Inc. has entered into a Trademark License Agreement with X/Open Company Limited." Side note: I hesitate to question what it would means for macOS 10.13 on non-Intel hardware to be treated as, but considering that hardware is mentioned for other OS, the hardware is significant. Example: "Hewlett Packard Enterprise: HP-UX 11i V3 Release B.11.31 or later on HP 9000 Servers with Precision Architecture" (from the register page).

Let’s return to previous section of my answer. Since this particular version of OS conforms to interoperability and compatibility standard, it means the OS is as close in behavior and system implementation as possible to original Unix as an Operating System. At the very least, it will be close in behavior and in environment. The closer it gets to system level and kernel level, the more specific and shadier the area will get, but at least fundamental mechanics and behavior that were present in Unix should be present in an OS that aims to be compatible. macOS X should be very close to that aim.


What is a distribution ?

To quote Wikipedia:

A Linux distribution (often abbreviated as distro) is an operating system made from a software collection, which is based upon the Linux kernel and, often, a package management system.

Let's remember for a second that Linux as in the Linux Kernel is supposed to be distributable software, with modifications, or at least in accordance with GPL v2. If we consider a package manager and kernel, Ubuntu and Red Hat being distributions makes sense. macOS X has a different kernel than the original AT&T Unix - therefore calling macOS X a Unix distribution doesn't make sense. People suggest that macOS X kernel is based on FreeBSD, but to quote FreeBSD Wiki:

The XNU kernel used on OS X includes a few subsystems from (older versions of) FreeBSD, but is mostly an independent implementation

Some people mistakenly call the OS X kernel Darwin. To quote Apple's Kernel Programming Guide:

The kernel, along with other core parts of OS X are collectively referred to as Darwin. Darwin is a complete operating system based on many of the same technologies that underlie OS X.

And to quote the same page:

Darwin technology is based on BSD, Mach 3.0, and Apple technologies.

Based on everything above we can confidently say, OS X is not a distribution, in the sense of Linux distribution. Similarly, other mentioned OSs are POSIX compliant and are certified Unix systems, but again they differ in kernels and variations on underlying system calls (which is why there exist books on Solaris system programming and it's a worthy subject in its own right). Therefore, they aren't distributions in the sense Linux distributions are - a common core with variations on utilities. In case of Linux, you see books on Linux system programming or Linux kernel programming, not system programming specific to distribution, because there's nothing system-specific about a particular distribution.

Confirmation of what we see here can be found in official documentation. For instance, article on developerWorks by IBM which addressed difference between UNIX OS types and Linux distributions states (emphasis added):

Most modern UNIX variants known today are licensed versions of one of the original UNIX editions. Sun's Solaris, Hewlett-Packard's HP-UX, and IBM's AIX® are all flavors of UNIX that have their own unique elements and foundations.

In other words, they are based on the same foundation, but they don't share exactly same one in the sense Linux distros share the kernel.

Considerations

Note that the word distribution appears to be mostly used when referencing operating systems which have the Linux kernel at its core. Take for instance the BSD type of Operating Systems: there's GhostBSD, which is based on the kernel and uses some of the utilities of FreeBSD, but I've never seen it to be referred to as a BSD distribution; every BSD OS only mentions what it is based on and usually an operating system is mentioned as an OS in its own right. Sure, BSD stands for Berkeley Software Distribution, but...that's it.

To quote this answer on our site in response to the question whether different BSD versions use same kernels:

No, although there are similarities due to the historic forks. Each project evolved separately.

They are not distributions in the sense of Linux distributions. Consider the copyright notice from this document:

Portions of this product may be derived from the UNIX® and Berkeley 4.3 BSD systems

Notes

  • the before mentioned POSIX standard is also referenced as IEEE standard (where IEEE is Institute of Electrical and Electronics Engineers, which handles among other things IT types of things).
  • to quote Wikipedia: "In 2016, with the release of macOS 10.12 Sierra, the name was changed from OS X to macOS to streamline it with the branding of Apple's other primary operating systems: iOS, watchOS, and tvOS.[56]"
  • Mac OS X history answer
  • conceptual difference between Linux and BSD kernel

In conclusion:

  • macOS X can be referred to as either Unix-like OS, Unix-like system, Unix implementation, POSIX compliant-OS when you want to relate it to the original AT&T Unix;
  • "Unix version" wouldn't be the appropriate term because macOS X is vastly different from the original AT&T Unix, and as mentioned before there's no more Unix in the sense of software, and it is now a more of an industry standard;
  • Probably the word "distribution" fits only within the Linux world.
  • The true problem is that you (the reader) and I have way too much time to argue about the topic which lawyers should be arguing about. Maybe we should be like Linux Torvalds and use terminology and OSs that just allows us to move on with the life and do the things we honestly care about and are supposed to care about.
  • 17
    You might want to check what BSD actually stands for before claiming the word “distribution” isn’t used there ;-). – Stephen Kitt Feb 09 '18 at 22:16
  • 2
    Sorry for the multi edits, the lack of "a"s and "the"s made me a bit difficult following the entire text. POSIX is newer than the older Unices and I am not quite sure wether the answer is mixing both of them; I also think you are doing a disservice characterising the BSD world, which is much closer to Unix than Linux. The certification also in itself also does no mean much more that someone had the time and money to go through the certification process, and that has to be done in every version. IMO, reworking the text a little more, this has the potential to be a very good answer. – Rui F Ribeiro Feb 09 '18 at 22:18
  • It looks like macOS 10.13 is the first version of macOS to be certified, is that right? – Matt Feb 09 '18 at 22:30
  • 1
    @Matthew However I would not vouch for the quality of the BSD user land of OS/X/Mac OS. Often the utilities are very old versions compared to the FreeBSD ones, and even a proper and recent IPv6 implementation took a long time to surface just in very recent versions. – Rui F Ribeiro Feb 09 '18 at 22:35
  • @Matthew My mistake; the certified version was Mac OS X Version 10.5 Leopard on Intel-based Macintosh and now 10.13 I think – Rui F Ribeiro Feb 09 '18 at 22:47
  • 3
    The Unix standard website uses "UNIX implementations" to refer to the Unix OSes. So this is the word I was looking for: implementation. – Seninha Feb 09 '18 at 23:04
  • Minor nitpick, new versions of OS/X are now called MacOS. – Rui F Ribeiro Feb 09 '18 at 23:10
  • 1
    I had to deal with the realworld mechanics of determining if mac os was a unix or not, because I was working on a project that runs on GNU/linux, BSDs, and the question was, is darwin/osx enough like unix to be usable in this project? My personal experience based on writing the code and trying to get darwin to cooperate was that no, it's not unix enough to allow me to do what I needed. I don't personally care if stuff is posix or not, to me that's never been the actual obstacle, what I cared about was the mechanical reality of getting data from the various systems. I gave up on darwin. – Lizardx Feb 10 '18 at 00:06
  • Unix is not a trademark of The Open Group. UNIX is a trademark of The Open Group. – fpmurphy Feb 10 '18 at 01:37
  • @Seninha. UNIX Implementation has a very specific meaning. It does not refer to the family of Unix-like OSes. Rather it means that a particular version of a operating system was certified to conform to a particular UNIX specification such as UNIX95, UNIX98, UNIX03, etc. – fpmurphy Feb 10 '18 at 01:48
  • For whatever reason, upon a new macOS release the register is updated to the newest version without saying earlier versions. You can use the Wayback Machine against the linked register to see how they often overlap versions or just straight up replace with current. Quite odd honestly. – Spotlight Feb 10 '18 at 01:54
  • 3
    @Sergiy Kolodyazhnyy. POSIX-compliance does not mean that a version of an OS is as close to original Unix as possible There are many non-Unix OSes that are POSIX-compliant. – fpmurphy Feb 10 '18 at 01:59
  • Hi folks ! I've edited my answer to include the sources and stuff, so feel free to review. Hopefully some of you will see that couple of the comments posted here are in fact incorrect, although if the official sources can't sway opinions I don't know what can anymore. As for BSD part...I'm sorry, but BSD is distribution only in name...BSD's don't have distributions. They have operating systems, forks, they have family of OS, but...evidence doesn't show there being any "distributions". I think I'm done editing this answer for now. Everybody have a good day. <3 – Sergiy Kolodyazhnyy Feb 11 '18 at 23:30
  • 1
    @Sergiy BSD was called a distribution way back when it started because it was a distribution of various pieces of software, collected together to form a coherent whole, which is really what a distribution is. Back then, each UNIX site had its own set of software, and a few people took the time to put together something which it made sense to distribute — Bill Joy was one of those people and ended up putting together the most successful distribution, BSD. Current BSDs are still distributions of software collected from a variety of sources. – Stephen Kitt Feb 13 '18 at 17:20
4

Q: Is macOS an Unix distribution? If it isn't, how could one correctly refer to macOS' beinghood in the Unix operating system family (i.e., is it an Unix variant, an Unix version, an Unix flavor, etc)? Also, this question applies to Solaris, HP-UX and other unices (are they all Unix distributions?).

Image source: https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html

MacOS X

Source: https://en.m.wikipedia.org/wiki/XNU

"XNU is the computer operating system kernel developed at Apple Inc. since December 1996 for use in the macOS operating system and released as free and open-source software as part of the Darwin operating system. It is also used as the kernel for the iOS, tvOS, and watchOS operating systems. XNU is an abbreviation of X is Not Unix.


Source: https://developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-CIHFEIFI

"Building Your First Kernel

Before you can build a kernel, you must first obtain source code. Source code for the OS X kernel can be found in the Darwin xnu project on http://www.opensource.apple.com. To find out your current kernel version, use the command uname -a. If you run into trouble, search the archives of the darwin-kernel and darwin-development mailing lists for information. If that doesn’t help, ask for assistance on either list. The list archives and subscription information can be found at http://www.lists.apple.com ".


Source: https://developer.apple.com/library/content/documentation/Porting/Conceptual/PortingUnix/glossary/glossary.html

Cocoa - An advanced object-oriented development platform for OS X. Cocoa is a set of frameworks with programming interfaces in both Java and Objective-C. It is based on the integration of OPENSTEP, Apple technologies, and Java.

Darwin - Another name for the core of the OS X operating system. The Darwin kernel is equivalent to the OS X kernel plus the BSD libraries and commands essential to the BSD command-line environment. Darwin is open source technology.

Xcode - Apple’s graphical integrated development environment. It is available free with the OS X Developer Tools package.

XNU - The OS X kernel. The acronym stands for X is Not Unix. XNU combines the functionality of Mach and BSD with the I/O Kit, the driver model for OS X.


  • Architecture

Source: https://en.wikipedia.org/wiki/MacOS#Architecture

"At macOS's core is a POSIX compliant operating system built on top of the XNU kernel, with standard Unix facilities available from the command line interface. Apple has released this family of software as a free and open source operating system named Darwin. On top of Darwin, Apple layered a number of components, including the Aqua interface and the Finder, to complete the GUI-based operating system which is macOS.".


Q: Distribution or Release? - Source: https://en.wikipedia.org/wiki/MacOS#Updating_methods

Source: https://en.wikipedia.org/wiki/MacOS_High_Sierra

"macOS High Sierra (version 10.13) is the fourteenth major release of macOS, Apple Inc.'s desktop operating system for Macintosh computers. The successor to macOS Sierra, it was announced at the WWDC 2017 on June 5, 2017.". "Kernel type: Hybrid (XNU)".


Q: Also, this question applies to Solaris, HP-UX and other unices (are they all Unix distributions?).

Rob
  • 340
  • 3
    I would advise trying gluing the multiple quoting with words of your own. – Rui F Ribeiro Feb 12 '18 at 22:28
  • Like @RuiFRibeiro mentioned, you should add some explanations ; what he did not say, however, is that it is unclear where you stands with all these different quotes. – Paradox Jun 02 '19 at 11:09