diff --git a/Linux_kernel_diagram.dot b/Linux_kernel_diagram.dot index a3c252c..df64dc4 100644 --- a/Linux_kernel_diagram.dot +++ b/Linux_kernel_diagram.dot @@ -1,379 +1,433 @@ -digraph matrix { - graph [newrank=true, - nodesep=0.3, - ranksep=0.2, - overlap=true, - splines=false, - ]; - node [fixedsize=false, - fontname=Ubuntu - fontsize=24, - height=1, - shape=box, - style="filled,setlinewidth(5)", - width=2.2 - ]; - edge [arrowhead=none, - arrowsize=0.5, - labelfontname="Ubuntu", - weight=10, - style="filled,setlinewidth(5)" - ]; +digraph "Linux_kernel_diagram" { + graph [ + + newrank = true, + nodesep = 0.3, + ranksep = 0.2, + overlap = true, + splines = false, + ] + node [ + fixedsize = false, + fontname = Ubuntu + fontsize = 24, + height = 1, + shape = box, + style = "filled,setlinewidth(5)", + width = 2.2 + ] + edge [ + + arrowhead = none, + arrowsize = 0.5, + labelfontname = "Ubuntu", + weight = 10, + style = "filled,setlinewidth(5)" + ] subgraph system { - node [color="#e27dd6ff"]; - system_ [color="#e27dd6ff", - fixedsize=true, - height=0, - shape=point, - style=invis, - shape=point - ]; - system [color="#e27dd6ff", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/System", - fillcolor=white, - fixedsize=true, - height=0.6, - row=func, - width=2]; - system -> system_ [arrowhead="", - color="#e27dd6ff", - row=func] - SCI [color="#e27dd6ff", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Syscalls", - fillcolor="#d9e7ee", - fixedsize=true, - label="System calls", - row=usr, - shape=ellipse]; - sysfs [color="#e27dd6ff", - fillcolor="#b2d3e4", - label="proc & sysfs\nfile systems"]; - SCI -> sysfs [color="#e27dd6ff"]; - DM [color="#e27dd6ff", - fillcolor="#91b5c9", - fixedsize=true, - fontsize=20, - height=0.8, - label="Device\nModel", - shape=octagon, - width=2]; - sysfs -> DM [color="#e27dd6ff"]; - log_sys [color="#e27dd6ff", - fillcolor="#6a9ab1", - fontsize=20, - label="system run,\nmodules,\ngeneric\nHW access "]; - DM -> log_sys [color="#e27dd6ff"]; - bus_drv [color="#e27dd6ff", - fillcolor="#71809b", - label="bus drivers"]; - log_sys -> bus_drv [color="#e27dd6ff"]; - buses [color="#e27dd6ff", - fillcolor="#777777", - fontcolor=white, - fontsize=20, - label="buses:\nPCI, USB ...", - row=chip]; - bus_drv -> buses [color="#e27dd6ff"]; + node [color = "#e27dd6ff"] + edge [color = "#e27dd6ff"] + system_ [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + shape = point + ] + system [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/System", + fillcolor = white, + fixedsize = true, + height = 0.6, + row = func, + width = 2] + system -> system_ [ + arrowhead = "", + row = func] + SCI [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Syscalls", + fillcolor = "#d9e7ee", + fixedsize = true, + label = "System calls", + row = usr, + shape = ellipse] + sysfs [ + fillcolor = "#b2d3e4", + label = "proc & sysfs\nfile systems"] + SCI -> sysfs + DM [ + fillcolor = "#91b5c9", + fixedsize = true, + fontsize = 20, + height = 0.8, + label = "Device\nModel", + shape = octagon, + width = 2] + sysfs -> DM + log_sys [ + fillcolor = "#6a9ab1", + fontsize = 20, + label = "system run,\nmodules,\ngeneric\nHW access "] + DM -> log_sys + bus_drv [ + fillcolor = "#71809b", + label = "bus drivers"] + log_sys -> bus_drv + buses [ + fillcolor = "#777777", + fontcolor = white, + fontsize = 20, + label = "buses:\nPCI, USB ...", + row = chip] + bus_drv -> buses } subgraph networking { - node [color="#61c2c5"]; - edge [color="#61c2c5"]; - networking_ [color="#61c2c5", - fixedsize=true, - height=0, - shape=point, - style=invis, - shape=point - width=0]; - networking [color="#61c2c5", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Networking", - fillcolor=white, - fixedsize=true, - height=0.6, - row=func, - width=2]; - networking -> networking_ [arrowhead="", - color="#61c2c5", - row=func]; - sock [color="#61c2c5", - fillcolor="#d9e7ee", - fixedsize=true, - label=Sockets, - row=usr, - shape=ellipse]; - prot_fam [color="#61c2c5", - fillcolor="#b2d3e4", - label="protocol\nfamilies"]; - sock -> prot_fam [color="#61c2c5"]; - log_prot [color="#61c2c5", - fillcolor="#6a9ab1", - label="protocols:\nTCP, UDP, IP"]; - prot_fam -> log_prot [color="#61c2c5"]; - netif [color="#61c2c5", - fillcolor="#71809b", - fontsize=20, - label="network\ninterfaces\nand drivers"]; - log_prot -> netif [color="#61c2c5"]; - net_hw [color="#61c2c5", - fillcolor="#777777", - fontcolor=white, - fontsize=20, - label="network:\nEthernet, WiFi ...", - row=chip]; - netif -> net_hw [color="#61c2c5"]; - NFS [color="#8383cc", - fillcolor="#91b5c9", - fixedsize=true, - height=0.8, - label=NFS, - shape=octagon, - width=1.2]; - NFS -> log_prot [color="#61c2c5", - weight=0]; + node [ color = "#61c2c5"] + edge [ color = "#61c2c5"] + networking_ [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + shape = point + width = 0] + networking [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Networking", + fillcolor = white, + fixedsize = true, + height = 0.6, + row = func, + width = 2] + networking -> networking_ [ + arrowhead = "", + row = func] + sock [ + fillcolor = "#d9e7ee", + fixedsize = true, + label = Sockets, + row = usr, + shape = ellipse] + prot_fam [ + fillcolor = "#b2d3e4", + label = "protocol\nfamilies"] + sock -> prot_fam + log_prot [ + fillcolor = "#6a9ab1", + label = "protocols:\nTCP, UDP, IP"] + prot_fam -> log_prot + netif [ + fillcolor = "#71809b", + fontsize = 20, + label = "network\ninterfaces\nand drivers"] + log_prot -> netif + net_hw [ + fillcolor = "#777777", + fontcolor = white, + fontsize = 20, + label = "network:\nEthernet, WiFi ...", + row = chip] + netif -> net_hw + NFS [ + color = "#8383cc", + fillcolor = "#91b5c9", + fixedsize = true, + height = 0.8, + label = NFS, + shape = octagon, + width = 1.2] + NFS -> log_prot [ weight = 0] } - subgraph storage { - node [color="#8383cc"]; - edge [color="#8383cc"]; - NFS; - storage_ [color="#8383cc", - shape=point - fixedsize=true, - height=0, - style=invis, - width=0]; - storage [color="#8383cc", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Storage", - fillcolor=white, - fixedsize=true, - height=0.6, - row=func, - width=2]; - storage -> storage_ [arrowhead="", - color="#8383cc", - row=func]; - FS [color="#8383cc", - fillcolor="#d9e7ee", - fixedsize=true, - label="files and\ndirectories", - row=usr, - shape=ellipse]; - VFS [color="#8383cc", - fillcolor="#b2d3e4", - label="Virtual\nFile System"]; - FS -> VFS [color="#8383cc"]; - VFS -> NFS [color="#8383cc", - weight=0]; - logFS [color="#8383cc", - fillcolor="#6a9ab1", - fontsize=20, - label="logical\nfilesystems:\next3, xfs ..."]; - VFS -> logFS [color="#8383cc"]; - PC [color="#51bf5b", - fillcolor="#91b5c9", - fixedsize=true, - fontsize=20, - height=0.8, - label="page\ncache", - shape=octagon, - width=1.2]; - PC -> PA [color="#51bf5b", weight=0]; - VFS -> PC [color="#8383cc", weight=0]; - mmap [color="#51bf5b", - fillcolor="#91b5c9", - fixedsize=true, - fontsize=20, - height=0.8, - label="memory\nmapping", - shape=octagon, - width=2]; - VFS -> mmap [color="#8383cc", - weight=0]; - block [color="#8383cc", - fillcolor="#71809b", - fontsize=20, - label="Block\ndevices\nand drivers"]; - logFS -> block [color="#8383cc"]; - SD [color="#8383cc", - fillcolor="#777777", - fontcolor=white, - fontsize=20, - label="storage devices:\nSCSI, NVMe ...", - row=chip]; - block -> SD [color="#8383cc"]; - } // storge subgraph processing { - node [color="#c46747"]; - edge [color="#c46747"]; - processing_ [color="#c46747", - fixedsize=true, - height=0, - shape=point - style=invis, - width=0]; - processing [color="#c46747", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Processing", - fillcolor=white, - fixedsize=true, - height=0.6, - row=func, - width=2]; - processing -> processing_ [arrowhead="", - color="#c46747", - row=func]; - proc [color="#c46747", - fillcolor="#d9e7ee", - fixedsize=true, - label=Processes, - row=usr, - shape=ellipse]; - Tasks [color="#c46747", - fillcolor="#b2d3e4"]; - proc -> Tasks [color="#c46747"]; - sync [color="#c46747", - fillcolor="#91b5c9", - fixedsize=true, - fontsize=20, - fontname="Ubuntu Condensed" - label=synchronization, - height=0.7, - //width=2, - shape=octagon]; - Tasks -> sync [color="#c46747"]; - sched [color="#c46747", - fillcolor="#6a9ab1", - label=Scheduler]; - sync -> sched [color="#c46747"]; - IRQ [color="#c46747", - fillcolor="#71809b", - fontsize=20, - label="interrupts\ncore,\nCPU arch"]; - sched -> IRQ [color="#c46747"]; - CPU [color="#c46747", - fillcolor="#777777", - fontcolor=white, - fontsize=20, - row=chip]; - IRQ -> CPU [color="#c46747"]; + node [ color = "#c46747"] + edge [ color = "#c46747"] + processing_ [ + fixedsize = true, + height = 0, + shape = point + style = invis, + width = 0] + processing [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Processing", + fillcolor = white, + fixedsize = true, + height = 0.6, + row = func, + width = 2] + processing -> processing_ [ + arrowhead = "", + row = func] + proc [ + fillcolor = "#d9e7ee", + fixedsize = true, + label = Processes, + row = usr, + shape = ellipse] + Tasks [ + fillcolor = "#b2d3e4"] + proc -> Tasks + sync [ + fillcolor = "#91b5c9", + fixedsize = true, + fontsize = 20, + fontname = "Ubuntu Condensed" + label = synchronization, + height = 0.7, + //width = 2, + shape = octagon] + Tasks -> sync + sched [ + fillcolor = "#6a9ab1", + label = Scheduler] + sync -> sched + IRQ [ + fillcolor = "#71809b", + fontsize = 20, + label = "interrupts\ncore,\nCPU arch"] + sched -> IRQ + CPU [ + fillcolor = "#777777", + fontcolor = white, + fontsize = 20, + row = chip] + IRQ -> CPU } // processing + subgraph mem { + node [ + color = "#51bf5b", + height = 0.5 + ] + edge [ color = "#51bf5b"] + MA [ + color = "#51bf5b", + fillcolor = "#d9e7ee", + fixedsize = true, + label = "memory\naccess", + row = usr, + height = 1, + shape = ellipse] + MA -> VM + mmap [ + fillcolor = "#91b5c9", + fixedsize = true, + fontsize = 20, + height = 0.8, + label = "memory\nmapping", + shape = octagon, + width = 2] + mmap -> log_mem + log_mem -> PA + //VFS -> SW [ style = invis] + SW [ + color = "#8383cc", + fillcolor = "#91b5c9", + fixedsize = true, + label = Swap, + height = 0.8, + shape = octagon, + width = 1.2] + mmap -> SW [ weight = 1] + SW -> block [ + color = "#8383cc", weight = 1] + PA [ + fillcolor = "#71809b", + label = "Page\nAllocator" + ] + PC -> PA [weight = 0 color="#51bf5b"] + RAM [ + color = "#51bf5b", + fillcolor = "#777777", + fontcolor = white, + fontsize = 20, + label = "MMU, RAM", + height = 1, + row = chip] + PA -> RAM + memory -> memory_ [ + arrowhead = "", + row = func] + VM -> mmap + } // mem + subgraph storage { + node [ color = "#8383cc"] + edge [ color = "#8383cc"] + NFS; + storage_ [ + shape = point, + fixedsize = true, + height = 0, + style = invis, + width = 0] + storage [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Storage", + fillcolor = white, + fixedsize = true, + height = 0.6, + row = func, + width = 2] + storage -> storage_ [ + arrowhead = "", + row = func] + FS [ + fillcolor = "#d9e7ee", + fixedsize = true, + label = "files and\ndirectories", + row = usr, + shape = ellipse] + VFS [ + fillcolor = "#b2d3e4", + label = "Virtual\nFile System"] + FS -> VFS + VFS -> mmap [ weight = 0] + VFS -> NFS [ + weight = 0] + logFS [ + fillcolor = "#6a9ab1", + fontsize = 20, + label = "logical\nfilesystems:\next3, xfs ..."] + VFS -> logFS + PC [ + fillcolor = "#91b5c9", + fixedsize = true, + fontsize = 20, + height = 0.8, + label = "page\ncache", + shape = octagon, + width = 1.2] + VFS -> PC [ weight = 0] + block [ + fillcolor = "#71809b", + fontsize = 20, + label = "Block\ndevices\nand drivers"] + logFS -> block + SD [ + fillcolor = "#777777", + fontcolor = white, + fontsize = 20, + label = "storage devices:\nSCSI, NVMe ...", + row = chip] + block -> SD + } // storge subgraph HI { - node [color="#cfbf57ff", - - ]; - edge [color="#cfbf57ff", - weight=10 - ]; - HI_ [color="#cfbf57ff", - fixedsize=true, - height=0, - shape=point - style=invis, - width=0]; - HI [color="#cfbf57ff", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Human_interfaces", - fillcolor=white, - fixedsize=true, - fontsize=12, - height=0.6, - label="human\ninterface", - row=func, - width=2]; - HI -> HI_ [arrowhead="", - color="#cfbf57ff", - row=func]; - char [color="#cfbf57ff", - fillcolor="#d9e7ee", - fixedsize=true, - label="char\ndevices", - row=usr, - shape=ellipse]; - input [color="#cfbf57ff", - fillcolor="#b2d3e4", - label="input\nsubsystem"]; - char -> input [color="#cfbf57ff"]; - F7 [color="#cfbf57ff", - fillcolor="#6a9ab1", - label="HI class\ndrivers"]; - input -> F7 [color="#cfbf57ff"]; - HID [color="#cfbf57ff", - fillcolor="#71809b", - fontsize=20, - URL="https://www.kernel.org/doc/html/latest/hid/", - label="HI\nperipherals\ndrivers"]; - F7 -> HID [color="#cfbf57ff" - ]; - display [color="#cfbf57ff", - fillcolor="#777777", - fontcolor=white, - fontsize=19, - label="keyboard, mouse,\ndisplay, audio", - row=chip]; - HID -> display [color="#cfbf57ff" ]; + node [color = "#cfbf57ff"] + edge [ + color = "#cfbf57ff", + weight = 10 + ] + HI_ [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] + HI [ + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Human_interfaces", + fillcolor = white, + fixedsize = true, + fontsize = 12, + height = 0.6, + label = "human\ninterface", + row = func, + width = 2] + HI -> HI_ [ + arrowhead = "", + row = func] + char [ + fillcolor = "#d9e7ee", + fixedsize = true, + label = "char\ndevices", + row = usr, + shape = ellipse] + input [ + fillcolor = "#b2d3e4", + label = "input\nsubsystem"] + char -> input + F7 [ + fillcolor = "#6a9ab1", + label = "HI class\ndrivers"] + input -> F7 + HID [ + fillcolor = "#71809b", + fontsize = 20, + URL = "https://www.kernel.org/doc/html/latest/hid/", + label = "HI\nperipherals\ndrivers"] + F7 -> HID + display [ + fillcolor = "#777777", + fontcolor = white, + fontsize = 19, + label = "keyboard, mouse,\ndisplay, audio", + row = chip] + HID -> display } // HI subgraph functions { - graph [rank=same]; - edge [style=invis, - weight=1 - ]; + graph [ + rank = same] + edge [ + style = invis, + weight = 1 + ] system; networking; - system -> processing [weight=1]; - storage -> networking [weight=1]; - memory [color="#51bf5b", - URL="https://en.wikibooks.org/wiki/The_Linux_Kernel/Memory", - fillcolor=white, - fixedsize=true, - height=0.6, - row=func, - width=2]; - memory -> storage [weight=1]; - processing -> memory [weight=1]; - functions_ [fixedsize=true, - height=0, - shape=point - style=invis, - width=0]; - functions_ -> HI -> system [weight=1]; - functions [color=gray, - tooltip="Columns represent main functionalities of the kernel", - URL="http://www.makelinux.net/ldd3/chp-1-sect-2.shtml", - fillcolor=gray, - fixedsize=true, - height=0.6, - row=func, - style=dashed, - width=1.6]; - functions -> functions_ [arrowhead="", - color=gray, - style="", - weight=""]; + system -> processing [ weight = 1] + storage -> networking [ weight = 1] + memory [ + color = "#51bf5b", + URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Memory", + fillcolor = white, + fixedsize = true, + height = 0.6, + row = func, + width = 2] + memory -> storage [ weight = 1] + processing -> memory [ + weight = 1] + functions_ [ + fixedsize = true, + height = 0, + shape = point + style = invis, + width = 0] + functions_ -> HI -> system [ weight = 1] + functions [ + color = gray, + tooltip = "Columns represent main functionalities of the kernel", + URL = "http://www.makelinux.net/ldd3/chp-1-sect-2.shtml", + fillcolor = gray, + fixedsize = true, + height = 0.6, + row = func, + style = dashed, + width = 1.6] + functions -> functions_ [ + arrowhead = "", + color = gray, + style = "", + weight = ""] } subgraph interfaces { - graph [rank=same]; + graph [ rank = same] SCI; sock; FS; proc; char; - usr_ [fixedsize=true, - height=0, - shape=point - style=invis, - width=0.5]; - 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]; + usr_ [ + fixedsize = true, + height = 0, + shape = point + style = invis, + width = 0.5] + usr [ + fillcolor = "#d9e7eeff", + fixedsize = true, + label = "user space\ninterfaces", + row = usr, + shape = ellipse, + style = "filled,setlinewidth(0)"] + MA; } { - edge [style=invis weight=10 ]; + edge [ style = invis weight = 10 ] system_; SCI; system_ -> SCI; @@ -390,194 +444,196 @@ digraph matrix { char; HI_ -> char; MA; - memory_ [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; + memory_ [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] memory_ -> MA; } subgraph virtual { - graph [rank=same]; + graph [ + rank = same] sysfs; prot_fam; VFS; Tasks; input; - D0 [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; - virt [fillcolor="#b2d3e4", - label="virtual\nsubsystems", - URL="https://en.wikipedia.org/wiki/Proxy_pattern", - tooltip="proxy between standard user space interfaces and internal implementations", - style="filled,setlinewidth(0)"]; - VM [color="#51bf5b", - fillcolor="#b2d3e4", - label="Virtual\nmemory"]; + D0 [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] + virt [ + fillcolor = "#b2d3e4", + label = "virtual\nsubsystems", + URL = "https://en.wikipedia.org/wiki/Proxy_pattern", + tooltip = "proxy between standard user space interfaces and internal implementations", + style = "filled,setlinewidth(0)"] + VM [ + color = "#51bf5b", + 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)"]; + 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; sync; - E0 [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; + E0 [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] + //PC } subgraph logical { - graph [rank=same]; + graph [ + rank = same] log_sys; log_prot; logFS; sched; F7; - F0 [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; - logical [fillcolor="#6a9ab1", - style="filled,setlinewidth(0)"]; - log_mem [color="#51bf5b", - fillcolor="#6a9ab1", - label="logical\nmemory"]; + F0 [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] + logical [ + fillcolor = "#6a9ab1", + style = "filled,setlinewidth(0)"] + log_mem [ + color = "#51bf5b", + fillcolor = "#6a9ab1", + label = "logical\nmemory"] + //SW } subgraph HWI { - graph [rank=same]; - HWI [fillcolor="#71809b", - label="hardware\ninterfaces", - style="filled,setlinewidth(0)"]; + graph [ rank = same] + HWI [ + fillcolor = "#71809b", + label = "hardware\ninterfaces", + style = "filled,setlinewidth(0)"] bus_drv; netif; block; - PA; + //PA; IRQ; HID; - G0 [fixedsize=true, - height=0, - shape=point, - style=invis, - width=0]; + G0 [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] } subgraph HW { - graph [rank=same]; - HW [fillcolor="#777777", - fontcolor=white, - label="electronics,\nhardware", - row=chip, - style="filled,setlinewidth(0)"]; + graph [ + rank = same] + HW [ + fillcolor = "#777777", + fontcolor = white, + label = "electronics,\nhardware", + row = chip, + style = "filled,setlinewidth(0)"] 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, - label="MMU, RAM", - row=chip]; + H0 [ + fixedsize = true, + height = 0, + shape = point, + style = invis, + width = 0] + RAM; } - subgraph mem { - node [color="#51bf5b", - height=0.5 - ]; - edge [color="#51bf5b"]; - PA - [color="#51bf5b", - fillcolor="#71809b", - label="Page\nAllocator"]; - mmap -> log_mem [color="#51bf5b"]; - log_mem -> PA [color="#51bf5b"]; - //VFS -> SW [ style=invis]; - SW [color="#8383cc", - fillcolor="#91b5c9", - fixedsize=true, - label=Swap, - height=0.8, - shape=octagon, - width=1.2]; - mmap -> SW [color="#51bf5b", weight=1]; - SW -> block [color="#8383cc", weight=1]; - log_mem; - PA -> RAM [color="#51bf5b"]; - memory -> memory_ [arrowhead="", - color="#51bf5b", - row=func]; - MA -> VM [color="#51bf5b"]; - VM -> mmap [color="#51bf5b"]; - } - bottom [label="© 2007-2021 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", - shape=plaintext, - style=""]; - CPU -> bottom [style=invis]; - layers [fillcolor=lightgray, - tooltip="Functionalities are divided to common layers. It is approximate division.", - height=0.1, - style="filled,setlinewidth(0)", - width=0.5]; - functions -> layers [ style=invis ]; - usr -> usr_ [arrowhead="", - color="#d9e7eeff", - minlen=2]; - usr -> virt [color="#d9e7eeff"]; - virt -> D0 [arrowhead="", - color="#b2d3e4", - minlen=2]; - virt -> bridges [color="#b2d3e4"]; - bridges -> E0 [arrowhead="", - color="#91b5c9", - minlen=2, - style="filled,setlinewidth(6)", - weight=""]; - bridges -> logical [color="#91b5c9", - style="filled,setlinewidth(6)"]; - logical -> F0 [arrowhead="", - color="#6a9ab1", - minlen=2, - row=logical, - style="filled,setlinewidth(6)", - weight=""]; - logical -> HWI [color="#6a9ab1", - row=logical, - style="filled,setlinewidth(6)"]; - HWI -> G0 [arrowhead="", - color="#71809b", - minlen=2, - row=HWI, - style="filled,setlinewidth(6)", - weight=""]; - HWI -> HW [color="#71809b", - row=HWI, - style="filled,setlinewidth(6)"]; - HW -> H0 [arrowhead="", - color="#777777", - minlen=2, - row=chip, - style="filled,setlinewidth(6)", - weight=""]; - layers -> usr [arrowhead="", - color=gray, - style="filled,setlinewidth(1)"]; - LKD [fontsize=40, - label="Linux kernel diagram", - shape=plain, - style=""]; - LKD -> processing [style=invis]; + bottom [ + label = "© 2007-2021 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram", + shape = plaintext, + style = ""] + CPU -> bottom [ + style = invis] + layers [ + fillcolor = lightgray, + tooltip = "Functionalities are divided to common layers. It is approximate division.", + height = 0.1, + style = "filled,setlinewidth(0)", + width = 0.5] + functions -> layers [ + style = invis ] + usr -> usr_ [ + arrowhead = "", + color = "#d9e7eeff", + minlen = 2] + usr -> virt [ + color = "#d9e7eeff"] + virt -> D0 [ + arrowhead = "", + color = "#b2d3e4", + minlen = 2] + virt -> bridges [ + color = "#b2d3e4"] + bridges -> E0 [ + arrowhead = "", + color = "#91b5c9", + minlen = 2, + style = "filled,setlinewidth(6)", + weight = ""] + bridges -> logical [ + color = "#91b5c9", + style = "filled,setlinewidth(6)"] + logical -> F0 [ + arrowhead = "", + color = "#6a9ab1", + minlen = 2, + row = logical, + style = "filled,setlinewidth(6)", + weight = ""] + logical -> HWI [ + color = "#6a9ab1", + row = logical, + style = "filled,setlinewidth(6)"] + HWI -> G0 [ + arrowhead = "", + color = "#71809b", + minlen = 2, + row = HWI, + style = "filled,setlinewidth(6)", + weight = ""] + HWI -> HW [ + color = "#71809b", + row = HWI, + style = "filled,setlinewidth(6)"] + HW -> H0 [ + arrowhead = "", + color = "#777777", + minlen = 2, + row = chip, + style = "filled,setlinewidth(6)", + weight = ""] + layers -> usr [ + arrowhead = "", + color = gray, + style = "filled,setlinewidth(1)"] + LKD [ + fontsize = 40, + label = "Linux kernel diagram", + shape = plain, + style = ""] + LKD -> processing [ style = invis] }