Windows System Architecture
📅 February 29, 2024 | 👁️ Views: 45

\documentclass[tikz, border=2mm 1mm 0 0]{standalone}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}[node distance=2cm, every node/.style={draw,line width=0.5pt, rectangle, align=center}]
% Define nodes
\node[fill=blue!20] (start) {User application};
\node[below of=start, fill=blue!40] (process1) {WinAPI};
\node[below of=process1, fill=orange!20] (process2) {NTDLL.dll};
\node[below of=process2, fill=red!40] (end) {kernel};
% Draw arrows
\draw[->,green, line width=2pt] (start) -- (process1);
\draw[->,red, line width=2pt] (process1) -- node[ white, xshift=1.1cm, align=left, midway, text=red] {System Call} (process2);
\draw[->, line width=2pt] (process2) -- (end);
% Create a rectangle that encompasses nodes (start) and (process1)
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{pgfonlayer}{background}
\node [fit=(start)(process1), dashed, blue!70, fill=blue!20, inner sep=6pt] (rect1) {};
\draw[dashed, red!70, fill=orange!20, line width=1.5pt, opacity=0.5]
([xshift=-19pt, yshift=8pt]process2.north west) rectangle
([xshift=28pt, yshift=-8pt]end.south east) coordinate (rect2); ;
\node [rotate=90, anchor=north, white, text=black, yshift=0.50cm, text width=2cm] at (rect1.west) {user space};
\node [rotate=90, anchor=north, white, text=black, xshift=1.5cm, yshift=3.9cm, text width=2cm] at (rect2.west) {kernel space};
\node [rotate=90, anchor=north, white, text=black, text width=2cm] at (rect1.east) {open to developers};
\node [rotate=90, anchor=north, white, text=black,yshift=-0.2cm, xshift=1.5cm, text width=2cm] at (rect2.east) {proprietary};
\node [anchor=south, white, text=blue,yshift=-0.6cm, xshift=-3.3cm, text width=2cm] at (rect2.west) {\small{www.mosaid.xyz}};
\end{pgfonlayer}
\end{tikzpicture}
\end{document}