\documentclass[addpoints,12pt]{exam}

\usepackage{ngerman}
\usepackage{listings,color}
\usepackage{graphicx}

\firstpageheadrule
\runningheadrule
\lhead{Manuel Traut\\SoSe 2013}
\chead{Hochschule Ravensburg-Weingarten\\Linux-Kernelprogrammierung}
\rhead{MatrNr:\\Datum:}

\firstpagefootrule
\runningfootrule
\firstpagefooter{Page \thepage\ of \numpages}
{}
{Punkte: \makebox[.5in]{\hrulefill}\\
von \pointsonpage{\thepage} Punkten}

\runningfooter{Page \thepage\ of \numpages}
{}
{}

\pagestyle{headandfoot}

\pointsinrightmargin
\pointpoints{Punkt}{Punkte}

\begin{document}


\begin{coverpages}
\begin{titlepage}
\title{Pr\"ufung Linux-Kernelprogrammierung}
\author{Dozent: Manuel Traut}
\date{02. Juli 2013 16:30 Uhr\\Raum H143}
\maketitle
\begin{center}
Hochschule Ravensburg-Weingarten
\vspace{1cm}

Dauer: 60 Minuten, erlaubte Hilfsmittel: keine
\end{center}

\vspace{2cm}
Name:\enspace\hrulefill
\vspace{2cm}
MatrNr:\enspace\hrulefill
\begin{center}
\begin{lstlisting}
              a8888b.
             d888888b.
             8P"YP"Y88      (((((((())))))))))
             8|o||o|88      ||VIEL ERFOLG !!||
             8'    .88      ((((((((((((()))))
             8`._.' Y8.
            d/      `8b.
          .dP   .     Y8b.
         d8:'   "   `::88b.
        d8"           `Y88b
       :8P     '       :888
        8a.    :      _a88P
      ._/"Yaa_ :    .| 88P|
      \    YP"      `| 8P  `.
      /     \._____.d|    .'
      `--..__)888888P`._.'
\end{lstlisting}
\end{center}
\end{titlepage}
\end{coverpages}


\begin{questions}

\section*{Entwicklungsmodell}

\question[3] Was versteht man unter dem Begriff 'Kernelpatch'? Wie wird ein
  Patch erstellt und angewendet?

\question[4] F\"ur die Linuxkernelentwicklung wurde das
 Versionskontrollsystem git entwickelt. Nennen Sie mind. 4 gravierende
 Unterschiede zu Versionskontrollsystemen wie cvs oder svn.

\question[6] Beschreiben Sie den Releasezyklus/Versionierung des Linuxkernels
  (seit v3.0). Verwenden Sie in diesem Zusammenhang die Begriffe:
  'Release', 'stable Kernel', 'Release Candidate', 'merge window'

\question Im Linuxsourcetree gibt es einen Ordner 'staging'.
\begin{parts}
\part[1] Was findet man in diesem Ordner?
\part[2] Wann wird der Code aus diesem Ordner gel\"oscht / verschoben?
\end{parts}

\section*{Tools}

\question
\begin{parts}
\part[1] Welches Tool ist auf folgendem Bild zu sehen?
\part[1] \"Uber welche Datei wird der Inhalt / Struktur des Tools gesteuert?
\part[8] Welche Einstellungen k\"onnen mit Hilfe dieses Tools konfiguriert
	werden? (beschreiben Sie 4 Kategorien)
\end{parts}

\includegraphics[height=0.3\textwidth]{./images/kconfig.png}

\question[6] Ein von Ihnen entwickelter Kerneltreiber funktioniert nicht wie
erwartet. Welche Debugingm\"oglichkeiten haben Sie?

Nennen Sie mindestens zwei und beschreiben Sie Vor- und Nachteile

\question[5] Was mu\ss \space ein Bootloader tun um Linux zu booten?

\section*{Programmierung}

\question[6] Kernel- und Userspace arbeiten in unterschiedlichen
  Addressr\"aumen. Nennen Sie 3 M\"oglichkeiten, wie Daten zwischen den
  Bereichen ausgetauscht werden k\"onnen. Nennen Sie jeweils typische
  Verwendung, gegebenenfalls Einschr\"ankungen.

\question Das Kernelsubsystem 'Userspace-IO' (UIO) kann zur Entwicklung eigener
  Treiber verwendet werden.
\begin{parts}
\part[3] Welche Einschr\"ankungen gelten?
\part[2] Mu\ss \space der komplette Quellcode des Treibers ver\"offentlicht
  werden?
\end{parts}

\question Sie wollen Ihren eigenen Treiber in Mainline Linux integriert
  haben.
\begin{parts}
\part[4] Was \"ubermitteln Sie auf welchem Weg wohin?
\part[2] Wie wird die Qualit\"at Ihres Treibers gepr\"uft, wie reagieren Sie
  gegebenenfalls auf Beanstandungen?
\end{parts}

\section*{Rootfilesystem}

\question Sie haben ein ARM embedded System mit 256 MB NAND Flash und sollen ein
  GNU/Linux Userspace einrichten. Es soll Netzwerk, Bluetooth und Audio
  Unterst\"utzung vorhanden sein.
\begin{parts}
\part [3] Aus welchen Komponenten besteht das Rootfilesystem?
\part [2] Wie erstellen Sie ein Rootfilesystem f\"ur dieses System?
\part [1] Was mu\ss \space beim \"Ubertragen der Daten auf das Zielmedium
  beachtet werden?
\end{parts}
\end{questions}

\vspace{1cm}
Punkte: \_\_\_\_ von \numpoints
\hspace{1cm}
Note:

\end{document}
