
\begin{tikzpicture}[]

	\node[osGen,osPC] (winNT) {Win. NT};
	\node[osGen,osPC, below=of winNT] (win2000) {Win. 2000};
	\node[osGen,osPC, below=of win2000] (winXP) {Win. XP};
	\node[osGen,osPC, below=of winXP] (winVista) {Win. Vista};
	\node[osGen,osPC, below=of winVista] (win7) {Win. 7};
	\node[osGen,osTabPC, below=of win7] (win8) {Win. 8};

	\node[osGen,osTab,right=0.5cm of win8] (winRT) {Win. RT};

	\node[osGen,osPhone,left=0.5cm of win7] (winP7) {Win. Phone 7};
	\node[osGen,osPhone,left=0.5cm of win8] (winP8) {Win. Phone 8};

	\node[osGen,osMob,above=of winP7,minimum height=2.1cm] (winMob) {Win. Mobile};

	\node[osGen,osEmb,left=0.5cm of winP8] (winEC) {Win. EC};
	\node[osGen,osEmb,above=of winEC,minimum height=6.16cm] (winCE) {Win. CE/ECE};


	\draw[pkrn] (winNT.south) ++(-0.15cm,0) -- +(0,-0.5cm);
	\draw[pkrn] (win2000.south) ++(-0.15cm,0) -- +(0,-0.5cm);
	\draw[pkrn] (winXP.south) ++(-0.15cm,0) -- +(0,-0.5cm);
	\draw[pkrn] (winVista.south) ++(-0.15cm,0) -- +(0,-0.5cm);
	\draw[pkrn] (win7.south) ++(-0.15cm,0) -- +(0,-0.5cm);

	\draw[pkrn] (winCE.south) ++(-0.15cm,0) -- +(0,-0.5cm);
	\draw[pkrn] (winCE.east) ++(0,-0.3cm) -- +(0.5cm,0);
	\draw[pkrn] (winMob) -- (winP7);
	\draw[pkrn] (win8.east)++(0,-0.15cm)  -- +(0.5cm,0);
	\draw[pkrn] (win8.west)++(0,-0.15cm)  -- +(-0.5cm,0);
	
	\draw[pui,dashed] (winNT.west) -- +(-3.5cm,0);
	\draw[pui] (winCE.east) -- +(0.5cm,0);
	\draw[pui,dashed] (winXP) -- (winMob);
	\draw[pui,dashed] (winVista) -- (winMob);

	\draw[pui, dashed] (winNT.south)  ++(0.15cm,0) -- +(0,-0.5cm);
	\draw[pui, dashed] (win2000.south)  ++(0.15cm,0) -- +(0,-0.5cm);
	\draw[pui,dashed] (winXP.south)  ++(0.15cm,0) -- +(0,-0.5cm);
	\draw[pui,dashed] (winVista.south)  ++(0.15cm,0) -- +(0,-0.5cm);
	\draw[pui,dashed] (win7.south)  ++(0.15cm,0) -- +(0,-0.5cm);
	\draw[pui,dashed] (winP7)  -- (win8);

	\draw[pui] (win8.east) ++(0,0.15cm)  -- +(0.5cm,0);
	\draw[pui] (win8.west)  ++(0,0.15cm)  -- +(-0.5cm,0);
	
	\draw[pui] (winCE.south) ++(0.15cm,0) -- +(0,-0.5cm);


	% Legende

	\node[] at (3.4cm,1.0cm) (osLegendPos) {};

	\node[below=of osLegendPos] (osLegendTitle) {\bfseries Legende};

	\matrix [below=0.15cm of osLegendTitle,row sep=0.2cm,column sep=0.1cm] (osLegend) {
		\node[osGen,osPC,osLegend]{}; & \node[osLegendText]{Desktop OS}; \\
		\node[osGen,osEmb,osLegend]{}; & \node[osLegendText]{Embedded OS};\\
		\node[osGen,osMob,osLegend]{}; & \node[osLegendText]{Mobiles OS};\\ 
		\node[osGen,osPhone,osLegend]{}; & \node[osLegendText]{Smartphone OS}; \\
		\node[osGen,osTab,osLegend]{}; & \node[osLegendText]{Tablet OS}; \\ 
		\draw[dashed] +(-0.25cm,-0.25cm) -- +(0.25cm,-0.25cm); & \node[osLegendText]{Stark angepasst}; \\
		\draw[pkrn] +(-0.25cm,-0.25cm) -- +(0.25cm,-0.25cm); & \node[osLegendText]{System- \& Dienstprog.}; \\
		\draw[pui] +(-0.25cm,-0.25cm) -- +(0.25cm,-0.25cm); & \node[osLegendText]{Benutzungs-schnittstelle};  \\
	};

	\draw (osLegend.north east) rectangle (osLegend.south west);
	\draw (osLegend.north east) ++(0,0.8cm) rectangle (osLegend.south west);

\end{tikzpicture}
