2021-12-23 13:50:27 +08:00
|
|
|
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)"
|
|
|
|
]
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph system {
|
2021-12-23 13:50:27 +08:00
|
|
|
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
|
2019-11-22 00:31:50 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph networking {
|
2021-12-23 13:50:27 +08:00
|
|
|
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]
|
2019-11-22 00:31:50 +08:00
|
|
|
}
|
2021-12-23 13:50:27 +08:00
|
|
|
subgraph processing {
|
|
|
|
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
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph storage {
|
2021-12-23 13:50:27 +08:00
|
|
|
node [ color = "#8383cc"]
|
|
|
|
edge [ color = "#8383cc"]
|
2019-11-22 00:37:22 +08:00
|
|
|
NFS;
|
2021-12-23 13:50:27 +08:00
|
|
|
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
|
2021-12-21 22:32:54 +08:00
|
|
|
} // storge
|
|
|
|
subgraph HI {
|
2021-12-23 13:50:27 +08:00
|
|
|
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
|
2021-12-21 22:32:54 +08:00
|
|
|
} // HI
|
|
|
|
subgraph functions {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [
|
|
|
|
rank = same]
|
|
|
|
edge [
|
|
|
|
style = invis,
|
|
|
|
weight = 1
|
|
|
|
]
|
2019-11-18 13:21:35 +08:00
|
|
|
system;
|
|
|
|
networking;
|
2021-12-23 13:50:27 +08:00
|
|
|
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 = ""]
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph interfaces {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [ rank = same]
|
2019-11-18 13:21:35 +08:00
|
|
|
SCI;
|
|
|
|
sock;
|
|
|
|
FS;
|
|
|
|
proc;
|
|
|
|
char;
|
2021-12-23 13:50:27 +08:00
|
|
|
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;
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2019-11-21 23:09:09 +08:00
|
|
|
{
|
2021-12-23 13:50:27 +08:00
|
|
|
edge [ style = invis weight = 10 ]
|
2019-11-22 00:32:36 +08:00
|
|
|
system_;
|
|
|
|
SCI;
|
|
|
|
system_ -> SCI;
|
|
|
|
networking_;
|
|
|
|
sock;
|
|
|
|
networking_ -> sock;
|
|
|
|
storage_;
|
|
|
|
FS;
|
2019-11-21 23:09:09 +08:00
|
|
|
storage_ -> FS;
|
2019-11-22 00:32:36 +08:00
|
|
|
processing_;
|
|
|
|
proc;
|
2019-11-21 23:09:09 +08:00
|
|
|
processing_ -> proc;
|
2019-11-22 00:32:36 +08:00
|
|
|
HI_;
|
|
|
|
char;
|
2019-11-21 23:09:09 +08:00
|
|
|
HI_ -> char;
|
2019-11-22 00:37:22 +08:00
|
|
|
MA;
|
2021-12-23 13:50:27 +08:00
|
|
|
memory_ [
|
|
|
|
fixedsize = true,
|
|
|
|
height = 0,
|
|
|
|
shape = point,
|
|
|
|
style = invis,
|
|
|
|
width = 0]
|
2019-11-22 00:37:22 +08:00
|
|
|
memory_ -> MA;
|
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph virtual {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [
|
|
|
|
rank = same]
|
2019-11-18 13:21:35 +08:00
|
|
|
sysfs;
|
|
|
|
prot_fam;
|
|
|
|
VFS;
|
|
|
|
Tasks;
|
|
|
|
input;
|
2021-12-23 13:50:27 +08:00
|
|
|
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"]
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph bridges {
|
2021-12-23 13:50:27 +08:00
|
|
|
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)"]
|
2019-11-22 00:37:22 +08:00
|
|
|
DM;
|
|
|
|
NFS;
|
|
|
|
mmap;
|
|
|
|
sync;
|
2021-12-23 13:50:27 +08:00
|
|
|
E0 [
|
|
|
|
fixedsize = true,
|
|
|
|
height = 0,
|
|
|
|
shape = point,
|
|
|
|
style = invis,
|
|
|
|
width = 0]
|
|
|
|
//PC
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph logical {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [
|
|
|
|
rank = same]
|
2019-11-18 13:21:35 +08:00
|
|
|
log_sys;
|
|
|
|
log_prot;
|
|
|
|
logFS;
|
|
|
|
sched;
|
|
|
|
F7;
|
2021-12-23 13:50:27 +08:00
|
|
|
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
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph HWI {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [ rank = same]
|
|
|
|
HWI [
|
|
|
|
fillcolor = "#71809b",
|
|
|
|
label = "hardware\ninterfaces",
|
|
|
|
style = "filled,setlinewidth(0)"]
|
2019-11-18 13:21:35 +08:00
|
|
|
bus_drv;
|
|
|
|
netif;
|
|
|
|
block;
|
2021-12-23 13:50:27 +08:00
|
|
|
//PA;
|
2019-11-18 13:21:35 +08:00
|
|
|
IRQ;
|
2020-06-24 13:01:58 +08:00
|
|
|
HID;
|
2021-12-23 13:50:27 +08:00
|
|
|
G0 [
|
|
|
|
fixedsize = true,
|
|
|
|
height = 0,
|
|
|
|
shape = point,
|
|
|
|
style = invis,
|
|
|
|
width = 0]
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-21 22:32:54 +08:00
|
|
|
subgraph HW {
|
2021-12-23 13:50:27 +08:00
|
|
|
graph [
|
|
|
|
rank = same]
|
|
|
|
HW [
|
|
|
|
fillcolor = "#777777",
|
|
|
|
fontcolor = white,
|
|
|
|
label = "electronics,\nhardware",
|
|
|
|
row = chip,
|
|
|
|
style = "filled,setlinewidth(0)"]
|
2021-12-21 22:32:54 +08:00
|
|
|
buses;
|
2019-11-18 13:21:35 +08:00
|
|
|
net_hw;
|
2021-12-21 22:32:54 +08:00
|
|
|
SD;
|
2019-11-18 13:21:35 +08:00
|
|
|
CPU;
|
2021-12-21 22:32:54 +08:00
|
|
|
display;
|
2021-12-23 13:50:27 +08:00
|
|
|
H0 [
|
|
|
|
fixedsize = true,
|
|
|
|
height = 0,
|
|
|
|
shape = point,
|
|
|
|
style = invis,
|
|
|
|
width = 0]
|
|
|
|
RAM;
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|
2021-12-23 13:50:27 +08:00
|
|
|
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]
|
2019-11-18 13:21:35 +08:00
|
|
|
}
|