Unix architecture evolution diagrams
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE
Makefile
README.md
arch-V1.hbd
arch.hbd
hbd2tex.py
index.html Add First Research Edition Unix May 10, 2017
publish.sh

README.md

Unix Architecture Diagrams

This repository maintains the source code files for creating diagrams of the Unix architecture evolution. The diagrams are roughly based on data obtained from the evolution of Unix facilities across the major Unix releases tracked by the Unix history repository.

Diagram description language

I designed and implemented a small domain-specific language for representing hierarchically nested block diagrams. The language allows you to define:

  • horizontal, and vertical framed boxes (hbox, vbox)
  • plain (unframed) composite boxes (pbox)
  • horizontal and vertical labels (hl, vl)

Boxes are put side by side; a blank line continues the layout on the next line.

Horizontal labels can be preceded by a color=colorname or adornlr=symbol within square brackets. The colorname argument to color is a LaTeX color name, which specifies the name of the corresponding box. The symbol is a LaTeX math symbol name, which is used to adorn the corresponding label on its left and right-hand sides.

Passing the -s or --separage-boxes command-line argument to the script will generate a less compact but more semantically consistent diagram, where each element is within its own box.

The Python script generates a stand-alone LaTeX document, which can then be converted to PDF. This idea has been taken on by the boxes project to generate HTML output.