This commit is contained in:
Costa Shulyupin 2019-11-21 18:31:50 +02:00
parent dc92bd329f
commit 3dfbd59280
1 changed files with 528 additions and 601 deletions

View File

@ -5,20 +5,17 @@ digraph matrix {
ranksep=0.1, ranksep=0.1,
splines=false splines=false
]; ];
node [height=0.3,
width=1.1
];
edge [arrowhead=none, edge [arrowhead=none,
arrowsize=0.5, arrowsize=0.5,
style=invis, style=invis,
weight=1 weight=1
]; ];
{
node [fixedsize=true, node [fixedsize=true,
style=invis, style=invis,
width=0.3 width=0,
fixedsize=true height=0,
]; ];
{
usr_ usr_
functions_ functions_
D0 D0
@ -27,34 +24,31 @@ digraph matrix {
G0 G0
H0 H0
} }
{ // {
node [fixedsize=true,
style=invis,
width=0.0
height=0.0
];
row=subfunc;
system_; system_;
networking_; networking_;
storage_; storage_;
memory_; memory_;
processing_; processing_;
HI_; HI_;
} // }
{ node [height=0.3,
width=1.1,
shape=box,
height=0.5,
style="filled,setlinewidth(3)",
fixedsize=false
];
edge [style="filled,setlinewidth(3)", edge [style="filled,setlinewidth(3)",
weight=10 weight=10
]; ];
{ {
node [color="#e27dd6ff", node [color="#e27dd6ff",
height=0.5
shape=box,
style="filled,setlinewidth(3)",
]; ];
system [color="#e27dd6ff", system [color="#e27dd6ff",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
height=0.5, height=0.3,
row=func, row=func,
tooltip=TODO, tooltip=TODO,
width=1]; width=1];
@ -62,18 +56,15 @@ digraph matrix {
SCI [color="#e27dd6ff", SCI [color="#e27dd6ff",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
height=0.5,
label="System calls", label="System calls",
row=usr, row=usr,
shape=ellipse, shape=ellipse,
]; ];
system -> system_ [arrowhead="", system -> system_ [arrowhead="",
color="#e27dd6ff", color="#e27dd6ff",
row=func, row=func];
weight=10];
sysfs [color="#e27dd6ff", sysfs [color="#e27dd6ff",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5,
label="proc, sysfs,\nfile systems", label="proc, sysfs,\nfile systems",
]; ];
SCI -> sysfs [color="#e27dd6ff", SCI -> sysfs [color="#e27dd6ff",
@ -91,14 +82,12 @@ digraph matrix {
log_sys [color="#e27dd6ff", log_sys [color="#e27dd6ff",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
fontsize=10, fontsize=10,
height=0.5,
label="system run,\nmodules,\ngeneric\nHW access ", label="system run,\nmodules,\ngeneric\nHW access ",
]; ];
DM -> log_sys [color="#e27dd6ff", DM -> log_sys [color="#e27dd6ff",
weight=10]; weight=10];
bus_drv [color="#e27dd6ff", bus_drv [color="#e27dd6ff",
fillcolor="#71809b", fillcolor="#71809b",
height=0.5,
label="bus drivers", label="bus drivers",
]; ];
log_sys -> bus_drv [color="#e27dd6ff", log_sys -> bus_drv [color="#e27dd6ff",
@ -107,7 +96,6 @@ digraph matrix {
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
height=0.5,
label="busess:\nPCI, USB ...", label="busess:\nPCI, USB ...",
row=chip, row=chip,
]; ];
@ -116,21 +104,17 @@ digraph matrix {
} }
{ {
node [color="#61c2c5", node [color="#61c2c5",
height=0.5
]; ];
edge [color="#61c2c5"]; edge [color="#61c2c5"];
networking [color="#61c2c5", networking [color="#61c2c5",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
height=0.5,
row=func, row=func,
shape=box,
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
width=1]; width=1];
sock [color="#61c2c5", sock [color="#61c2c5",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
height=0.5,
label=Sockets, label=Sockets,
row=usr, row=usr,
shape=ellipse, shape=ellipse,
@ -142,18 +126,14 @@ digraph matrix {
weight=10]; weight=10];
prot_fam [color="#61c2c5", prot_fam [color="#61c2c5",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5,
label="protocol\nfamilies", label="protocol\nfamilies",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
sock -> prot_fam [color="#61c2c5", sock -> prot_fam [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=10]; weight=10];
log_prot [color="#61c2c5", log_prot [color="#61c2c5",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
height=0.5,
label="protocols:\nTCP, UDP, IP", label="protocols:\nTCP, UDP, IP",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
prot_fam -> log_prot [color="#61c2c5", prot_fam -> log_prot [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -161,9 +141,7 @@ digraph matrix {
netif [color="#61c2c5", netif [color="#61c2c5",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
height=0.5,
label="network\ninterfaces\nand drivers", label="network\ninterfaces\nand drivers",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
log_prot -> netif [color="#61c2c5", log_prot -> netif [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -172,10 +150,8 @@ digraph matrix {
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
height=0.5,
label="network:\nEthernet, WiFi ...", label="network:\nEthernet, WiFi ...",
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
netif -> net_hw [color="#61c2c5", netif -> net_hw [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -194,22 +170,18 @@ digraph matrix {
} }
{ {
node [color="#8383cc", node [color="#8383cc",
height=0.5
]; ];
edge [color="#8383cc"]; edge [color="#8383cc"];
NFS; NFS;
storage [color="#8383cc", storage [color="#8383cc",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
height=0.5,
row=func, row=func,
shape=box,
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
width=1]; width=1];
FS [color="#8383cc", FS [color="#8383cc",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
height=0.5,
label="files and\ndirectories", label="files and\ndirectories",
row=usr, row=usr,
shape=ellipse, shape=ellipse,
@ -221,9 +193,7 @@ digraph matrix {
weight=10]; weight=10];
VFS [color="#8383cc", VFS [color="#8383cc",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5,
label="Virtual\nFile System", label="Virtual\nFile System",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
FS -> VFS [color="#8383cc", FS -> VFS [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -234,9 +204,7 @@ digraph matrix {
logFS [color="#8383cc", logFS [color="#8383cc",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
fontsize=10, fontsize=10,
height=0.5,
label="logical\nfilesystems:\next3, xfs ...", label="logical\nfilesystems:\next3, xfs ...",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
VFS -> logFS [color="#8383cc", VFS -> logFS [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -268,18 +236,14 @@ digraph matrix {
block [color="#8383cc", block [color="#8383cc",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
height=0.5,
label="Block\ndevices\nand drivers", label="Block\ndevices\nand drivers",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
logFS -> block [color="#8383cc", logFS -> block [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=10]; weight=10];
PA [color="#51bf5b", PA [color="#51bf5b",
fillcolor="#71809b", fillcolor="#71809b",
height=0.5,
label="Page\nAllocator", label="Page\nAllocator",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
PC -> PA [color="#51bf5b", PC -> PA [color="#51bf5b",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -288,10 +252,8 @@ digraph matrix {
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
height=0.5,
label="storage devices:\nSCSI, NVMe ...", label="storage devices:\nSCSI, NVMe ...",
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
block -> H4 [color="#8383cc", block -> H4 [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -299,7 +261,6 @@ digraph matrix {
SW [color="#8383cc", SW [color="#8383cc",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
height=0.5,
label=Swap, label=Swap,
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -310,21 +271,17 @@ digraph matrix {
} }
{ {
node [color="#c46747", node [color="#c46747",
height=0.5
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
]; ];
edge [color="#c46747"]; edge [color="#c46747"];
processing [color="#c46747", processing [color="#c46747",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
height=0.5,
row=func, row=func,
shape=box,
width=1]; width=1];
proc [color="#c46747", proc [color="#c46747",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
height=0.5,
label=Processes, label=Processes,
row=usr, row=usr,
shape=ellipse, shape=ellipse,
@ -336,8 +293,6 @@ digraph matrix {
weight=10]; weight=10];
Tasks [color="#c46747", Tasks [color="#c46747",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
proc -> Tasks [color="#c46747", proc -> Tasks [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -346,7 +301,6 @@ digraph matrix {
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
fontsize=10, fontsize=10,
height=0.5,
label=synchronization, label=synchronization,
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
@ -355,9 +309,7 @@ digraph matrix {
weight=10]; weight=10];
sched [color="#c46747", sched [color="#c46747",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
height=0.5,
label=Scheduler, label=Scheduler,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
sync -> sched [color="#c46747", sync -> sched [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -365,9 +317,7 @@ digraph matrix {
IRQ [color="#c46747", IRQ [color="#c46747",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
height=0.5,
label="interrupts\ncore,\nCPU arch", label="interrupts\ncore,\nCPU arch",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
sched -> IRQ [color="#c46747", sched -> IRQ [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -376,9 +326,7 @@ digraph matrix {
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
height=0.5,
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
IRQ -> CPU [color="#c46747", IRQ -> CPU [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -386,22 +334,18 @@ digraph matrix {
} }
{ {
node [color="#cfbf57ff", node [color="#cfbf57ff",
height=0.5
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
]; ];
edge [color="#cfbf57ff"]; edge [color="#cfbf57ff"];
HI [color="#cfbf57ff", HI [color="#cfbf57ff",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
height=0.5,
label="human\ninterface", label="human\ninterface",
row=func, row=func,
shape=box,
width=1]; width=1];
char [color="#cfbf57ff", char [color="#cfbf57ff",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
height=0.5,
label="char\ndevices", label="char\ndevices",
row=usr, row=usr,
shape=ellipse, shape=ellipse,
@ -413,18 +357,14 @@ digraph matrix {
weight=10]; weight=10];
input [color="#cfbf57ff", input [color="#cfbf57ff",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5,
label="input\nsubsystem", label="input\nsubsystem",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
char -> input [color="#cfbf57ff", char -> input [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=10]; weight=10];
F7 [color="#cfbf57ff", F7 [color="#cfbf57ff",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
height=0.5,
label="HI class\ndrivers", label="HI class\ndrivers",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
input -> F7 [color="#cfbf57ff", input -> F7 [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -432,9 +372,7 @@ digraph matrix {
G7 [color="#cfbf57ff", G7 [color="#cfbf57ff",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
height=0.5,
label="HI\nperipherals\ndrivers", label="HI\nperipherals\ndrivers",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
F7 -> G7 [color="#cfbf57ff", F7 -> G7 [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -443,16 +381,14 @@ digraph matrix {
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
height=0.5,
label="display, keyboard,\nmouse, audio", label="display, keyboard,\nmouse, audio",
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
G7 -> H7 [color="#cfbf57ff", G7 -> H7 [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=10]; weight=10];
} }
subgraph xcluster_layers { {
usr_; usr_;
D0; D0;
E0; E0;
@ -464,12 +400,10 @@ digraph matrix {
fixedsize=true, fixedsize=true,
height=0.5, height=0.5,
row=func, row=func,
shape=box,
style=dashed, style=dashed,
width=0.8]; width=0.8];
layers [fillcolor=lightgray, layers [fillcolor=lightgray,
height=0.1, height=0.1,
shape=box,
style="filled,setlinewidth(0)", style="filled,setlinewidth(0)",
width=0.5]; width=0.5];
functions -> layers [style=invis, functions -> layers [style=invis,
@ -493,7 +427,6 @@ digraph matrix {
virt [fillcolor="#b2d3e4", virt [fillcolor="#b2d3e4",
height=0.5, height=0.5,
label="virtual\nsubsystems", label="virtual\nsubsystems",
shape=box,
style="filled,setlinewidth(0)"]; style="filled,setlinewidth(0)"];
usr -> virt [color="#d9e7eeff", usr -> virt [color="#d9e7eeff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -517,7 +450,6 @@ digraph matrix {
weight=""]; weight=""];
logical [fillcolor="#6a9ab1", logical [fillcolor="#6a9ab1",
height=0.5, height=0.5,
shape=box,
style="filled,setlinewidth(0)"]; style="filled,setlinewidth(0)"];
bridges -> logical [color="#91b5c9", bridges -> logical [color="#91b5c9",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -531,7 +463,6 @@ digraph matrix {
HWI [fillcolor="#71809b", HWI [fillcolor="#71809b",
height=0.5, height=0.5,
label="hardware\ninterfaces", label="hardware\ninterfaces",
shape=box,
style="filled,setlinewidth(0)"]; style="filled,setlinewidth(0)"];
logical -> HWI [color="#6a9ab1", logical -> HWI [color="#6a9ab1",
row=logical, row=logical,
@ -548,7 +479,6 @@ digraph matrix {
height=0.5, height=0.5,
label="electronics,\nhardware", label="electronics,\nhardware",
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(0)"]; style="filled,setlinewidth(0)"];
HWI -> HW [color="#71809b", HWI -> HW [color="#71809b",
row=HWI, row=HWI,
@ -576,7 +506,6 @@ digraph matrix {
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
height=0.5, height=0.5,
label="logical\nmemory", label="logical\nmemory",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
mmap -> log_mem [color="#51bf5b", mmap -> log_mem [color="#51bf5b",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -589,7 +518,6 @@ digraph matrix {
height=0.5, height=0.5,
label="MMU, RAM", label="MMU, RAM",
row=chip, row=chip,
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
PA -> H5 [color="#51bf5b", PA -> H5 [color="#51bf5b",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -602,7 +530,6 @@ digraph matrix {
fixedsize=true, fixedsize=true,
height=0.5, height=0.5,
row=func, row=func,
shape=box,
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
width=1]; width=1];
MA [color="#51bf5b", MA [color="#51bf5b",
@ -622,7 +549,6 @@ digraph matrix {
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
height=0.5, height=0.5,
label="Virtual\nmemory", label="Virtual\nmemory",
shape=box,
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
MA -> VM [color="#51bf5b", MA -> VM [color="#51bf5b",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -631,9 +557,9 @@ digraph matrix {
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=10]; weight=10];
} }
}
{ {
graph [rank=same]; graph [rank=same];
edge [weight=10 style=invis];
functions_; functions_;
system; system;
functions_ -> system; functions_ -> system;
@ -733,5 +659,6 @@ digraph matrix {
LKD [fontsize=20, LKD [fontsize=20,
label="Linux kernel diagram", label="Linux kernel diagram",
shape=plain]; shape=plain];
edge [weight=10 style=invis];
LKD -> storage; LKD -> storage;
} }