X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=intro.tex;h=b7416dbfc21bc2fb6134ddd90f48fb0ddabb8ed6;hp=175924975ed8c4d5bd2d6462170a805e543ab129;hb=3da7aa8ec1541a808985971cf3814baa83f32f69;hpb=b3d5494270f6a6b917c23a38f5f4e8c5061c50a3 diff --git a/intro.tex b/intro.tex index 1759249..b7416db 100644 --- a/intro.tex +++ b/intro.tex @@ -174,7 +174,46 @@ fig.~\ref{fig:intro_sys_struct}. \begin{figure}[htb] \centering - \includegraphics[width=10cm]{img/struct_sys} +% \includegraphics[width=10cm]{img/struct_sys} + \begin{tikzpicture} + \filldraw[fill=black!20] (0,0) rectangle (7.5,1); + \draw (3.75,0.5) node {System Call Interface}; + \filldraw[fill=black!35] (0,1) rectangle (7.5,4); + \draw (3.75,2.5) node {\huge{kernel}}; + \filldraw[fill=black!20] (0,4) rectangle (2.5,5); + \draw (1.25,4.5) node {scheduler}; + \filldraw[fill=black!20] (2.5,4) rectangle (5,5); + \draw (3.75,4.5) node {VM}; + \filldraw[fill=black!20] (5,4) rectangle (7.5,5); + \draw (6.25,4.5) node {driver}; + + \draw (1.25,7) node(cpu) [ellipse,draw] {CPU}; + \draw (3.75,7) node(mem) [ellipse,draw] {memoria}; + \draw (6.25,7) node(disk) [ellipse,draw] {disco}; + + \draw[<->] (cpu) -- (1.25,5); + \draw[<->] (mem) -- (3.75,5); + \draw[<->] (disk) -- (6.25,5); + + \draw (7.5,0) node [anchor=base west] {kernel space}; + \draw (7.5,-1) node [anchor=west] {user space}; + + \draw (-1,-0.5) -- (8.5, -0.5); + + \draw (0,-2) rectangle (7.5,-1); + \draw (3.75, -1.5) node {GNU C Library}; + \draw[->] (1.25,-1) -- (1.25,0); + \draw[->] (3.75,-1) -- (3.75,0); + \draw[->] (6.25,-1) -- (6.25,0); + + \draw (1.25,-3) node(proc1) [rectangle,draw] {processo}; + \draw (3.75,-3) node(proc2) [rectangle,draw] {processo}; + \draw (6.25,-3) node(proc3) [rectangle,draw] {processo}; + + \draw[->] (1.25,-2) -- (proc1); + \draw[->] (3.75,-2) -- (proc2); + \draw[->] (6.25,-2) -- (proc3); + \end{tikzpicture} \caption{Schema di massima della struttura di interazione fra processi, kernel e dispositivi in Linux.} \label{fig:intro_sys_struct}