Today the variation between BSD licenses all revolves around which clauses they retain. However, in the early days of BSD distributions, the variations was substantially different. This blog post will use the TUHS Archive and Kirk McKusick’s BSD archive DVD to trace the early history of the BSD license. While one might categorize these early BSD variants in different ways using the more monikers like ISC-like or MIT-like, this blog will avoid that analysis. Instead, it will focus on how things were marked, the variations that exist, and a few other items of interest.
The first Berkeley Software Distribution (1BSD) was more a collection of programs for Unix rather than a new Unix distribution (as we think of the word today). It was a mini USENIX tape, in some ways. The USENIX tapes were a collection of random software that people contributed before different early USENIX conferences.
1BSD had a Pascal compiler, the ex editor, a modified yacc for the Pascal compiler, a star trek game (rewritten from earlier BASIC and FORTRAN versions in C) and some experimentals shells (ashell).
It was released in late 1977, so post-dates 6th Edition Unix but pre-dates the 7th edition.
There are no copyright markings at all on this tape (a case insensitive grep of the TUHS 1BSD archive extracted from TUHS 1BSD archive for the word 'copyright' returns no results).
There are no license to copy granted in files or in READ_ME
files.
Note that the tar file has a number of directories with ar(1) .a files.
However, this is the old 'binary' ar format from the 6th edition and it needs special tools to extract.
Even though the format is 'binary', text files are stored without compression so grep will find strings that existed in the source or binary files.
The only clue as to licnese is on the physical label on the tape, which said[TAPE in TUHS.1BSD]:
The contents of this tape are distributed to UNIX licensees only, subject to the software agreement you have with Western Electric and an agreement with the University of California.
so it was targeted specifically at AT&T Unix licensees, but contained no AT&T code. The 1BSD license agreeemnt with the University of California appears is hard to find. About 65 tapes were produced and shipped. They weren’t all identical, but had updates applied and were sent out in batches whenever there were enough to do.
1BSD appears in the TUHS archive based on a donation from Marshall Kirk McKusick of an archival copy of a 1BSD distribution tape from January 19, 1978. It also appears in Dr. McKusick’s BSD DVD archive. Permission is granted to copy the files in the BSD archive (with some exceptions). Dr McKusick has indicated to me in private conversation that he is distributing 1bsd with permission of the University and imposes no further restriction on its copying (which is why it can appear in the TUHS archive).
It was a simpler time.
The second Berkeely Software Distribution (2BSD) was released in mid 1978 according to Peter Salus' Quarter Century of Unix [QCU]. The copy in the [TUHS] archive is from May 10, 1979, and was used for this analysis. The TUHS 2BSD archive extracted from TUHS 2BSD Archive. It too had the following label on the physical tape[TAPE in TUHS.2BSD]:
The contents of this tape are distributed to UNIX licensees only, subject to the software agreement you have with Western Electric and an agreement with the University of California.
and it also contained nominally no AT&T code.
It contained the following programs:
-
Mail
-
csh
-
me troff macros
-
berknet
-
Pasal Compiler
-
pascal cross reference program
-
termlib (precurser to curses)
-
several misc utilities
Nearly the programs had
/* Copyright (c) 1979 Regents of the University of California */
prepended to it.
The programs were compiled for V7, but Berkeley’s V7 and the programs themselves were on the V7 VAX port (which was later released by Bell Labs as 32V in several versions).[QCU] Some V6 compatibility libraries were provided for installations still running V6 (src/READ_ME in [TUHS.2BSD]) via -lretro (install.ms in [TUHS.2BSD]).
Other than the new copyright markings on each source file, there’s nothing new about copying these files.
The third Berkeley Software Distribution (3BSD) was released in late 1979[QCU] or early 1980 [TUHS]. It is a port of 32V to the VAX architecture. It includes demand paging.
Theres some new code for demand paging, as well as a number of Berkeley-specific programs (like head) from 2BSD. Unlike 2BSD, where all the new files had a
/* Copyright (c) 1979 Regents of the University of California */
prepended to them, only some of the Bereley-added programs have it: as, csh, ex, tracing code for lisp, the pascal compiler, the stdio v6 compat library and libtermlib. They are missing from all the programs from 2BSD in its src/ that did not have a subdirectory (compare [src/head.c TUHS.2BSD] to [usr/src/cmd/head.c in TUHS.3BSD]). In addition, new drivers that were not in 32V but in 3BSD have no markings. It’s unclear if UCB wrote these, or if they got them from elsewhere. The usr/src/sys/dev/rk.c file appears to be a port of the V7 standalone rk.c driver, while usr/src/sys/dev/rk7.c appears unrelated to anything that was in 7th Edition or V32. Most of the rest of 32V is the same as 3BSD, except for the usr/src/sys/sys/vm*.c files added in 3BSD. None of these additions have a copyright notice added. We do not have a copy of the 3BSD tape label, but presumably it said the same thing as 2BSD.
So it’s not a very good job of tracking the Berkeley IP.
[QCU] Salus, Peter H. A quarter century of UNIX. Addison-Wesley Publishing Company, Inc., 1994. ISBN 0-201-54777-5
[tuhs] TUHS Archive at https://www.tuhs.org/
[TUHS.1BSD] 1BSD archive at TUHS https://www.tuhs.org/Archive/Distributions/UCB/1bsd.tar.gz
[TUHS.2BSD] 2BSD archive at TUHS https://www.tuhs.org/Archive/Distributions/UCB/2bsd.tar.gz