diff --git a/Linux_kernel_diagram.dot b/Linux_kernel_diagram.dot index 30877a8..6860b2f 100644 --- a/Linux_kernel_diagram.dot +++ b/Linux_kernel_diagram.dot @@ -19,7 +19,7 @@ digraph matrix { weight=10, style="filled,setlinewidth(5)" ]; - { + subgraph system { node [color="#e27dd6ff"]; system_ [color="#e27dd6ff", fixedsize=true, @@ -67,15 +67,15 @@ digraph matrix { fillcolor="#71809b", label="bus drivers"]; log_sys -> bus_drv [color="#e27dd6ff"]; - H2 [color="#e27dd6ff", + buses [color="#e27dd6ff", fillcolor="#777777", fontcolor=white, fontsize=20, - label="busess:\nPCI, USB ...", + label="buses:\nPCI, USB ...", row=chip]; - bus_drv -> H2 [color="#e27dd6ff"]; + bus_drv -> buses [color="#e27dd6ff"]; } - { + subgraph networking { node [color="#61c2c5"]; edge [color="#61c2c5"]; networking_ [color="#61c2c5", @@ -131,7 +131,7 @@ digraph matrix { NFS -> log_prot [color="#61c2c5", weight=0]; } - { + subgraph storage { node [color="#8383cc"]; edge [color="#8383cc"]; NFS; @@ -176,8 +176,8 @@ digraph matrix { label="page\ncache", shape=octagon, width=1.2]; - VFS -> PC [color="#8383cc", - weight=0]; + PC -> PA [color="#51bf5b", weight=0]; + VFS -> PC [color="#8383cc", weight=0]; mmap [color="#51bf5b", fillcolor="#91b5c9", fixedsize=true, @@ -196,15 +196,13 @@ digraph matrix { PA [color="#51bf5b", fillcolor="#71809b", label="Page\nAllocator"]; - PC -> PA [color="#51bf5b", - weight=0]; - H4 [color="#8383cc", + SD [color="#8383cc", fillcolor="#777777", fontcolor=white, fontsize=20, label="storage devices:\nSCSI, NVMe ...", row=chip]; - block -> H4 [color="#8383cc"]; + block -> SD [color="#8383cc"]; SW [color="#8383cc", fillcolor="#91b5c9", fixedsize=true, @@ -214,8 +212,8 @@ digraph matrix { width=1.2]; SW -> block [color="#8383cc", weight=0]; - } - { + } // storge + subgraph processing { node [color="#c46747"]; edge [color="#c46747"]; processing_ [color="#c46747", @@ -268,8 +266,8 @@ digraph matrix { fontsize=20, row=chip]; IRQ -> CPU [color="#c46747"]; - } - { + } // processing + subgraph HI { node [color="#cfbf57ff", ]; @@ -315,15 +313,15 @@ digraph matrix { label="HI\nperipherals\ndrivers"]; F7 -> HID [color="#cfbf57ff" ]; - H7 [color="#cfbf57ff", + display [color="#cfbf57ff", fillcolor="#777777", fontcolor=white, - fontsize=20, - label="display, keyboard,\nmouse, audio", + fontsize=19, + label="keyboard, mouse,\ndisplay, audio", row=chip]; - HID -> H7 [color="#cfbf57ff" ]; - } - { + HID -> display [color="#cfbf57ff" ]; + } // HI + subgraph functions { graph [rank=same]; edge [style=invis, weight=1 @@ -365,7 +363,7 @@ digraph matrix { style="", weight=""]; } - { + subgraph interfaces { graph [rank=same]; SCI; sock; @@ -391,9 +389,7 @@ digraph matrix { shape=ellipse]; } { - edge [style=invis, - weight=10 - ]; + edge [style=invis weight=10 ]; system_; SCI; system_ -> SCI; @@ -417,7 +413,7 @@ digraph matrix { width=0]; memory_ -> MA; } - { + subgraph virtual { graph [rank=same]; sysfs; prot_fam; @@ -438,8 +434,13 @@ digraph matrix { fillcolor="#b2d3e4", label="Virtual\nmemory"]; } - { + subgraph bridges { graph [rank=same]; + bridges [fillcolor="#91b5c9", + shape=octagon, + tooltip="bridges between uniform virtual interfaces and various implementations", + URL="https://en.wikipedia.org/wiki/Bridge_pattern", + style="filled,setlinewidth(0)"]; DM; NFS; mmap; @@ -449,13 +450,8 @@ digraph matrix { shape=point, style=invis, width=0]; - bridges [fillcolor="#91b5c9", - shape=octagon, - tooltip="bridges between uniform virtual interfaces and various implementations", - URL="https://en.wikipedia.org/wiki/Bridge_pattern", - style="filled,setlinewidth(0)"]; } - { + subgraph logical { graph [rank=same]; log_sys; log_prot; @@ -473,8 +469,11 @@ digraph matrix { fillcolor="#6a9ab1", label="logical\nmemory"]; } - { + subgraph HWI { graph [rank=same]; + HWI [fillcolor="#71809b", + label="hardware\ninterfaces", + style="filled,setlinewidth(0)"]; bus_drv; netif; block; @@ -486,28 +485,25 @@ digraph matrix { shape=point, style=invis, width=0]; - HWI [fillcolor="#71809b", - label="hardware\ninterfaces", - style="filled,setlinewidth(0)"]; } - { + subgraph HW { graph [rank=same]; - H2; - net_hw; - H4; - CPU; - H7; - H0 [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; HW [fillcolor="#777777", fontcolor=white, label="electronics,\nhardware", row=chip, style="filled,setlinewidth(0)"]; - H5 [color="#51bf5b", + buses; + net_hw; + SD; + CPU; + display; + H0 [fixedsize=true, + height=0, + shape=point, + style=invis, + width=0]; + RAM [color="#51bf5b", fillcolor="#777777", fontcolor=white, fontsize=20, @@ -519,28 +515,18 @@ digraph matrix { height=0.5 ]; edge [color="#51bf5b"]; - PC; - mmap; - SW; mmap -> SW [color="#51bf5b", weight=0]; - log_mem; mmap -> log_mem [color="#51bf5b"]; - PA; - H5; - PA -> H5 [color="#51bf5b"]; - memory; - memory_; + PA -> RAM [color="#51bf5b"]; memory -> memory_ [arrowhead="", color="#51bf5b", row=func]; - MA; - VM; MA -> VM [color="#51bf5b"]; VM -> mmap [color="#51bf5b"]; log_mem -> PA [color="#51bf5b"]; } - bottom [label="© 2007-2020 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", + bottom [label="© 2007-2021 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", shape=plaintext, style=""]; H4 -> bottom [style=invis];