// Recreated according to the picture from: // A. Silberschatz, J. Peterson, P. Galvin: // Operating System Concepts, Fig. 15.1, Addison Wesley 1991 // // The very first original was in: // Leffler/McKusick/Karels/Quarterman: // The design and Implementation of the 4.3 BSD UNIX Operating System. // Fig. 1.1 Addison Wesley 1989, graph: { xspace: 20 xlspace: 20 splines: yes yspace: 52 scaling: 0.57 // First the time scale // -------------------- // the nodes of the time scale node.textcolor: darkyellow node.borderwidth: 0 node: { title: "1969" level: 0 width: 70 horizontal_order: 1} node: { title: "1973" level: 1 width: 70 } node: { title: "1976" level: 2 width: 70 } node: { title: "1977" level: 3 width: 70 horizontal_order: 1} node: { title: "1978" level: 4 width: 70 } node: { title: "1979" level: 6 width: 70 } node: { title: "1980" level: 7 width: 70 } node: { title: "1981" level: 8 width: 70 } node: { title: "1982" level: 9 width: 70 } node: { title: "1983" level: 10 width: 70 horizontal_order: 1} node: { title: "1984" level: 11 width: 70 } node: { title: "1986" level: 12 width: 70 } node: { title: "1987" level: 13 width: 70 } node: { title: "1988" level: 14 width: 70 } node: { title: "future" level: 15 width: 70 } // the edges of the time scale edge.color: darkyellow edge.linestyle: dashed edge.backarrowcolor: blue edge.arrowstyle: line edge.arrowsize: 13 edge.priority: 100 edge: { sourcename: "1969" targetname: "1973" } edge: { sourcename: "1973" targetname: "1976" } edge: { sourcename: "1976" targetname: "1977" } edge: { sourcename: "1977" targetname: "1978" } edge: { sourcename: "1978" targetname: "1979" } edge: { sourcename: "1979" targetname: "1980" } edge: { sourcename: "1980" targetname: "1981" } edge: { sourcename: "1981" targetname: "1982" } edge: { sourcename: "1982" targetname: "1983" } edge: { sourcename: "1983" targetname: "1984" } edge: { sourcename: "1984" targetname: "1986" } edge: { sourcename: "1986" targetname: "1987" } edge: { sourcename: "1987" targetname: "1988" } edge: { sourcename: "1988" targetname: "future" } // Second the dependence graph // --------------------------- // the nodes of the dependence graph node.borderwidth: 5 node.bordercolor: darkblue node.textcolor: darkblue node.borderwidth: 1 node.shape: box node: { title: "First Edition" level: 0 horizontal_order: 2 color: pink } node: { title: "Fifth Edition" level: 1 color: pink } node: { title: "Sixth Edition" level: 2 color: pink } node: { title: "MERT" level: 3 horizontal_order: 2 color: khaki } node: { title: "PWB" level: 3 horizontal_order: 3 color: khaki } node: { title: "CB" level: 3 horizontal_order: 4 color: khaki } node: { title: "UNIX" level: 3 horizontal_order: 5 color: khaki } node: { title: "1BSD" level: 3 horizontal_order: 7 color: lightgreen } node: { title: "UNIX/RT" level: 4 color: khaki } node: { title: "Seventh Edition" level: 4 shape: ellipse color: pink } node: { title: "32V" level: 4 color: khaki } node: { title: "2BSD" level: 4 color: lightgreen } node: { title: "3BSD" level: 5 horizontal_order: 6 color: aquamarine } node: { title: "3.0" level: 6 color: cyan } node: { title: "4.0BSD" level: 6 color: aquamarine } node: { title: "3.0.1" level: 7 horizontal_order: 2 color: cyan } node: { title: "4.1BSD" level: 7 shape: ellipse color: aquamarine } node: { title: "4.0.1" level: 8 horizontal_order: 2 color: cyan } node: { title: "4.1aBSD" level: 8 horizontal_order: 6 color: aquamarine } node: { title: "System III" level: 9 color: yellow } node: { title: "5.0" level: 9 color: cyan } node: { title: "4.1cBSD" level: 9 horizontal_order: 6 color: aquamarine } node: { title: "2.8BSD" level: 9 horizontal_order: 7 color: lightgreen } node: { title: "System V" level: 10 horizontal_order: 2 color: yellow } node: { title: "5.2" level: 10 horizontal_order: 3 color: cyan } node: { title: "Eighth Edition" level: 10 shape: ellipse horizontal_order: 4 color: pink } node: { title: "4.2BSD" level: 10 shape: ellipse horizontal_order: 5 color: aquamarine } node: { title: "2.9BSD" level: 10 horizontal_order: 6 color: lightgreen } node: { title: "System V\nRelease 2" level: 11 shape: ellipse color: yellow } node: { title: "5.3" level: 12 color: cyan } node: { title: "System V\nRelease 3" level: 13 shape: ellipse color: yellow } node: { title: "Ninth Edition" level: 13 shape: ellipse color: pink } node: { title: "4.3BSD" level: 13 shape: ellipse color: aquamarine } node: { title: "2.10BSD" level: 13 color: lightgreen } node: { title: "5.4" level: 14 horizontal_order: 2 color: cyan } node: { title: "4.3BSD Tahoe" level: 14 shape: ellipse color: aquamarine } node: { title: "System V\nRelease 4" level: 15 shape: ellipse color: yellow } // the targets of the edges that point into the "future" node: { title: "d1" level: 15 width: 0 height: 0 } node: { title: "d2" level: 14 width: 0 height: 0 horizontal_order: 3 } node: { title: "d3" level: 15 width: 0 height: 0 } node: { title: "d4" level: 14 width: 0 height: 0 } // the edges of the dependence graph edge.color: black edge.thickness: 3 edge.priority: 0 edge.linestyle: solid edge.arrowstyle: solid edge.arrowsize: 15 edge.arrowcolor: blue edge.backarrowcolor: blue edge: { sourcename: "First Edition" targetname: "Fifth Edition" priority: 200 thickness: 5 color: red arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "Fifth Edition" targetname: "Sixth Edition" priority: 200 thickness: 5 color: red arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "Sixth Edition" targetname: "MERT" } edge: { sourcename: "Sixth Edition" targetname: "PWB" } edge: { sourcename: "Sixth Edition" targetname: "UNIX" } edge: { sourcename: "Sixth Edition" targetname: "Seventh Edition" priority: 200 thickness: 5 horizontal_order: 6 color: red arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "Sixth Edition" targetname: "1BSD" } edge: { sourcename: "MERT" targetname: "UNIX/RT" priority: 200 thickness: 5 } edge: { sourcename: "PWB" targetname: "3.0" priority: 200 thickness: 5 } edge: { sourcename: "CB" targetname: "4.0.1" horizontal_order: 3 } edge: { sourcename: "1BSD" targetname: "2BSD" priority: 200 thickness: 5 color: green arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "UNIX/RT" targetname: "3.0" } edge: { sourcename: "Seventh Edition" targetname: "3.0" } edge: { sourcename: "Seventh Edition" targetname: "32V" priority: 100 } edge: { sourcename: "32V" targetname: "3.0" } edge: { sourcename: "32V" targetname: "3BSD" } edge: { sourcename: "2BSD" targetname: "3BSD" } edge: { sourcename: "2BSD" targetname: "2.8BSD" priority: 200 thickness: 5 color: green arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "3BSD" targetname: "4.0BSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "3.0" targetname: "3.0.1" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.0BSD" targetname: "4.1BSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } bentnearedge: { sourcename: "3.0.1" targetname: "System III" } edge: { sourcename: "3.0.1" targetname: "4.0.1" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1BSD" targetname: "5.0" horizontal_order: 3 } edge: { sourcename: "4.1BSD" targetname: "Eighth Edition" horizontal_order: 4 } edge: { sourcename: "4.1BSD" targetname: "4.1aBSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1BSD" targetname: "2.8BSD" } edge: { sourcename: "4.0.1" targetname: "5.0" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1aBSD" targetname: "4.1cBSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1aBSD" targetname: "2.9BSD" } bentnearedge: { sourcename: "5.0" targetname: "System V" } edge: { sourcename: "5.0" targetname: "5.2" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1cBSD" targetname: "4.2BSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.1cBSD" targetname: "2.9BSD" } edge: { sourcename: "2.8BSD" targetname: "2.9BSD" priority: 200 thickness: 5 color: green arrowcolor: blue backarrowcolor: blue } bentnearedge: { sourcename: "5.2" targetname: "System V\nRelease 2" } edge: { sourcename: "5.2" targetname: "5.3" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "Eighth Edition" targetname: "5.3" } edge: { sourcename: "Eighth Edition" targetname: "Ninth Edition" priority: 200 thickness: 5 color:red arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.2BSD" targetname: "5.3" } edge: { sourcename: "4.2BSD" targetname: "Ninth Edition" } edge: { sourcename: "4.2BSD" targetname: "4.3BSD" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "2.9BSD" targetname: "2.10BSD" priority: 200 thickness: 5 color: green arrowcolor: blue backarrowcolor: blue } bentnearedge: { sourcename: "5.3" targetname: "System V\nRelease 3" } edge: { sourcename: "5.3" targetname: "5.4" priority: 200 thickness: 5 color: blue arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.3BSD" targetname: "Ninth Edition" } edge: { sourcename: "4.3BSD" targetname: "5.4" } edge: { sourcename: "4.3BSD" targetname: "4.3BSD Tahoe" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.3BSD" targetname: "2.10BSD" } bentnearedge: { sourcename: "5.4" targetname: "System V\nRelease 4" } edge: { sourcename: "5.4" targetname: "d1" priority: 200 thickness: 5 } edge: { sourcename: "Ninth Edition" targetname: "d2" priority: 200 thickness: 5 color: red arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "4.3BSD Tahoe" targetname: "d3" priority: 200 thickness: 5 color: darkgreen arrowcolor: blue backarrowcolor: blue } edge: { sourcename: "2.10BSD" targetname: "d4" priority: 200 thickness: 5 color: green arrowcolor: blue backarrowcolor: blue } // Some invisible edges to make the graph connected // and to adjust some important lines edge: { sourcename: "1969" targetname: "MERT" linestyle: invisible priority: 0 } edge: { sourcename: "System III" targetname: "System V" linestyle: invisible priority: 200 } edge: { sourcename: "System V" targetname: "System V\nRelease 2" linestyle: invisible priority: 200 } edge: { sourcename: "System V\nRelease 2" targetname: "System V\nRelease 3" linestyle: invisible priority: 200 } edge: { sourcename: "System V\nRelease 3" targetname: "System V\nRelease 4" linestyle: invisible priority: 200 } edge: { sourcename: "Seventh Edition" targetname: "Eighth Edition" linestyle: invisible priority: 200 horizontal_order: 5 } }