This commit is contained in:
Costa Shulyupin 2019-11-21 18:32:36 +02:00
parent 3dfbd59280
commit 06be450d8c
1 changed files with 385 additions and 441 deletions

View File

@ -5,46 +5,24 @@ digraph matrix {
ranksep=0.1, ranksep=0.1,
splines=false splines=false
]; ];
node [fixedsize=false,
height=0.5,
shape=box,
style="filled,setlinewidth(3)",
width=1.1
];
edge [arrowhead=none, edge [arrowhead=none,
arrowsize=0.5, arrowsize=0.5,
style=invis, style=invis,
weight=1
];
node [fixedsize=true,
style=invis,
width=0,
height=0,
];
{
usr_
functions_
D0
E0
F0
G0
H0
}
{
system_;
networking_;
storage_;
memory_;
processing_;
HI_;
}
node [height=0.3,
width=1.1,
shape=box,
height=0.5,
style="filled,setlinewidth(3)",
fixedsize=false
];
edge [style="filled,setlinewidth(3)",
weight=10 weight=10
]; ];
{ {
node [color="#e27dd6ff", node [color="#e27dd6ff"];
]; system_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
system [color="#e27dd6ff", system [color="#e27dd6ff",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
@ -52,23 +30,21 @@ digraph matrix {
row=func, row=func,
tooltip=TODO, tooltip=TODO,
width=1]; width=1];
system_; system -> system_ [arrowhead="",
color="#e27dd6ff",
row=func,
style="filled,setlinewidth(3)"];
SCI [color="#e27dd6ff", SCI [color="#e27dd6ff",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
label="System calls", label="System calls",
row=usr, row=usr,
shape=ellipse, shape=ellipse];
];
system -> system_ [arrowhead="",
color="#e27dd6ff",
row=func];
sysfs [color="#e27dd6ff", sysfs [color="#e27dd6ff",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
label="proc, sysfs,\nfile systems", label="proc, sysfs,\nfile systems"];
];
SCI -> sysfs [color="#e27dd6ff", SCI -> sysfs [color="#e27dd6ff",
weight=10]; style="filled,setlinewidth(3)"];
DM [color="#e27dd6ff", DM [color="#e27dd6ff",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
@ -78,137 +54,123 @@ digraph matrix {
shape=octagon, shape=octagon,
width=1]; width=1];
sysfs -> DM [color="#e27dd6ff", sysfs -> DM [color="#e27dd6ff",
weight=10]; style="filled,setlinewidth(3)"];
log_sys [color="#e27dd6ff", log_sys [color="#e27dd6ff",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
fontsize=10, fontsize=10,
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]; style="filled,setlinewidth(3)"];
bus_drv [color="#e27dd6ff", bus_drv [color="#e27dd6ff",
fillcolor="#71809b", fillcolor="#71809b",
label="bus drivers", label="bus drivers"];
];
log_sys -> bus_drv [color="#e27dd6ff", log_sys -> bus_drv [color="#e27dd6ff",
weight=10]; style="filled,setlinewidth(3)"];
H2 [color="#e27dd6ff", H2 [color="#e27dd6ff",
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
label="busess:\nPCI, USB ...", label="busess:\nPCI, USB ...",
row=chip, row=chip];
];
bus_drv -> H2 [color="#e27dd6ff", bus_drv -> H2 [color="#e27dd6ff",
weight=10]; style="filled,setlinewidth(3)"];
} }
{ {
node [color="#61c2c5", node [color="#61c2c5"];
];
edge [color="#61c2c5"]; edge [color="#61c2c5"];
networking_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
networking [color="#61c2c5", networking [color="#61c2c5",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
row=func, row=func,
style="filled,setlinewidth(3)",
width=1]; width=1];
networking -> networking_ [arrowhead="",
color="#61c2c5",
row=func,
style="filled,setlinewidth(3)"];
sock [color="#61c2c5", sock [color="#61c2c5",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
label=Sockets, label=Sockets,
row=usr, row=usr,
shape=ellipse, shape=ellipse];
style="filled,setlinewidth(3)"];
networking -> networking_ [arrowhead="",
color="#61c2c5",
row=func,
style="filled,setlinewidth(3)",
weight=10];
prot_fam [color="#61c2c5", prot_fam [color="#61c2c5",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
label="protocol\nfamilies", label="protocol\nfamilies"];
style="filled,setlinewidth(3)"];
sock -> prot_fam [color="#61c2c5", sock -> prot_fam [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
log_prot [color="#61c2c5", log_prot [color="#61c2c5",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
label="protocols:\nTCP, UDP, IP", label="protocols:\nTCP, UDP, IP"];
style="filled,setlinewidth(3)"];
prot_fam -> log_prot [color="#61c2c5", prot_fam -> log_prot [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
netif [color="#61c2c5", netif [color="#61c2c5",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
label="network\ninterfaces\nand drivers", label="network\ninterfaces\nand drivers"];
style="filled,setlinewidth(3)"];
log_prot -> netif [color="#61c2c5", log_prot -> netif [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
net_hw [color="#61c2c5", net_hw [color="#61c2c5",
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
label="network:\nEthernet, WiFi ...", label="network:\nEthernet, WiFi ...",
row=chip, row=chip];
style="filled,setlinewidth(3)"];
netif -> net_hw [color="#61c2c5", netif -> net_hw [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
NFS [color="#8383cc", NFS [color="#8383cc",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
height=0.4, height=0.4,
label=NFS, label=NFS,
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)",
width=0.6]; width=0.6];
NFS -> log_prot [color="#61c2c5", NFS -> log_prot [color="#61c2c5",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=0]; weight=0];
} }
{ {
node [color="#8383cc", node [color="#8383cc"];
];
edge [color="#8383cc"]; edge [color="#8383cc"];
storage_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
NFS; NFS;
storage [color="#8383cc", storage [color="#8383cc",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
row=func, row=func,
style="filled,setlinewidth(3)",
width=1]; width=1];
storage -> storage_ [arrowhead="",
color="#8383cc",
row=func,
style="filled,setlinewidth(3)"];
FS [color="#8383cc", FS [color="#8383cc",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
label="files and\ndirectories", label="files and\ndirectories",
row=usr, row=usr,
shape=ellipse, shape=ellipse];
style="filled,setlinewidth(3)"];
storage -> storage_ [arrowhead="",
color="#8383cc",
row=func,
style="filled,setlinewidth(3)",
weight=10];
VFS [color="#8383cc", VFS [color="#8383cc",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
label="Virtual\nFile System", label="Virtual\nFile System"];
style="filled,setlinewidth(3)"];
FS -> VFS [color="#8383cc", FS -> VFS [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
VFS -> NFS [color="#8383cc", VFS -> NFS [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=0]; weight=0];
logFS [color="#8383cc", logFS [color="#8383cc",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
fontsize=10, fontsize=10,
label="logical\nfilesystems:\next3, xfs ...", label="logical\nfilesystems:\next3, xfs ..."];
style="filled,setlinewidth(3)"];
VFS -> logFS [color="#8383cc", VFS -> logFS [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
PC [color="#51bf5b", PC [color="#51bf5b",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
@ -216,7 +178,6 @@ digraph matrix {
height=0.4, height=0.4,
label="page\ncache", label="page\ncache",
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)",
width=0.6]; width=0.6];
VFS -> PC [color="#8383cc", VFS -> PC [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -228,7 +189,6 @@ digraph matrix {
height=0.4, height=0.4,
label="memory\nmapping", label="memory\nmapping",
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)",
width=1]; width=1];
VFS -> mmap [color="#8383cc", VFS -> mmap [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -236,15 +196,12 @@ digraph matrix {
block [color="#8383cc", block [color="#8383cc",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
label="Block\ndevices\nand drivers", label="Block\ndevices\nand drivers"];
style="filled,setlinewidth(3)"];
logFS -> block [color="#8383cc", logFS -> block [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
PA [color="#51bf5b", PA [color="#51bf5b",
fillcolor="#71809b", fillcolor="#71809b",
label="Page\nAllocator", label="Page\nAllocator"];
style="filled,setlinewidth(3)"];
PC -> PA [color="#51bf5b", PC -> PA [color="#51bf5b",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
weight=0]; weight=0];
@ -253,17 +210,14 @@ digraph matrix {
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
label="storage devices:\nSCSI, NVMe ...", label="storage devices:\nSCSI, NVMe ...",
row=chip, row=chip];
style="filled,setlinewidth(3)"];
block -> H4 [color="#8383cc", block -> H4 [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
SW [color="#8383cc", SW [color="#8383cc",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
label=Swap, label=Swap,
shape=octagon, shape=octagon,
style="filled,setlinewidth(3)",
width=0.6]; width=0.6];
SW -> block [color="#8383cc", SW -> block [color="#8383cc",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)",
@ -271,308 +225,142 @@ digraph matrix {
} }
{ {
node [color="#c46747", node [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"
]; ];
edge [color="#c46747"]; edge [color="#c46747"];
processing_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
processing [color="#c46747", processing [color="#c46747",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
row=func, row=func,
width=1]; width=1];
processing -> processing_ [arrowhead="",
color="#c46747",
row=func,
style="filled,setlinewidth(3)"];
proc [color="#c46747", proc [color="#c46747",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
label=Processes, label=Processes,
row=usr, row=usr,
shape=ellipse, shape=ellipse];
style="filled,setlinewidth(3)"];
processing -> processing_ [arrowhead="",
color="#c46747",
row=func,
style="filled,setlinewidth(3)",
weight=10];
Tasks [color="#c46747", Tasks [color="#c46747",
fillcolor="#b2d3e4", fillcolor="#b2d3e4"];
style="filled,setlinewidth(3)"];
proc -> Tasks [color="#c46747", proc -> Tasks [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
sync [color="#c46747", sync [color="#c46747",
fillcolor="#91b5c9", fillcolor="#91b5c9",
fixedsize=true, fixedsize=true,
fontsize=10, fontsize=10,
label=synchronization, label=synchronization,
shape=octagon, shape=octagon];
style="filled,setlinewidth(3)"];
Tasks -> sync [color="#c46747", Tasks -> sync [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
sched [color="#c46747", sched [color="#c46747",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
label=Scheduler, label=Scheduler];
style="filled,setlinewidth(3)"];
sync -> sched [color="#c46747", sync -> sched [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
IRQ [color="#c46747", IRQ [color="#c46747",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
label="interrupts\ncore,\nCPU arch", label="interrupts\ncore,\nCPU arch"];
style="filled,setlinewidth(3)"];
sched -> IRQ [color="#c46747", sched -> IRQ [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
CPU [color="#c46747", CPU [color="#c46747",
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
row=chip, row=chip];
style="filled,setlinewidth(3)"];
IRQ -> CPU [color="#c46747", IRQ -> CPU [color="#c46747",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
} }
{ {
node [color="#cfbf57ff", node [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"
]; ];
edge [color="#cfbf57ff"]; edge [color="#cfbf57ff"];
HI_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
HI [color="#cfbf57ff", HI [color="#cfbf57ff",
fillcolor=white, fillcolor=white,
fixedsize=true, fixedsize=true,
label="human\ninterface", label="human\ninterface",
row=func, row=func,
width=1]; width=1];
HI -> HI_ [arrowhead="",
color="#cfbf57ff",
row=func,
style="filled,setlinewidth(3)"];
char [color="#cfbf57ff", char [color="#cfbf57ff",
fillcolor="#d9e7ee", fillcolor="#d9e7ee",
fixedsize=true, fixedsize=true,
label="char\ndevices", label="char\ndevices",
row=usr, row=usr,
shape=ellipse, shape=ellipse];
style="filled,setlinewidth(3)"];
HI -> HI_ [arrowhead="",
color="#cfbf57ff",
row=func,
style="filled,setlinewidth(3)",
weight=10];
input [color="#cfbf57ff", input [color="#cfbf57ff",
fillcolor="#b2d3e4", fillcolor="#b2d3e4",
label="input\nsubsystem", label="input\nsubsystem"];
style="filled,setlinewidth(3)"];
char -> input [color="#cfbf57ff", char -> input [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
F7 [color="#cfbf57ff", F7 [color="#cfbf57ff",
fillcolor="#6a9ab1", fillcolor="#6a9ab1",
label="HI class\ndrivers", label="HI class\ndrivers"];
style="filled,setlinewidth(3)"];
input -> F7 [color="#cfbf57ff", input -> F7 [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
G7 [color="#cfbf57ff", G7 [color="#cfbf57ff",
fillcolor="#71809b", fillcolor="#71809b",
fontsize=10, fontsize=10,
label="HI\nperipherals\ndrivers", label="HI\nperipherals\ndrivers"];
style="filled,setlinewidth(3)"];
F7 -> G7 [color="#cfbf57ff", F7 -> G7 [color="#cfbf57ff",
style="filled,setlinewidth(3)", style="filled,setlinewidth(3)"];
weight=10];
H7 [color="#cfbf57ff", H7 [color="#cfbf57ff",
fillcolor="#777777", fillcolor="#777777",
fontcolor=white, fontcolor=white,
fontsize=10, fontsize=10,
label="display, keyboard,\nmouse, audio", label="display, keyboard,\nmouse, audio",
row=chip, row=chip];
style="filled,setlinewidth(3)"];
G7 -> H7 [color="#cfbf57ff", G7 -> H7 [color="#cfbf57ff",
style="filled,setlinewidth(3)",
weight=10];
}
{
usr_;
D0;
E0;
F0;
G0;
H0;
functions [color=gray,
fillcolor=gray,
fixedsize=true,
height=0.5,
row=func,
style=dashed,
width=0.8];
layers [fillcolor=lightgray,
height=0.1,
style="filled,setlinewidth(0)",
width=0.5];
functions -> layers [style=invis,
weight=10];
usr [fillcolor="#d9e7eeff",
fixedsize=true,
height=0.5,
label="user space\ninterfaces",
row=usr,
shape=ellipse,
style="filled,setlinewidth(0)"];
layers -> usr [arrowhead="",
color=gray,
style="filled,setlinewidth(1)",
weight=10];
usr -> usr_ [arrowhead="",
color="#d9e7eeff",
minlen=2,
style="filled,setlinewidth(3)",
weight=10];
virt [fillcolor="#b2d3e4",
height=0.5,
label="virtual\nsubsystems",
style="filled,setlinewidth(0)"];
usr -> virt [color="#d9e7eeff",
style="filled,setlinewidth(3)",
weight=10];
virt -> D0 [arrowhead="",
color="#b2d3e4",
minlen=2,
style="filled,setlinewidth(3)",
weight=10];
bridges [fillcolor="#91b5c9",
height=0.5,
shape=octagon,
style="filled,setlinewidth(0)"];
virt -> bridges [color="#b2d3e4",
style="filled,setlinewidth(3)",
weight=10];
bridges -> E0 [arrowhead="",
color="#91b5c9",
minlen=2,
style="filled,setlinewidth(3)",
weight=""];
logical [fillcolor="#6a9ab1",
height=0.5,
style="filled,setlinewidth(0)"];
bridges -> logical [color="#91b5c9",
style="filled,setlinewidth(3)",
weight=10];
logical -> F0 [arrowhead="",
color="#6a9ab1",
minlen=2,
row=logical,
style="filled,setlinewidth(3)",
weight=""];
HWI [fillcolor="#71809b",
height=0.5,
label="hardware\ninterfaces",
style="filled,setlinewidth(0)"];
logical -> HWI [color="#6a9ab1",
row=logical,
style="filled,setlinewidth(3)",
weight=10];
HWI -> G0 [arrowhead="",
color="#71809b",
minlen=2,
row=HWI,
style="filled,setlinewidth(3)",
weight=""];
HW [fillcolor="#777777",
fontcolor=white,
height=0.5,
label="electronics,\nhardware",
row=chip,
style="filled,setlinewidth(0)"];
HWI -> HW [color="#71809b",
row=HWI,
style="filled,setlinewidth(3)",
weight=10];
HW -> H0 [arrowhead="",
color="#777777",
minlen=2,
row=chip,
style="filled,setlinewidth(3)",
weight=""];
}
subgraph mem {
node [color="#51bf5b",
height=0.5
];
edge [color="#51bf5b"];
PC;
mmap;
SW;
mmap -> SW [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=0];
log_mem [color="#51bf5b",
fillcolor="#6a9ab1",
height=0.5,
label="logical\nmemory",
style="filled,setlinewidth(3)"]; style="filled,setlinewidth(3)"];
mmap -> log_mem [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=10];
PA;
H5 [color="#51bf5b",
fillcolor="#777777",
fontcolor=white,
fontsize=10,
height=0.5,
label="MMU, RAM",
row=chip,
style="filled,setlinewidth(3)"];
PA -> H5 [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=10];
log_mem -> PA [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=10];
memory [color="#51bf5b",
fillcolor=white,
fixedsize=true,
height=0.5,
row=func,
style="filled,setlinewidth(3)",
width=1];
MA [color="#51bf5b",
fillcolor="#d9e7ee",
fixedsize=true,
height=0.5,
label="memory\naccess",
row=usr,
shape=ellipse,
style="filled,setlinewidth(3)"];
memory -> memory_ [arrowhead="",
color="#51bf5b",
row=func,
style="filled,setlinewidth(3)",
weight=10];
VM [color="#51bf5b",
fillcolor="#b2d3e4",
height=0.5,
label="Virtual\nmemory",
style="filled,setlinewidth(3)"];
MA -> VM [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=10];
VM -> mmap [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=10];
} }
{ {
graph [rank=same]; graph [rank=same];
edge [weight=10 style=invis]; edge [style=invis,
functions_; weight=10
];
functions_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
system; system;
functions_ -> system; functions_ -> system;
networking; networking;
system -> networking; system -> networking;
storage; storage;
networking -> storage; networking -> storage;
memory; memory [color="#51bf5b",
fillcolor=white,
fixedsize=true,
row=func,
width=1];
storage -> memory; storage -> memory;
processing; processing;
HI; HI;
processing -> HI; processing -> HI;
functions; functions [color=gray,
fillcolor=gray,
fixedsize=true,
row=func,
style=dashed,
width=0.8];
functions -> functions_ [arrowhead="", functions -> functions_ [arrowhead="",
color=gray, color=gray,
style="", style="",
@ -581,84 +369,240 @@ digraph matrix {
} }
{ {
graph [rank=same]; graph [rank=same];
usr_; usr_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
SCI; SCI;
sock; sock;
FS; FS;
proc; proc;
char; char;
usr; usr [fillcolor="#d9e7eeff",
MA; fixedsize=true,
label="user space\ninterfaces",
row=usr,
shape=ellipse,
style="filled,setlinewidth(0)"];
MA [color="#51bf5b",
fillcolor="#d9e7ee",
fixedsize=true,
label="memory\naccess",
row=usr,
shape=ellipse];
} }
{ {
edge [weight=10 style=invis]; edge [style=invis,
system_ -> SCI weight=10
];
system_;
SCI;
system_ -> SCI;
networking_;
sock;
networking_ -> sock; networking_ -> sock;
storage_;
FS;
storage_ -> FS; storage_ -> FS;
memory_ [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
MA;
memory_ -> MA; memory_ -> MA;
processing_;
proc;
processing_ -> proc; processing_ -> proc;
HI_;
char;
HI_ -> char; HI_ -> char;
} }
{ {
graph [rank=same]; graph [rank=same];
D0; D0 [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
sysfs; sysfs;
prot_fam; prot_fam;
VFS; VFS;
Tasks; Tasks;
input; input;
virt; virt [fillcolor="#b2d3e4",
VM; label="virtual\nsubsystems",
style="filled,setlinewidth(0)"];
VM [color="#51bf5b",
fillcolor="#b2d3e4",
label="Virtual\nmemory"];
} }
{ {
graph [rank=same]; graph [rank=same];
node [fontcolor=white]; node [fontcolor=white];
E0; E0 [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
DM; DM;
NFS; NFS;
mmap; mmap;
sync; sync;
bridges; bridges [fillcolor="#91b5c9",
shape=octagon,
style="filled,setlinewidth(0)"];
} }
{ {
graph [rank=same]; graph [rank=same];
F0; F0 [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
log_sys; log_sys;
log_prot; log_prot;
logFS; logFS;
sched; sched;
F7; F7;
logical; logical [fillcolor="#6a9ab1",
log_mem; style="filled,setlinewidth(0)"];
log_mem [color="#51bf5b",
fillcolor="#6a9ab1",
label="logical\nmemory"];
} }
{ {
graph [rank=same]; graph [rank=same];
G0; G0 [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
bus_drv; bus_drv;
netif; netif;
block; block;
PA; PA;
IRQ; IRQ;
G7; G7;
HWI; HWI [fillcolor="#71809b",
label="hardware\ninterfaces",
style="filled,setlinewidth(0)"];
} }
{ {
graph [rank=same]; graph [rank=same];
H0; H0 [fixedsize=true,
height=0,
shape="",
style=invis,
width=0];
H2; H2;
net_hw; net_hw;
H4; H4;
CPU; CPU;
H7; H7;
HW; HW [fillcolor="#777777",
fontcolor=white,
label="electronics,\nhardware",
row=chip,
style="filled,setlinewidth(0)"];
H5 [color="#51bf5b",
fillcolor="#777777",
fontcolor=white,
fontsize=10,
label="MMU, RAM",
row=chip];
}
subgraph mem {
node [color="#51bf5b",
height=0.5
];
edge [color="#51bf5b"];
memory_;
PC;
mmap;
SW;
mmap -> SW [color="#51bf5b",
style="filled,setlinewidth(3)",
weight=0];
log_mem;
mmap -> log_mem [color="#51bf5b",
style="filled,setlinewidth(3)"];
PA;
H5; H5;
PA -> H5 [color="#51bf5b",
style="filled,setlinewidth(3)"];
log_mem -> PA [color="#51bf5b",
style="filled,setlinewidth(3)"];
memory;
memory -> memory_ [arrowhead="",
color="#51bf5b",
row=func,
style="filled,setlinewidth(3)"];
MA;
VM;
MA -> VM [color="#51bf5b",
style="filled,setlinewidth(3)"];
VM -> mmap [color="#51bf5b",
style="filled,setlinewidth(3)"];
} }
bottom [label="© 2007-2019 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", bottom [label="© 2007-2019 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram",
shape=plaintext]; shape=plaintext];
H4 -> bottom [weight=""]; H4 -> bottom [style="filled,setlinewidth(3)",
weight=""];
layers [fillcolor=lightgray,
height=0.1,
style="filled,setlinewidth(0)",
width=0.5];
functions -> layers;
layers -> usr [arrowhead="",
color=gray,
style="filled,setlinewidth(1)"];
usr -> usr_ [arrowhead="",
color="#d9e7eeff",
minlen=2,
style="filled,setlinewidth(3)"];
usr -> virt [color="#d9e7eeff",
style="filled,setlinewidth(3)"];
virt -> D0 [arrowhead="",
color="#b2d3e4",
minlen=2,
style="filled,setlinewidth(3)"];
virt -> bridges [color="#b2d3e4",
style="filled,setlinewidth(3)"];
bridges -> E0 [arrowhead="",
color="#91b5c9",
minlen=2,
style="filled,setlinewidth(3)",
weight=""];
bridges -> logical [color="#91b5c9",
style="filled,setlinewidth(3)"];
logical -> F0 [arrowhead="",
color="#6a9ab1",
minlen=2,
row=logical,
style="filled,setlinewidth(3)",
weight=""];
logical -> HWI [color="#6a9ab1",
row=logical,
style="filled,setlinewidth(3)"];
HWI -> G0 [arrowhead="",
color="#71809b",
minlen=2,
row=HWI,
style="filled,setlinewidth(3)",
weight=""];
HWI -> HW [color="#71809b",
row=HWI,
style="filled,setlinewidth(3)"];
HW -> H0 [arrowhead="",
color="#777777",
minlen=2,
row=chip,
style="filled,setlinewidth(3)",
weight=""];
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;
} }