A History of UNIX That Clicks / Bonus 4The lineage tree, all the way to the courtroom and the standard

The "lineage tree" we split off in Episode 1 — the story of ownership and compatibility that follows

The Two Trees, Continued — the BSD Lawsuit, System V, POSIX In Episode 1 we separated the "lineage tree (inheritance of code)" from the "reimplementation tree (inheritance of philosophy)." This time we follow the lineage tree all the way to the courtroom (whose code is it?) and the standard (pinning down Unix-ness as a specification). Ownership and compatibility — the "social" side of chicken-and-egg.

Prerequisite: Episode 1 (the two trees) The reveal: the three pillars of lineage, philosophy, and standard

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.

01The lineage tree goes to court — USL v. BSDi

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.

Figure 1: The timeline over BSD. License acquired → Net/1 · Net/2 (AT&T code removed) → BSD/386 → lawsuit (1992) → settlement (1994) → 4.4BSD-Lite → *BSD. Note the settlement's score.
The settlement's score (1994)

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).

02System V and the Unix wars

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.

03POSIX — pinning down "Unix-ness" as a specification

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 reveal — POSIX bridges the two trees with "compatibility"

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.

Figure 2: The two trees and POSIX. Before POSIX, each OS has its own API and they're scattered apart. After POSIX, both the lineage tree and the reimplementation tree connect to the common spec POSIX and can converse in the same API.
Connecting voice — the third inheritance In Episode 1 we split inheritance into two (lineage and philosophy). In this bonus, a third comes into view — the standard (compatibility by specification). ① Inherit the code (lineage). ② Inherit the philosophy (reimplementation). ③ Conform to the spec (standard). That Linux "isn't Unix (not in the lineage) yet can be used as Unix" is a combination of ② philosophy and ③ standard. Ownership (the lawsuit) and compatibility (POSIX) — not only the code itself, but the institutions surrounding it, too, have shaped the UNIX family.
The honest line — institutions have blurrier outlines than code

(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).

Practice problems (solvable with this bonus alone)
  1. What did the USL v. BSDi settlement (1994) back up about Episode 1's "lineage tree"?
    See the answer
    That AT&T's actual code was really present in BSD (enough to be contested line by line in court). The concrete line-drawing of 3 removed and 70 modified out of 18,000 files is evidence that the lineage of code is a real thing.
  2. Why did the Unix wars need a standard like POSIX?
    See the answer
    Because slightly different Unixes proliferated vendor by vendor — System V line, BSD line, and so on — and compatibility (the same program running everywhere) became a problem. A common specification was needed.
  3. What did POSIX make possible for an OS with no lineage of code?
    See the answer
    Behaving "Unix-like" and staying compatible by following the spec (system calls, API), without inheriting a single line of AT&T's code. The basis on which the reimplementation tree (MINIX, GNU, Linux) can be Unix-compatible.
  4. Name the three pillars of "inheritance" in the UNIX family.
    See the answer
    ① Inheritance of code (lineage: BSD, System V). ② Inheritance of philosophy (reimplementation: MINIX, GNU, Linux). ③ Compatibility by specification (standard: POSIX).

SummaryThe ownership of code, and the compatibility of behavior

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.

This document is Bonus 4 of the series "A History of UNIX That Clicks." Historical facts: AT&T UNIX's source was licensed to universities and others, and UC Berkeley's CSRG derived BSD. It released Net/1 (1988) and Net/2 (1991), with AT&T code removed, under the BSD license, and BSDi completed Net/2, ported it to i386, and sold BSD/386. AT&T's USL sued BSDi in New Jersey in 1992, and the UC Regents were added as a defendant. In 1994, Novell (which had bought USL) and the university settled; of BSD's 18,000 files, only 3 were removed and 70 modified, and 4.4BSD-Lite was released as a version containing no proprietary UNIX code. System V is AT&T's commercial Unix, succeeding System III and appearing in January 1983, oriented toward standardization. The vendor standardization competition of the late 1980s to early 1990s is called the Unix wars. POSIX is a standard by the IEEE's P1003 committee (formed in 1984), and POSIX.1 (IEEE Std 1003.1-1988) specifies over 100 system calls and library functions as a C API, drawn from both System V and BSD. The name POSIX is said to have been coined by Richard Stallman. Ownership of the UNIX trademark passed through AT&T → Novell → X/Open → The Open Group. Part of the settlement is non-public, and the details and figures vary across sources. — To print, use your browser's "Print" and "Save as PDF" (in the print version, the figures' controls and the answers are frozen / hidden).

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.