UNIX History Graphing Project

Welcome to the UNIX History Graphing Project. The aim is to try and collate a list of release dates and dependencies for as many of the UNIX variants as possible. The information will be kept in a a set of files that are machine-parsable. This will allow us, for example, to produce a graph of the UNIX family tree. I'll be trying to use Graphviz for my diagram.

Each `family group' of UNIX development will be kept in its own file. These can then be concatenated together to produce the full UNIX history.

A specific UNIX version is represented as a node in a file as follows. The first line has a single-word node nickname. The remaining lines are tab-indented. At the moment, the fields are fluid and we might have to add more. The current set of fields are:

Name: The name of the release to be shown in the final diagram Date: The release date in one of three forms: 1976-11-30, 1976-11 or just 1976. The latter two assume the beginning of November and the beginning of 1976. Reference: A reference to where this information came from. This should be as specific and verifiable as possible. For example: book name and page number, Usenet posting and message-id, a person and their e-mail address, or a file reference and where this file can be found. Successor to xxx Indicates that this version of UNIX is a direct descendant of xxx. xxx is another node nickname. Code taken from xxx Indicates that this isn't viewed by the UNIX community as a direct descendant, but that some code was taken from xxx. xxx is another node nickname. Influenced by xxx Indicates that this version of UNIX has no code taken directly from xxx, but borrowed ideas from xxx. xxx is another node nickname.

The node ends with a blank line. Lines in the files that start with a hash character (#) are comment lines. Here is an example node entry:

3bsd Name: 3BSD Date: 1980-03 Reference: last-mod timestamps in Distributions/ucb/3bsd.tar Successor to 32V Code taken from 2bsd # virtual memory, page replacement, # demand paging

Here are the current set of files:

research, the research versions of UNIX from Bell Labs, i.e 1st Edition up to 10th Edition.

usdl, any early versions from USG, PWB and USDL.

2bsd, 1BSD and the 2BSDs from CSRG.

4bsd, 3BSD and the 4BSDs from CSRG.

386bsd, 386BSD from Bill & Lynne Jolitz.

freebsd, the FreeBSD versions.

netbsd, the NetBSD versions.

openbsd, the OpenBSD versions.

linux, the Linux kernels.

bsdi, the commercial BSD versions from BSDi.

sysV, System III and System V versions.

aos, IBM AOS for the RT.

consensys, Consensys releases.

sunos, SunOS and Solaris releases.

tandem, Tandem releases.

unixware, Unixware releases.

Makefile and todot, used to convert the files above into Graphviz `dot' language, and then to produce unix_history.ps .

. unix_history.ps, a first attempt at using dot from Graphviz to draw the family tree.

from Graphviz to draw the family tree. references.html, a list of references used in the above files.

If you have information about any other part of the UNIX family tree, then please send the details to Warren Toomey wkt@cs.adfa.edu.au, and he will create a file with the details.

Warren Toomey

2000-06-15