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