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