blobsets/doc/dagfs.tikz
2018-09-11 11:17:49 +02:00

102 lines
2.6 KiB
Plaintext

\begin{tikzpicture}
\definecolor{dagfscolor} {rgb}{.7,0.6,1}
\definecolor{rumpcolor} {rgb}{1,0.6,0.6}
\tikzstyle{treenode} = [component, path fading=flow fade,
minimum width=10ex, minimum height=7ex, align=center,
rounded corners=1]
\tikzstyle{dagfsnode} = [treenode, bottom color=dagfscolor]
\tikzstyle{subsystem} = [minimum width=10ex, minimum height=3ex, align=center,
draw=black!80, fill=white, fill opacity=0.6]
\tikzstyle{treesessionarrow} = [arrow, thick, densely dashed]
\tikzstyle{treesessionarrow} = [arrow, thick, densely dashed]
%
% Components
%
% Dagfs components
\node[dagfsnode,
minimum width=20ex,
minimum height=11ex]
(dagfs_server) {};
\path (dagfs_server.west) node[right=1ex] {Dagfs};
\path (dagfs_server.east) node[
left=2ex, yshift=2ex, subsystem, align=center] (frontends)
{Frontends};
\path (dagfs_server.east) node[
left=2ex, yshift=-2ex, subsystem, align=center] (backends)
{Backends};
\node[dagfsnode, below=8ex of dagfs_server]
(dagfs_fs_store) {Dagfs FS store};
\node[treenode,
right=8ex of dagfs_fs_store,
minimum height=12ex, bottom color=rumpcolor, rounded corners=1]
(rump) {Rump\\Ext2};
\node[dagfsnode, above=8ex of dagfs_server, xshift=-16ex] (dagfs_tcp_server) {Dagfs TCP server};
\node[dagfsnode, above=8ex of dagfs_server, xshift=12ex] (dagfs_fs) {Dagfs FS};
\node[dagfsnode, right=2ex of dagfs_fs] (dagfs_rom) {Dagfs ROM};
%
% Linux VM
%
\node[treenode, minimum width=24ex, minimum height=22ex, above=8ex of dagfs_tcp_server] (linux) {};
\path (linux.north) node[below=1ex] {Linux VM};
%
% Sessions
%
\draw[treesessionarrow] (dagfs_fs_store.90)
.. controls +(270:-4ex) and +(270:4ex) ..
node[right, sloped=false] {}
(backends.270);
\draw[treesessionarrow] (dagfs_tcp_server.270)
.. controls +(270:4ex) and +(270:-7ex) ..
node[right, sloped=false] {}
(frontends.135);
\draw[treesessionarrow] (dagfs_fs.270)
.. controls +(270:4ex) and +(270:-8ex) ..
node[right, sloped=false] {}
(frontends.90);
\draw[treesessionarrow] (dagfs_rom.270)
.. controls +(270:4ex) and +(270:-7ex) ..
node[right, sloped=false] {}
(frontends.45);
\draw[treesessionarrow] (dagfs_fs_store) --
node[below, align=center, sloped=false] {File\\system} (rump);
%
% TCP
%
\node[draw,
dropshadow, path fading=flow fade, shape=double arrow,
below=5ex of linux,
yshift=1ex,
draw opacity=0.5,
rotate=90,
double arrow head extend=1ex,
inner xsep=2ex, inner ysep=1ex]
(arrow) {};
\path (arrow.east) node[yshift=-3ex, right=2ex] {TCP/IP};
\end{tikzpicture}