diff options
| author | Manuel Traut <manut@mecka.net> | 2013-07-02 14:51:31 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@linutronix.de> | 2018-03-16 21:40:44 +0100 |
| commit | d560cd9ca588da5d9d8603f05ecc6a8cc0dc6ea4 (patch) | |
| tree | 295270ff03ebb1c6a11569f3592e2982bce63d81 | |
| parent | 46f251f49f2a7e26a1e1329f8f37e0621febfc37 (diff) | |
changed for pruefung 2013
Signed-off-by: Manuel Traut <manut@mecka.net>
| -rw-r--r-- | pruefung.tex | 108 |
1 files changed, 41 insertions, 67 deletions
diff --git a/pruefung.tex b/pruefung.tex index b42f45d..cc0a827 100644 --- a/pruefung.tex +++ b/pruefung.tex @@ -1,12 +1,12 @@ \documentclass[addpoints,12pt]{exam} -\usepackage{german} +\usepackage{ngerman} \usepackage{listings,color} \usepackage{graphicx} \firstpageheadrule \runningheadrule -\lhead{Manuel Traut\\SoSe 2012} +\lhead{Manuel Traut\\SoSe 2013} \chead{Hochschule Ravensburg-Weingarten\\Linux-Kernelprogrammierung} \rhead{MatrNr:\\Datum:} @@ -33,7 +33,7 @@ von \pointsonpage{\thepage} Punkten} \begin{titlepage} \title{Pr\"ufung Linux-Kernelprogrammierung} \author{Dozent: Manuel Traut} -\date{19. Juli 2012 10:30 Uhr\\Raum H238} +\date{02. Juli 2013 16:30 Uhr\\Raum H143} \maketitle \begin{center} Hochschule Ravensburg-Weingarten @@ -72,103 +72,77 @@ MatrNr:\enspace\hrulefill \begin{questions} -\section{Entwicklungsmodell} +\section*{Entwicklungsmodell} -\question[1] Was versteht man unter dem Begriff 'Kernelpatch'? +\question[3] Was versteht man unter dem Begriff 'Kernelpatch'? Wie wird ein + Patch erstellt und angewendet? -\question[3] F\"ur die Linuxkernelentwicklung wurde das +\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] Was ist zu beachten? +\part[2] Wann wird der Code aus diesem Ordner gel\"oscht / verschoben? \end{parts} -\question[4] Beschreiben Sie die Aufgaben und die Verantwortung eines Linux -Kernelmaintainers. - -\section{Tools} +\section*{Tools} \question \begin{parts} \part[1] Welches Tool ist auf folgendem Bild zu sehen? -\part[3] Warum ist es nicht denkbar die Linux-sourcen ohne ein solches Tool zu - compilieren? -\part[4] Welche Einstellungen können mit Hilfe dieses Tools konfiguriert werden? - (beschreiben Sie Kategorien) +\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 +\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. Welche Funktionalit\"at haben diese eingef\"uhrt? - (grobe Beschreibung) - -\section{Programmierung} - -\question Zusammenspiel des Linuxtreibermodels: +\question[5] Was mu\ss \space ein Bootloader tun um Linux zu booten? -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} +\section*{Programmierung} -\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\"ur 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? -\part [5] Wie k\"onnen die LEDs vom Userspace aus geschalten werden? - Skizzieren Sie auch den Weg durch beteiligten Kernelsubsysteme. -\end{parts} +\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? -\part [2] Sie wollen Ihren Treiber in Mainline Linux integriert haben, wie gehen - Sie vor? +\part[3] Welche Einschr\"ankungen gelten? +\part[2] Mu\ss \space der komplette Quellcode des Treibers ver\"offentlicht + werden? \end{parts} -\section{Rootfilesystem} +\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} -\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. +\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 [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, Befehle) +\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} |
