diff options
| author | Manuel Traut <manut@mecka.net> | 2012-07-17 10:26:17 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@linutronix.de> | 2018-03-16 21:39:30 +0100 |
| commit | 498c9ea2498497cc398c910f907c0882b3aa1b72 (patch) | |
| tree | b5058814bb18eec2a7a01cd62db4419780703e6f | |
| parent | 4fd7806b30863b20f1126007d9437cd18a1b276f (diff) | |
add pruefung 2012
Signed-off-by: Manuel Traut <manut@mecka.net>
| -rw-r--r-- | images/kconfig.png | bin | 0 -> 13068 bytes | |||
| -rw-r--r-- | pruefung.tex | 169 |
2 files changed, 169 insertions, 0 deletions
diff --git a/images/kconfig.png b/images/kconfig.png Binary files differnew file mode 100644 index 0000000..4fdd864 --- /dev/null +++ b/images/kconfig.png diff --git a/pruefung.tex b/pruefung.tex new file mode 100644 index 0000000..4f5f8cc --- /dev/null +++ b/pruefung.tex @@ -0,0 +1,169 @@ +\documentclass[addpoints,12pt]{exam} + +\usepackage{german} +\usepackage{listings,color} +\usepackage{graphicx} + +\firstpageheadrule +\runningheadrule +\lhead{Manuel Traut\\SoSe 2012} +\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{19. Juli 2012} +\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[1] Was versteht man unter dem Begriff 'Kernelpatch'? + +\question[3] F\"ur die Linuxkernelentwicklung wurde das + Versionskontrollsystem git entwickelt. Nennen Sie mind. 4 gravierende + Unterschiede zu Versionskontrollsystemen wie cvs oder svn. + +\question Im Linuxsourcetree gibt es einen Ordner 'staging'. +\begin{parts} +\part[1] Was findet man in diesem Ornder? +\part[2] Was ist zu beachten? +\end{parts} + +\question[4] Beschreiben Sie die Aufgaben und die Verantwortung eines Linux +Kernelmaintainers. + +\section{Tools} + +\question +\begin{parts} +\part[1] Was ist auf folgendem Bild zu sehen? +\part[3] Warum wird es ben\"otigt? +\part[4] Was kann mit diesem Tool gemacht werden? (beschreiben Sie 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 + +\section{Plumbing Layer} + +\question [2] Sie starten ein Linuxsystem. Die letzten Ausgaben lauten: + 'freeing memory, loading init' + Nennen Sie 2 m\"ogliche Ursachen. + +\question [2] In 3.4-rc2 wurde die sogenannte x32 system call ABI Patche + gemerged. Was f\"ur Funktionalit\"at haben Sie eingef\"uhrt? + (grobe Beschreibung) + +\section{Programmierung} + +\question Zusammenspiel des Linuxtreibermodels: + +Denken Sie dabei an die Strukturen 'Bus', 'Device' und 'Driver'; +Beschreiben Sie: +\begin{parts} +\part [1] Wie kann die Zust\"andigkeit eines Treibers f\"ur ein Ger\"at + ausgedr\"uckt werden? +\part [2] Was wird typischerweise in einer register\_* Funktion gemacht? +\part [3] Wozu dient eine *probe Funktion? +\end{parts} + +\question Sie wollen einen SPI LED Baustein (erm\"oglicht das Steuern von 16 +LEDs - an, aus, helligkeit - mittels SPI Kommandos) an Ihr embedded Linux +Board anschliessen. Alle Treiber f\"ur Ihr Board sind bereits im Mainline Linux +enthalten. Allerdings gibt es noch keine Unterst\"utzung für Ihren LED Baustein. +Sie haben ein Datenblatt vom Hersteller des LED Bausteins, der die +unterst\"utzen SPI Befehle beschreibt. Was tun Sie nun? +\begin{parts} +\part [10] Beschreiben Sie 2 M\"oglichkeiten, wie Sie den LED Baustein per + Software integrieren k\"onnten. Nennen Sie jeweils Vor- und + Nachteile. Markieren Sie die M\"oglichkeit welche Sie f\"ur am + sinnvollsten erachten und f\"ur die Beantwortung der nachfolgenden + Fragen als Basis nutzen. + +\part [3] Welche Dateien im Linuxkernel werden Sie modifizieren / anlegen ? +\part [2] Wie k\"onnen die LEDs vom Kernel aus geschalten werden? (Pseudocode) +\part [5] Wie k\"onnen die LEDs vom Userspace aus geschalten werden? + Skizzieren Sie auch den Weg durch beteiligte Subsysteme. +\end{parts} + +\section{Rootfilesystem} + +\question Sie haben ein System mit 256 MB NAND Flash und sollen ein + GNU/Linux Userspace (ohne Xorg, etc) einrichten. Es sollen g\"angige Tools + f\"ur Netzwerk, Bluetooth und Audio vorhanden sein. + +\begin{parts} +\part [2] Wie erstellen Sie das Rootfilesystem ? (Tools, Steps, Pseudocode) +\part [6] Sie haben einen u-boot Bootloader und k\"onnen aus Flash und von SD + Card booten. Das Rootfilesystem soll zuk\"unftig auf einem ubifs + liegen. Wie gehen Sie vor? (Tools, Steps, Pseudocode) +\end{parts} +\end{questions} + +\vspace{1cm} +Punkte: \_\_\_\_ von \numpoints +\hspace{1cm} +Note: + +\end{document} |
