forked from OpenSDV/Linux_Kernel_map4vehicle
cosmetic
This commit is contained in:
parent
1afe9a1a92
commit
d65d7f3ded
|
@ -1,235 +1,171 @@
|
|||
digraph matrix {
|
||||
graph [newrank=true,
|
||||
digraph "Linux_kernel_diagram" {
|
||||
graph [
|
||||
|
||||
newrank = true,
|
||||
nodesep = 0.3,
|
||||
ranksep = 0.2,
|
||||
overlap = true,
|
||||
splines = false,
|
||||
];
|
||||
node [fixedsize=false,
|
||||
]
|
||||
node [
|
||||
fixedsize = false,
|
||||
fontname = Ubuntu
|
||||
fontsize = 24,
|
||||
height = 1,
|
||||
shape = box,
|
||||
style = "filled,setlinewidth(5)",
|
||||
width = 2.2
|
||||
];
|
||||
edge [arrowhead=none,
|
||||
]
|
||||
edge [
|
||||
|
||||
arrowhead = none,
|
||||
arrowsize = 0.5,
|
||||
labelfontname = "Ubuntu",
|
||||
weight = 10,
|
||||
style = "filled,setlinewidth(5)"
|
||||
];
|
||||
]
|
||||
subgraph system {
|
||||
node [color="#e27dd6ff"];
|
||||
system_ [color="#e27dd6ff",
|
||||
node [color = "#e27dd6ff"]
|
||||
edge [color = "#e27dd6ff"]
|
||||
system_ [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
shape = point
|
||||
];
|
||||
system [color="#e27dd6ff",
|
||||
]
|
||||
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="",
|
||||
color="#e27dd6ff",
|
||||
width = 2]
|
||||
system -> system_ [
|
||||
arrowhead = "",
|
||||
row = func]
|
||||
SCI [color="#e27dd6ff",
|
||||
SCI [
|
||||
URL = "https://en.wikibooks.org/wiki/The_Linux_Kernel/Syscalls",
|
||||
fillcolor = "#d9e7ee",
|
||||
fixedsize = true,
|
||||
label = "System calls",
|
||||
row = usr,
|
||||
shape=ellipse];
|
||||
sysfs [color="#e27dd6ff",
|
||||
shape = ellipse]
|
||||
sysfs [
|
||||
fillcolor = "#b2d3e4",
|
||||
label="proc & sysfs\nfile systems"];
|
||||
SCI -> sysfs [color="#e27dd6ff"];
|
||||
DM [color="#e27dd6ff",
|
||||
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 [color="#e27dd6ff"];
|
||||
log_sys [color="#e27dd6ff",
|
||||
width = 2]
|
||||
sysfs -> DM
|
||||
log_sys [
|
||||
fillcolor = "#6a9ab1",
|
||||
fontsize = 20,
|
||||
label="system run,\nmodules,\ngeneric\nHW access "];
|
||||
DM -> log_sys [color="#e27dd6ff"];
|
||||
bus_drv [color="#e27dd6ff",
|
||||
label = "system run,\nmodules,\ngeneric\nHW access "]
|
||||
DM -> log_sys
|
||||
bus_drv [
|
||||
fillcolor = "#71809b",
|
||||
label="bus drivers"];
|
||||
log_sys -> bus_drv [color="#e27dd6ff"];
|
||||
buses [color="#e27dd6ff",
|
||||
label = "bus drivers"]
|
||||
log_sys -> bus_drv
|
||||
buses [
|
||||
fillcolor = "#777777",
|
||||
fontcolor = white,
|
||||
fontsize = 20,
|
||||
label = "buses:\nPCI, USB ...",
|
||||
row=chip];
|
||||
bus_drv -> buses [color="#e27dd6ff"];
|
||||
row = chip]
|
||||
bus_drv -> buses
|
||||
}
|
||||
subgraph networking {
|
||||
node [color="#61c2c5"];
|
||||
edge [color="#61c2c5"];
|
||||
networking_ [color="#61c2c5",
|
||||
node [ color = "#61c2c5"]
|
||||
edge [ color = "#61c2c5"]
|
||||
networking_ [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
shape = point
|
||||
width=0];
|
||||
networking [color="#61c2c5",
|
||||
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="",
|
||||
color="#61c2c5",
|
||||
row=func];
|
||||
sock [color="#61c2c5",
|
||||
width = 2]
|
||||
networking -> networking_ [
|
||||
arrowhead = "",
|
||||
row = func]
|
||||
sock [
|
||||
fillcolor = "#d9e7ee",
|
||||
fixedsize = true,
|
||||
label = Sockets,
|
||||
row = usr,
|
||||
shape=ellipse];
|
||||
prot_fam [color="#61c2c5",
|
||||
shape = ellipse]
|
||||
prot_fam [
|
||||
fillcolor = "#b2d3e4",
|
||||
label="protocol\nfamilies"];
|
||||
sock -> prot_fam [color="#61c2c5"];
|
||||
log_prot [color="#61c2c5",
|
||||
label = "protocol\nfamilies"]
|
||||
sock -> prot_fam
|
||||
log_prot [
|
||||
fillcolor = "#6a9ab1",
|
||||
label="protocols:\nTCP, UDP, IP"];
|
||||
prot_fam -> log_prot [color="#61c2c5"];
|
||||
netif [color="#61c2c5",
|
||||
label = "protocols:\nTCP, UDP, IP"]
|
||||
prot_fam -> log_prot
|
||||
netif [
|
||||
fillcolor = "#71809b",
|
||||
fontsize = 20,
|
||||
label="network\ninterfaces\nand drivers"];
|
||||
log_prot -> netif [color="#61c2c5"];
|
||||
net_hw [color="#61c2c5",
|
||||
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 [color="#61c2c5"];
|
||||
NFS [color="#8383cc",
|
||||
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 [color="#61c2c5",
|
||||
weight=0];
|
||||
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",
|
||||
node [ color = "#c46747"]
|
||||
edge [ color = "#c46747"]
|
||||
processing_ [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point
|
||||
style = invis,
|
||||
width=0];
|
||||
processing [color="#c46747",
|
||||
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="",
|
||||
color="#c46747",
|
||||
row=func];
|
||||
proc [color="#c46747",
|
||||
width = 2]
|
||||
processing -> processing_ [
|
||||
arrowhead = "",
|
||||
row = func]
|
||||
proc [
|
||||
fillcolor = "#d9e7ee",
|
||||
fixedsize = true,
|
||||
label = Processes,
|
||||
row = usr,
|
||||
shape=ellipse];
|
||||
Tasks [color="#c46747",
|
||||
fillcolor="#b2d3e4"];
|
||||
proc -> Tasks [color="#c46747"];
|
||||
sync [color="#c46747",
|
||||
shape = ellipse]
|
||||
Tasks [
|
||||
fillcolor = "#b2d3e4"]
|
||||
proc -> Tasks
|
||||
sync [
|
||||
fillcolor = "#91b5c9",
|
||||
fixedsize = true,
|
||||
fontsize = 20,
|
||||
|
@ -237,38 +173,153 @@ digraph matrix {
|
|||
label = synchronization,
|
||||
height = 0.7,
|
||||
//width = 2,
|
||||
shape=octagon];
|
||||
Tasks -> sync [color="#c46747"];
|
||||
sched [color="#c46747",
|
||||
shape = octagon]
|
||||
Tasks -> sync
|
||||
sched [
|
||||
fillcolor = "#6a9ab1",
|
||||
label=Scheduler];
|
||||
sync -> sched [color="#c46747"];
|
||||
IRQ [color="#c46747",
|
||||
label = Scheduler]
|
||||
sync -> sched
|
||||
IRQ [
|
||||
fillcolor = "#71809b",
|
||||
fontsize = 20,
|
||||
label="interrupts\ncore,\nCPU arch"];
|
||||
sched -> IRQ [color="#c46747"];
|
||||
CPU [color="#c46747",
|
||||
label = "interrupts\ncore,\nCPU arch"]
|
||||
sched -> IRQ
|
||||
CPU [
|
||||
fillcolor = "#777777",
|
||||
fontcolor = white,
|
||||
fontsize = 20,
|
||||
row=chip];
|
||||
IRQ -> CPU [color="#c46747"];
|
||||
row = chip]
|
||||
IRQ -> CPU
|
||||
} // processing
|
||||
subgraph HI {
|
||||
node [color="#cfbf57ff",
|
||||
|
||||
];
|
||||
edge [color="#cfbf57ff",
|
||||
weight=10
|
||||
];
|
||||
HI_ [color="#cfbf57ff",
|
||||
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,
|
||||
shape=point
|
||||
style = invis,
|
||||
width=0];
|
||||
HI [color="#cfbf57ff",
|
||||
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_ [
|
||||
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,
|
||||
|
@ -276,64 +327,69 @@ digraph matrix {
|
|||
height = 0.6,
|
||||
label = "human\ninterface",
|
||||
row = func,
|
||||
width=2];
|
||||
HI -> HI_ [arrowhead="",
|
||||
color="#cfbf57ff",
|
||||
row=func];
|
||||
char [color="#cfbf57ff",
|
||||
width = 2]
|
||||
HI -> HI_ [
|
||||
arrowhead = "",
|
||||
row = func]
|
||||
char [
|
||||
fillcolor = "#d9e7ee",
|
||||
fixedsize = true,
|
||||
label = "char\ndevices",
|
||||
row = usr,
|
||||
shape=ellipse];
|
||||
input [color="#cfbf57ff",
|
||||
shape = ellipse]
|
||||
input [
|
||||
fillcolor = "#b2d3e4",
|
||||
label="input\nsubsystem"];
|
||||
char -> input [color="#cfbf57ff"];
|
||||
F7 [color="#cfbf57ff",
|
||||
label = "input\nsubsystem"]
|
||||
char -> input
|
||||
F7 [
|
||||
fillcolor = "#6a9ab1",
|
||||
label="HI class\ndrivers"];
|
||||
input -> F7 [color="#cfbf57ff"];
|
||||
HID [color="#cfbf57ff",
|
||||
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 [color="#cfbf57ff"
|
||||
];
|
||||
display [color="#cfbf57ff",
|
||||
label = "HI\nperipherals\ndrivers"]
|
||||
F7 -> HID
|
||||
display [
|
||||
fillcolor = "#777777",
|
||||
fontcolor = white,
|
||||
fontsize = 19,
|
||||
label = "keyboard, mouse,\ndisplay, audio",
|
||||
row=chip];
|
||||
HID -> display [color="#cfbf57ff" ];
|
||||
row = chip]
|
||||
HID -> display
|
||||
} // HI
|
||||
subgraph functions {
|
||||
graph [rank=same];
|
||||
edge [style=invis,
|
||||
graph [
|
||||
rank = same]
|
||||
edge [
|
||||
style = invis,
|
||||
weight = 1
|
||||
];
|
||||
]
|
||||
system;
|
||||
networking;
|
||||
system -> processing [weight=1];
|
||||
storage -> networking [weight=1];
|
||||
memory [color="#51bf5b",
|
||||
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,
|
||||
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,
|
||||
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,
|
||||
|
@ -341,39 +397,37 @@ digraph matrix {
|
|||
height = 0.6,
|
||||
row = func,
|
||||
style = dashed,
|
||||
width=1.6];
|
||||
functions -> functions_ [arrowhead="",
|
||||
width = 1.6]
|
||||
functions -> functions_ [
|
||||
arrowhead = "",
|
||||
color = gray,
|
||||
style = "",
|
||||
weight=""];
|
||||
weight = ""]
|
||||
}
|
||||
subgraph interfaces {
|
||||
graph [rank=same];
|
||||
graph [ rank = same]
|
||||
SCI;
|
||||
sock;
|
||||
FS;
|
||||
proc;
|
||||
char;
|
||||
usr_ [fixedsize=true,
|
||||
usr_ [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point
|
||||
style = invis,
|
||||
width=0.5];
|
||||
usr [fillcolor="#d9e7eeff",
|
||||
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];
|
||||
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,
|
||||
memory_ [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
width=0];
|
||||
width = 0]
|
||||
memory_ -> MA;
|
||||
}
|
||||
subgraph virtual {
|
||||
graph [rank=same];
|
||||
graph [
|
||||
rank = same]
|
||||
sysfs;
|
||||
prot_fam;
|
||||
VFS;
|
||||
Tasks;
|
||||
input;
|
||||
D0 [fixedsize=true,
|
||||
D0 [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
width=0];
|
||||
virt [fillcolor="#b2d3e4",
|
||||
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",
|
||||
style = "filled,setlinewidth(0)"]
|
||||
VM [
|
||||
color = "#51bf5b",
|
||||
fillcolor = "#b2d3e4",
|
||||
label="Virtual\nmemory"];
|
||||
label = "Virtual\nmemory"]
|
||||
}
|
||||
subgraph bridges {
|
||||
graph [rank=same];
|
||||
bridges [fillcolor="#91b5c9",
|
||||
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)"];
|
||||
style = "filled,setlinewidth(0)"]
|
||||
DM;
|
||||
NFS;
|
||||
mmap;
|
||||
sync;
|
||||
E0 [fixedsize=true,
|
||||
E0 [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
width=0];
|
||||
width = 0]
|
||||
//PC
|
||||
}
|
||||
subgraph logical {
|
||||
graph [rank=same];
|
||||
graph [
|
||||
rank = same]
|
||||
log_sys;
|
||||
log_prot;
|
||||
logFS;
|
||||
sched;
|
||||
F7;
|
||||
F0 [fixedsize=true,
|
||||
F0 [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
width=0];
|
||||
logical [fillcolor="#6a9ab1",
|
||||
style="filled,setlinewidth(0)"];
|
||||
log_mem [color="#51bf5b",
|
||||
width = 0]
|
||||
logical [
|
||||
fillcolor = "#6a9ab1",
|
||||
label="logical\nmemory"];
|
||||
style = "filled,setlinewidth(0)"]
|
||||
log_mem [
|
||||
color = "#51bf5b",
|
||||
fillcolor = "#6a9ab1",
|
||||
label = "logical\nmemory"]
|
||||
//SW
|
||||
}
|
||||
subgraph HWI {
|
||||
graph [rank=same];
|
||||
HWI [fillcolor="#71809b",
|
||||
graph [ rank = same]
|
||||
HWI [
|
||||
fillcolor = "#71809b",
|
||||
label = "hardware\ninterfaces",
|
||||
style="filled,setlinewidth(0)"];
|
||||
style = "filled,setlinewidth(0)"]
|
||||
bus_drv;
|
||||
netif;
|
||||
block;
|
||||
PA;
|
||||
//PA;
|
||||
IRQ;
|
||||
HID;
|
||||
G0 [fixedsize=true,
|
||||
G0 [
|
||||
fixedsize = true,
|
||||
height = 0,
|
||||
shape = point,
|
||||
style = invis,
|
||||
width=0];
|
||||
width = 0]
|
||||
}
|
||||
subgraph HW {
|
||||
graph [rank=same];
|
||||
HW [fillcolor="#777777",
|
||||
graph [
|
||||
rank = same]
|
||||
HW [
|
||||
fillcolor = "#777777",
|
||||
fontcolor = white,
|
||||
label = "electronics,\nhardware",
|
||||
row = chip,
|
||||
style="filled,setlinewidth(0)"];
|
||||
style = "filled,setlinewidth(0)"]
|
||||
buses;
|
||||
net_hw;
|
||||
SD;
|
||||
CPU;
|
||||
display;
|
||||
H0 [fixedsize=true,
|
||||
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];
|
||||
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",
|
||||
bottom [
|
||||
label = "© 2007-2021 Constantine Shulyupin http://www.MakeLinux.net/kernel/diagram",
|
||||
shape = plaintext,
|
||||
style=""];
|
||||
CPU -> bottom [style=invis];
|
||||
layers [fillcolor=lightgray,
|
||||
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="",
|
||||
width = 0.5]
|
||||
functions -> layers [
|
||||
style = invis ]
|
||||
usr -> usr_ [
|
||||
arrowhead = "",
|
||||
color = "#d9e7eeff",
|
||||
minlen=2];
|
||||
usr -> virt [color="#d9e7eeff"];
|
||||
virt -> D0 [arrowhead="",
|
||||
minlen = 2]
|
||||
usr -> virt [
|
||||
color = "#d9e7eeff"]
|
||||
virt -> D0 [
|
||||
arrowhead = "",
|
||||
color = "#b2d3e4",
|
||||
minlen=2];
|
||||
virt -> bridges [color="#b2d3e4"];
|
||||
bridges -> E0 [arrowhead="",
|
||||
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="",
|
||||
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",
|
||||
weight = ""]
|
||||
logical -> HWI [
|
||||
color = "#6a9ab1",
|
||||
row = logical,
|
||||
style="filled,setlinewidth(6)"];
|
||||
HWI -> G0 [arrowhead="",
|
||||
style = "filled,setlinewidth(6)"]
|
||||
HWI -> G0 [
|
||||
arrowhead = "",
|
||||
color = "#71809b",
|
||||
minlen = 2,
|
||||
row = HWI,
|
||||
style = "filled,setlinewidth(6)",
|
||||
weight=""];
|
||||
HWI -> HW [color="#71809b",
|
||||
weight = ""]
|
||||
HWI -> HW [
|
||||
color = "#71809b",
|
||||
row = HWI,
|
||||
style="filled,setlinewidth(6)"];
|
||||
HW -> H0 [arrowhead="",
|
||||
style = "filled,setlinewidth(6)"]
|
||||
HW -> H0 [
|
||||
arrowhead = "",
|
||||
color = "#777777",
|
||||
minlen = 2,
|
||||
row = chip,
|
||||
style = "filled,setlinewidth(6)",
|
||||
weight=""];
|
||||
layers -> usr [arrowhead="",
|
||||
weight = ""]
|
||||
layers -> usr [
|
||||
arrowhead = "",
|
||||
color = gray,
|
||||
style="filled,setlinewidth(1)"];
|
||||
LKD [fontsize=40,
|
||||
style = "filled,setlinewidth(1)"]
|
||||
LKD [
|
||||
fontsize = 40,
|
||||
label = "Linux kernel diagram",
|
||||
shape = plain,
|
||||
style=""];
|
||||
LKD -> processing [style=invis];
|
||||
style = ""]
|
||||
LKD -> processing [ style = invis]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue