MacOS is it unix or just unix? Or is it a bit like Unix? We respond to the endless debate and explain standards such as POSIX and SUS.
macOS: UNIX or not?
This topic raises a lot of different questions. What is the lineage of macOS? How much of this hereditary material is still present in the current macOS, and is it important? Before we can begin to say whether something is UNIX, Unix or Unix-like, we must be comfortable with the meaning of these terms. Who decides if something is Unix or UNIX and what criteria do they use?
Let's start at the beginning.
Unix was created fifty years ago Bell Labs, a research and development company owned by AT & T. Fast forward to 1973 and version 4 of Unix, which was rewritten in the C programming language. This made the operating system much more portable and more easy to transfer on different hardware platforms. That same year, Ken Thompson and Dennis Ritchie, two of the main Unix architects, presented a paper at a conference on operating systems. Immediately, they received requests for copies of the operating system.
Linked by a consent decree dating back to 1956, AT & T was to avoid any activity other than the provision of communications services by common carrier. Unix was not considered a benefit. The company did something remarkable at that time: distribute Unix as source code with a liberal license. Minimal fees covered shipping and packaging costs and a "reasonable fee".
A proliferation of Unix
Because Unix was provided "in the state", it came unattended. As a result, a Unix community has started to regroup to help its members, patch and extend Unix. So you can get the source code, edit it, and get support from the community. That sounds good. Different flavors of Unix began to appear, adapted and adjusted according to the organization performing the work.
Bob Fabry, professor of computer science at the University of Berkeley, was a member of the program committee of the Symposium of 1973 on the principles of operating systems. He listened to a presentation by Thompson and Ritchie entitled The UNIX Time-Sharing System.
Fabry requested a copy of the operating system and, in 1974, Unix was installed on a PDP / 11 the UC Berkeley Computer Science Research Group (CSRG). It is interesting to note that Ken Thompson spent a year there working on what quickly became the universe of the university. Copies of the UC Berkeley changes and additions have been distributed and are now known as Berkeley Software Distribution (BSD). These eventually became distributions of an entire Unix system, also called BSD. Version numbers, such as 4.2BSD, have identified different versions.
In 1984, AT & T was released from the restrictions imposed by the 1956 Consent Decree and was able to properly market its operating system. It included BSD code, such as TCP / IP, viand the shell C, csh. Even with this cross-pollination and collaboration, there were difficulties with licensing. BSD contained AT & T code, which was not open source, unlike BSD elements.
A BSD version without AT & T code has been developed to solve these problems. When the AT & T code was removed, about 20% of the kernel was missing. William Jolitz wrote the missing parts, and this version of Unix was released as 386BSD. The 386BSD project is stalled, but in 1993, its source code base gives rise to the NetBSD and FreeBSD projects.
This gave us a piece of the puzzle: FreeBSD.
The next step
After being fired from Apple, Inc. in 1985, Steve Jobs founded a company called NeXT, Inc. To provide an operating system for its desktop product line, NeXT has developed The next step. He used BSD as a code base but introduced a completely different kernel.
NeXT used a modified version of the Mach microkernel and 4.3BSD to form NeXTSTEP, which is the second part of this puzzle. Mach was developed at Carnegie Mellon to facilitate distributed and parallel computing research. The research team used BSD as their operating system and replaced the kernel rather than writing their own operating system.
In 1996, Apple, Inc. purchased NeXT, Inc. and, in doing so, acquired NeXTSTEP. Apple started to develop the operating system that would eventually become macOS through Mac OS X. He upgraded the Mach kernel and replaced it with the more advanced version developed and used by Open Software Foundation in the OSF / 1 operating system. Apple has also upgraded BSD components with updated and improved versions of the FreeBSD distribution.
Apple has returned elements of the BSD kernel to the Mach kernel. He has also developed a hybrid core combining the characteristics of both monolithic and micro-core architectures.
the I / O Kit, developed by Apple based on the NeXTSTEP DriverKit, has also been included. This allowed you to add drivers to a kernel without having to change it every time.
XNU is the third part of the puzzle.
POSIX and SUS standards
Open Group is the UNIX brand certification body. In other words, it must approve your operating system as conforming to its standards before it can be called UNIX. UNIX in capital letters is the sign of conformity.
So the categories are:
Unix: A family of operating systems. This family includes both UNIX operating systems and Unix-like operating systems.
UNIX operating systems: These have been certified to standards.
Unix-like operating systemsThey look and work like Unix but have not been certified.
Of course, it is quite possible that some operating systems in the "Unix type" category will be tested tomorrow and found to be compliant. These are actually UNIXs now, but they can not be classified in the Unix category because they do not have the buffer yet.
Two standards certify UNIX: POSIX and UNIX Unique Specification (SUS). SUS is a superset of POSIX. So, something can be POSIX compatible, but that does not make it UNIX. However, if something is compatible with SUS, it is a UNIX.
POSIX and SUS form large collections of documents (about 3,700 pages). They define the operation and expected behavior of each aspect of a compliant UNIX system. Everything from asynchronous and synchronous I / O to the script interface and user programs is cataloged and defined.
Standards define application interfaces and run-time behavior, but they do not dictate how they are implemented.
So, is macOS UNIX?
The answer must be yes.
You can trace his lineage via FreeBSD up to BSD, and then from the Unix distributed by Bell Labs before the AT & T license fee increases.
But that does not matter.
If you are writing an operating system from now on, provided it meets the requirements of the SUS, it is considered UNIX. And no matter how you implement it. The XNU core at the heart of macOS is a hybrid architecture. It combines the Apple code with parts of the Mach and BSD kernels.
But that does not matter either. What matters is that it meets the requirements of the standards against which it has been evaluated.
The BSD portion of the XNU kernel provides the POSIX application programming interfaces (such as the various API and BSD system calls). Keeping this element of the BSD kernel intact in XNU is essential for UNIX certification. This allows XNU to communicate UNIX compliant and compatible with the rest of the system.
macOS is a UNIX 03 compatible operating system certified by The Open Group. That's since 2007, starting with MAC OS X 10.5. Mac OS X 10.7 Lion was the only exception, but compliance was found with OS X 10.8 Mountain Lion.
Funny, just like GNU means "GNU's Not Unix", XNU means "X is Not Unix". "