From 06be450d8c5c4c91342f9d930b3b085868533043 Mon Sep 17 00:00:00 2001 From: Costa Shulyupin Date: Thu, 21 Nov 2019 18:32:36 +0200 Subject: [PATCH] gvpr --- Linux_kernel_diagram.dot | 826 ++++++++++++++++++--------------------- 1 file changed, 385 insertions(+), 441 deletions(-) diff --git a/Linux_kernel_diagram.dot b/Linux_kernel_diagram.dot index 047fe77..bd05d1e 100644 --- a/Linux_kernel_diagram.dot +++ b/Linux_kernel_diagram.dot @@ -1,75 +1,51 @@ digraph matrix { graph [newrank=true, - nodesep=0.1, - overlap=true, - ranksep=0.1, - splines=false + nodesep=0.1, + overlap=true, + ranksep=0.1, + splines=false + ]; + node [fixedsize=false, + height=0.5, + shape=box, + style="filled,setlinewidth(3)", + width=1.1 ]; edge [arrowhead=none, - arrowsize=0.5, - style=invis, - weight=1 - ]; - node [fixedsize=true, - style=invis, - width=0, - height=0, + arrowsize=0.5, + style=invis, + weight=10 ]; { - 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 - ]; - { - node [color="#e27dd6ff", - ]; - system [color="#e27dd6ff", + node [color="#e27dd6ff"]; + system_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; + system [color="#e27dd6ff", fillcolor=white, fixedsize=true, height=0.3, row=func, tooltip=TODO, width=1]; - system_; - SCI [color="#e27dd6ff", + system -> system_ [arrowhead="", + color="#e27dd6ff", + row=func, + style="filled,setlinewidth(3)"]; + SCI [color="#e27dd6ff", fillcolor="#d9e7ee", fixedsize=true, label="System calls", row=usr, - shape=ellipse, - ]; - system -> system_ [arrowhead="", - color="#e27dd6ff", - row=func]; - sysfs [color="#e27dd6ff", + shape=ellipse]; + sysfs [color="#e27dd6ff", fillcolor="#b2d3e4", - label="proc, sysfs,\nfile systems", - ]; - SCI -> sysfs [color="#e27dd6ff", - weight=10]; - DM [color="#e27dd6ff", + label="proc, sysfs,\nfile systems"]; + SCI -> sysfs [color="#e27dd6ff", + style="filled,setlinewidth(3)"]; + DM [color="#e27dd6ff", fillcolor="#91b5c9", fixedsize=true, fontsize=10, @@ -77,588 +53,556 @@ digraph matrix { label="Device\nModel", shape=octagon, width=1]; - sysfs -> DM [color="#e27dd6ff", - weight=10]; - log_sys [color="#e27dd6ff", + sysfs -> DM [color="#e27dd6ff", + style="filled,setlinewidth(3)"]; + log_sys [color="#e27dd6ff", fillcolor="#6a9ab1", fontsize=10, - label="system run,\nmodules,\ngeneric\nHW access ", - ]; - DM -> log_sys [color="#e27dd6ff", - weight=10]; - bus_drv [color="#e27dd6ff", + label="system run,\nmodules,\ngeneric\nHW access "]; + DM -> log_sys [color="#e27dd6ff", + style="filled,setlinewidth(3)"]; + bus_drv [color="#e27dd6ff", fillcolor="#71809b", - label="bus drivers", - ]; - log_sys -> bus_drv [color="#e27dd6ff", - weight=10]; - H2 [color="#e27dd6ff", + label="bus drivers"]; + log_sys -> bus_drv [color="#e27dd6ff", + style="filled,setlinewidth(3)"]; + H2 [color="#e27dd6ff", fillcolor="#777777", fontcolor=white, fontsize=10, label="busess:\nPCI, USB ...", - row=chip, - ]; - bus_drv -> H2 [color="#e27dd6ff", - weight=10]; + row=chip]; + bus_drv -> H2 [color="#e27dd6ff", + style="filled,setlinewidth(3)"]; } { - node [color="#61c2c5", - ]; + node [color="#61c2c5"]; edge [color="#61c2c5"]; - networking [color="#61c2c5", - fillcolor=white, - fixedsize=true, - row=func, - style="filled,setlinewidth(3)", - width=1]; - sock [color="#61c2c5", + networking_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; + networking [color="#61c2c5", + fillcolor=white, + fixedsize=true, + row=func, + width=1]; + networking -> networking_ [arrowhead="", + color="#61c2c5", + row=func, + style="filled,setlinewidth(3)"]; + sock [color="#61c2c5", fillcolor="#d9e7ee", fixedsize=true, label=Sockets, row=usr, - shape=ellipse, + shape=ellipse]; + prot_fam [color="#61c2c5", + fillcolor="#b2d3e4", + label="protocol\nfamilies"]; + sock -> prot_fam [color="#61c2c5", style="filled,setlinewidth(3)"]; - networking -> networking_ [arrowhead="", - color="#61c2c5", - row=func, - style="filled,setlinewidth(3)", - weight=10]; - prot_fam [color="#61c2c5", - fillcolor="#b2d3e4", - label="protocol\nfamilies", - style="filled,setlinewidth(3)"]; - sock -> prot_fam [color="#61c2c5", - style="filled,setlinewidth(3)", - weight=10]; - log_prot [color="#61c2c5", - fillcolor="#6a9ab1", - label="protocols:\nTCP, UDP, IP", - style="filled,setlinewidth(3)"]; - prot_fam -> log_prot [color="#61c2c5", - style="filled,setlinewidth(3)", - weight=10]; - netif [color="#61c2c5", + log_prot [color="#61c2c5", + fillcolor="#6a9ab1", + label="protocols:\nTCP, UDP, IP"]; + prot_fam -> log_prot [color="#61c2c5", + style="filled,setlinewidth(3)"]; + netif [color="#61c2c5", fillcolor="#71809b", fontsize=10, - label="network\ninterfaces\nand drivers", + label="network\ninterfaces\nand drivers"]; + log_prot -> netif [color="#61c2c5", style="filled,setlinewidth(3)"]; - log_prot -> netif [color="#61c2c5", - style="filled,setlinewidth(3)", - weight=10]; - net_hw [color="#61c2c5", + net_hw [color="#61c2c5", fillcolor="#777777", fontcolor=white, fontsize=10, label="network:\nEthernet, WiFi ...", - row=chip, + row=chip]; + netif -> net_hw [color="#61c2c5", style="filled,setlinewidth(3)"]; - netif -> net_hw [color="#61c2c5", - style="filled,setlinewidth(3)", - weight=10]; - NFS [color="#8383cc", + NFS [color="#8383cc", fillcolor="#91b5c9", fixedsize=true, height=0.4, label=NFS, shape=octagon, - style="filled,setlinewidth(3)", width=0.6]; - NFS -> log_prot [color="#61c2c5", - style="filled,setlinewidth(3)", - weight=0]; + NFS -> log_prot [color="#61c2c5", + style="filled,setlinewidth(3)", + weight=0]; } { - node [color="#8383cc", - ]; + node [color="#8383cc"]; edge [color="#8383cc"]; + storage_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; NFS; - storage [color="#8383cc", + storage [color="#8383cc", fillcolor=white, fixedsize=true, row=func, - style="filled,setlinewidth(3)", width=1]; - FS [color="#8383cc", + storage -> storage_ [arrowhead="", + color="#8383cc", + row=func, + style="filled,setlinewidth(3)"]; + FS [color="#8383cc", fillcolor="#d9e7ee", fixedsize=true, label="files and\ndirectories", row=usr, - shape=ellipse, - style="filled,setlinewidth(3)"]; - storage -> storage_ [arrowhead="", - color="#8383cc", - row=func, - style="filled,setlinewidth(3)", - weight=10]; - VFS [color="#8383cc", + shape=ellipse]; + VFS [color="#8383cc", fillcolor="#b2d3e4", - label="Virtual\nFile System", + label="Virtual\nFile System"]; + FS -> VFS [color="#8383cc", style="filled,setlinewidth(3)"]; - FS -> VFS [color="#8383cc", - style="filled,setlinewidth(3)", - weight=10]; - VFS -> NFS [color="#8383cc", - style="filled,setlinewidth(3)", - weight=0]; - logFS [color="#8383cc", + VFS -> NFS [color="#8383cc", + style="filled,setlinewidth(3)", + weight=0]; + logFS [color="#8383cc", fillcolor="#6a9ab1", fontsize=10, - label="logical\nfilesystems:\next3, xfs ...", + label="logical\nfilesystems:\next3, xfs ..."]; + VFS -> logFS [color="#8383cc", style="filled,setlinewidth(3)"]; - VFS -> logFS [color="#8383cc", - style="filled,setlinewidth(3)", - weight=10]; - PC [color="#51bf5b", + PC [color="#51bf5b", fillcolor="#91b5c9", fixedsize=true, fontsize=10, height=0.4, label="page\ncache", shape=octagon, - style="filled,setlinewidth(3)", width=0.6]; - VFS -> PC [color="#8383cc", - style="filled,setlinewidth(3)", - weight=0]; - mmap [color="#51bf5b", + VFS -> PC [color="#8383cc", + style="filled,setlinewidth(3)", + weight=0]; + mmap [color="#51bf5b", fillcolor="#91b5c9", fixedsize=true, fontsize=10, height=0.4, label="memory\nmapping", shape=octagon, - style="filled,setlinewidth(3)", width=1]; - VFS -> mmap [color="#8383cc", - style="filled,setlinewidth(3)", - weight=0]; - block [color="#8383cc", + VFS -> mmap [color="#8383cc", + style="filled,setlinewidth(3)", + weight=0]; + block [color="#8383cc", fillcolor="#71809b", fontsize=10, - label="Block\ndevices\nand drivers", + label="Block\ndevices\nand drivers"]; + logFS -> block [color="#8383cc", style="filled,setlinewidth(3)"]; - logFS -> block [color="#8383cc", - style="filled,setlinewidth(3)", - weight=10]; - PA [color="#51bf5b", + PA [color="#51bf5b", fillcolor="#71809b", - label="Page\nAllocator", - style="filled,setlinewidth(3)"]; - PC -> PA [color="#51bf5b", - style="filled,setlinewidth(3)", - weight=0]; - H4 [color="#8383cc", + label="Page\nAllocator"]; + PC -> PA [color="#51bf5b", + style="filled,setlinewidth(3)", + weight=0]; + H4 [color="#8383cc", fillcolor="#777777", fontcolor=white, fontsize=10, label="storage devices:\nSCSI, NVMe ...", - row=chip, + row=chip]; + block -> H4 [color="#8383cc", style="filled,setlinewidth(3)"]; - block -> H4 [color="#8383cc", - style="filled,setlinewidth(3)", - weight=10]; - SW [color="#8383cc", + SW [color="#8383cc", fillcolor="#91b5c9", fixedsize=true, label=Swap, shape=octagon, - style="filled,setlinewidth(3)", width=0.6]; - SW -> block [color="#8383cc", - style="filled,setlinewidth(3)", - weight=0]; + SW -> block [color="#8383cc", + style="filled,setlinewidth(3)", + weight=0]; } { node [color="#c46747", - style="filled,setlinewidth(3)", + style="filled,setlinewidth(3)" ]; edge [color="#c46747"]; - processing [color="#c46747", - fillcolor=white, - fixedsize=true, - row=func, - width=1]; - proc [color="#c46747", + processing_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; + processing [color="#c46747", + fillcolor=white, + fixedsize=true, + row=func, + width=1]; + processing -> processing_ [arrowhead="", + color="#c46747", + row=func, + style="filled,setlinewidth(3)"]; + proc [color="#c46747", fillcolor="#d9e7ee", fixedsize=true, label=Processes, row=usr, - shape=ellipse, + shape=ellipse]; + Tasks [color="#c46747", + fillcolor="#b2d3e4"]; + proc -> Tasks [color="#c46747", style="filled,setlinewidth(3)"]; - processing -> processing_ [arrowhead="", - color="#c46747", - row=func, - style="filled,setlinewidth(3)", - weight=10]; - Tasks [color="#c46747", - fillcolor="#b2d3e4", - style="filled,setlinewidth(3)"]; - proc -> Tasks [color="#c46747", - style="filled,setlinewidth(3)", - weight=10]; - sync [color="#c46747", + sync [color="#c46747", fillcolor="#91b5c9", fixedsize=true, fontsize=10, label=synchronization, - shape=octagon, + shape=octagon]; + Tasks -> sync [color="#c46747", style="filled,setlinewidth(3)"]; - Tasks -> sync [color="#c46747", - style="filled,setlinewidth(3)", - weight=10]; - sched [color="#c46747", + sched [color="#c46747", fillcolor="#6a9ab1", - label=Scheduler, + label=Scheduler]; + sync -> sched [color="#c46747", style="filled,setlinewidth(3)"]; - sync -> sched [color="#c46747", - style="filled,setlinewidth(3)", - weight=10]; - IRQ [color="#c46747", + IRQ [color="#c46747", fillcolor="#71809b", fontsize=10, - label="interrupts\ncore,\nCPU arch", + label="interrupts\ncore,\nCPU arch"]; + sched -> IRQ [color="#c46747", style="filled,setlinewidth(3)"]; - sched -> IRQ [color="#c46747", - style="filled,setlinewidth(3)", - weight=10]; - CPU [color="#c46747", + CPU [color="#c46747", fillcolor="#777777", fontcolor=white, fontsize=10, - row=chip, + row=chip]; + IRQ -> CPU [color="#c46747", style="filled,setlinewidth(3)"]; - IRQ -> CPU [color="#c46747", - style="filled,setlinewidth(3)", - weight=10]; } { node [color="#cfbf57ff", - style="filled,setlinewidth(3)", + style="filled,setlinewidth(3)" ]; edge [color="#cfbf57ff"]; - HI [color="#cfbf57ff", + HI_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; + HI [color="#cfbf57ff", fillcolor=white, fixedsize=true, label="human\ninterface", row=func, width=1]; - char [color="#cfbf57ff", + HI -> HI_ [arrowhead="", + color="#cfbf57ff", + row=func, + style="filled,setlinewidth(3)"]; + char [color="#cfbf57ff", fillcolor="#d9e7ee", fixedsize=true, label="char\ndevices", row=usr, - shape=ellipse, - style="filled,setlinewidth(3)"]; - HI -> HI_ [arrowhead="", - color="#cfbf57ff", - row=func, - style="filled,setlinewidth(3)", - weight=10]; - input [color="#cfbf57ff", + shape=ellipse]; + input [color="#cfbf57ff", fillcolor="#b2d3e4", - label="input\nsubsystem", + label="input\nsubsystem"]; + char -> input [color="#cfbf57ff", style="filled,setlinewidth(3)"]; - char -> input [color="#cfbf57ff", - style="filled,setlinewidth(3)", - weight=10]; - F7 [color="#cfbf57ff", + F7 [color="#cfbf57ff", fillcolor="#6a9ab1", - label="HI class\ndrivers", + label="HI class\ndrivers"]; + input -> F7 [color="#cfbf57ff", style="filled,setlinewidth(3)"]; - input -> F7 [color="#cfbf57ff", - style="filled,setlinewidth(3)", - weight=10]; - G7 [color="#cfbf57ff", + G7 [color="#cfbf57ff", fillcolor="#71809b", fontsize=10, - label="HI\nperipherals\ndrivers", + label="HI\nperipherals\ndrivers"]; + F7 -> G7 [color="#cfbf57ff", style="filled,setlinewidth(3)"]; - F7 -> G7 [color="#cfbf57ff", - style="filled,setlinewidth(3)", - weight=10]; - H7 [color="#cfbf57ff", + H7 [color="#cfbf57ff", fillcolor="#777777", fontcolor=white, fontsize=10, label="display, keyboard,\nmouse, audio", - row=chip, + row=chip]; + G7 -> H7 [color="#cfbf57ff", style="filled,setlinewidth(3)"]; - 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)"]; - 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]; - edge [weight=10 style=invis]; - functions_; + edge [style=invis, + weight=10 + ]; + functions_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; system; functions_ -> system; networking; system -> networking; storage; networking -> storage; - memory; + memory [color="#51bf5b", + fillcolor=white, + fixedsize=true, + row=func, + width=1]; storage -> memory; processing; HI; processing -> HI; - functions; - functions -> functions_ [arrowhead="", - color=gray, - style="", - weight=""]; + functions [color=gray, + fillcolor=gray, + fixedsize=true, + row=func, + style=dashed, + width=0.8]; + functions -> functions_ [arrowhead="", + color=gray, + style="", + weight=""]; memory -> processing; } { graph [rank=same]; - usr_; + usr_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; SCI; sock; FS; proc; char; - usr; - MA; + usr [fillcolor="#d9e7eeff", + 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]; - system_ -> SCI - networking_ -> sock; + edge [style=invis, + weight=10 + ]; + system_; + SCI; + system_ -> SCI; + networking_; + sock; + networking_ -> sock; + storage_; + FS; storage_ -> FS; + memory_ [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; + MA; memory_ -> MA; + processing_; + proc; processing_ -> proc; + HI_; + char; HI_ -> char; } { graph [rank=same]; - D0; + D0 [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; sysfs; prot_fam; VFS; Tasks; input; - virt; - VM; + virt [fillcolor="#b2d3e4", + label="virtual\nsubsystems", + style="filled,setlinewidth(0)"]; + VM [color="#51bf5b", + fillcolor="#b2d3e4", + label="Virtual\nmemory"]; } { graph [rank=same]; node [fontcolor=white]; - E0; + E0 [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; DM; NFS; mmap; sync; - bridges; + bridges [fillcolor="#91b5c9", + shape=octagon, + style="filled,setlinewidth(0)"]; } { graph [rank=same]; - F0; + F0 [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; log_sys; log_prot; logFS; sched; F7; - logical; - log_mem; + logical [fillcolor="#6a9ab1", + style="filled,setlinewidth(0)"]; + log_mem [color="#51bf5b", + fillcolor="#6a9ab1", + label="logical\nmemory"]; } { graph [rank=same]; - G0; + G0 [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; bus_drv; netif; block; PA; IRQ; G7; - HWI; + HWI [fillcolor="#71809b", + label="hardware\ninterfaces", + style="filled,setlinewidth(0)"]; } { graph [rank=same]; - H0; + H0 [fixedsize=true, + height=0, + shape="", + style=invis, + width=0]; H2; net_hw; H4; CPU; H7; - HW; - H5; + 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]; } - bottom [label="© 2007-2019 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", + 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; + 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", shape=plaintext]; - H4 -> bottom [weight=""]; - LKD [fontsize=20, + 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, label="Linux kernel diagram", shape=plain]; - edge [weight=10 style=invis]; LKD -> storage; }