The "lineage tree" we split off in Episode 1 — the story of ownership and compatibility that follows
In Episode 1 we saw that the UNIX family has a lineage tree (where AT&T's code actually flows: BSD, System V) and a reimplementation tree (which inherits no code, only philosophy: MINIX, GNU, Linux). Dig into that "lineage tree" and you meet two great stories — a courtroom battle over the ownership of code, and the standardization that pins down "Unix-ness" as a specification. Alongside the technical bootstrap, this is a story of the bootstrap of institutions.
That the lineage tree "really does inherit code" we offered, in Episode 1, as evidence of the fact that it went to court. Let's follow how it played out. UC Berkeley (the CSRG) grew BSD under AT&T's source license, and eventually released the portions with AT&T's code removed as Net/1 (1988) and Net/2 (1991). BSDi completed them, ported them to i386, and put BSD/386 on sale (the phone number was 1-800-ITS-UNIX). Here AT&T's USL sued, claiming "it contains our UNIX code" (1992, New Jersey). Follow that timeline in the figure below.
Novell (which had bought USL) and the university settled. Of BSD's 18,000 files, the contested points came down to just 3 removed and 70 modified. Nearly all of it was confirmed to be free, and 4.4BSD-Lite, containing no proprietary UNIX code, was released.
The significance is twofold. ① The lineage of code was real enough to be contested line by line in court (backing up Episode 1's "lineage tree"). ② There's also the view that the years of uncertainty this lawsuit dragged on gave a tailwind to the just-then-rising Linux (of the reimplementation tree, untouched by litigation).
The lineage tree's other branch is AT&T's commercial line. Succeeding System III (the base of Xenix and others), System V appeared in January 1983. AT&T tried to make it the de facto standard of Unix. On the other side were the BSDs. The period from the late 1980s to the early 1990s, when the two camps competed over "which is the real Unix," is the so-called Unix wars. Slightly different Unixes proliferated vendor by vendor — and compatibility became a pressing problem.
The answer to the fragmentation was POSIX. In 1984 the IEEE formed the P1003 committee, and as POSIX.1 (IEEE Std 1003.1-1988) it specified over 100 system calls and library functions as a C API (drawing from both System V and BSD). The name "POSIX" (Portable Operating System Interface) is said to have been coined by Richard Stallman.
The greatness of POSIX is that it let systems behave the same way by following the spec, without sharing code (genes). This is Episode 1's "inheritance of philosophy (the reimplementation tree)" solidified into an official specification. MINIX, Linux, and GNU can all behave "Unix-like" without inheriting a single line of AT&T's code — and the basis for that is POSIX. The lineage tree and the reimplementation tree, separate at their roots, could now shake hands atop POSIX, a horizontal common specification. Switch between before and after POSIX in the figure below.
(1) The contents of the USL v. BSDi settlement have non-public portions, and the details are phrased differently across sources. "3 removed, 70 modified out of 18,000" and "4.4BSD-Lite" are widely cited figures. (2) The ownership of the UNIX™ trademark passed through a complex chain, AT&T → Novell → X/Open → The Open Group, and "the lineage of code" and "the lineage of the trademark and certification" are yet another separate story.
(3) POSIX is a lowest-common-denominator arrangement, and real OSes are full of their own extensions. The POSIX conformance of Linux and each BSD is also a matter of degree, and "fully POSIX-compliant" and "holding UNIX certification (The Open Group)" are again separate. (4) "Unix wars" is a colloquialism, roughly summing up in one word a complex history involving multiple standards bodies and alliances (the later Single UNIX Specification, and others).
Dig into Episode 1's "lineage tree" and you meet two stories. One is ownership — UC Berkeley grew BSD under AT&T's source license, released Net/1 (1988) and Net/2 (1991) with AT&T code removed, and AT&T (USL) sued over BSDi's BSD/386 (1992). The 1994 settlement confirmed 3 removed and 70 modified out of 18,000, nearly all of it free, and 4.4BSD-Lite was born. The lineage of code was real enough to be contested in court.
The other is compatibility — AT&T's System V (1983) and BSD competed in the Unix wars, which bred proliferation, and the answer was POSIX (IEEE 1003.1-1988, the name coined by Stallman). It specified over 100 system calls as a C API, creating a standard by which systems could behave Unix-like without sharing code. This let the reimplementation tree (Linux and others) become Unix-compatible in good conscience. Inheritance has three pillars — ① lineage ② philosophy ③ standard. What shaped the UNIX family was not only code, but also the institutions surrounding it.
gcc and bash. Why did Stallman go to the trouble of rebuilding Unix from a blank sheet? If the toolchain isn't free, you can't sow the seed yourself — we look at that philosophy and its deep connection to the main series.
Print / save as PDF: ⌘+P (Ctrl+P on Windows). On screen, Figure 1's slider follows the timeline of the BSD lawsuit, and Figure 2's buttons switch compatibility before and after POSIX. "See the answer" opens each solution.