10/2010-03/2015 |
Universität Erlangen-Nürnberg, Technische Fakultät
Dissertation: Design, Implementation and Evaluation of the ULIX Teaching Operating System
Betreuer: Prof. Dr. Felix Freiling
Research Blog (englisch)
Folien der Verteidigung (23.03.2015)
Dissertation
(veröff. am 04.09.2015)
Abstract (english):
For this thesis, we have implemented and documented Ulix, a Unix-like
instructional operating system whose kernel sources consist of 7750 lines
of C and Assembler code. The system supports concurrent processes and
threads, implements a Round-Robin scheduler, a virtual filesystem with
support for hard and floppy disks, the logical Minix filesystem and a
/dev filesystem, and
it provides mutexes and semaphores. In addition, a user mode library gives
access to the system calls via typical Unix functions. Ulix can be
executed in the Qemu PC emulator.
While there are several other instructional operating systems with similar
features, e. g., Minix, the novelty of our approach lies in using Knuth's
Literate Programming technique which puts the focus on
documentation with embedded code, rather than code with embedded
documentation. The literate program is a book--in this case an
introduction to operating system principles which
presents the full Ulix source code in a way that follows
didactical considerations.
Based on the Ulix source code and the book we developed a "Design
and implementation of operating systems" course with a collection of
implementation exercises that was held at
TH Nuremberg in the winter semester 2013/14.
When creating the course materials, we used LiPPGen (the Literate Programming
Presentation Generator), a tool that allows
the half-automatic generation of course slides with scrollable code
chunk presentation.
We evaluated the learning outcomes via pre- and post-tests and found that
the understanding of OS concepts was improved.
Part I of the thesis summarizes the research carried out while conceptually
designing and implementing Ulix as well as evaluating its use in
a course setting. Part II is the Ulix book.
Abstract (deutsch):
Im Rahmen dieser Arbeit haben wir Ulix, ein Unix-ähnliches
Lehrbetriebssystem, implementiert und dokumentiert. Die Kernel-Sourcen
bestehen aus 7750 Zeilen C- und Assembler-Code. Das System unterstützt
die parallele Ausführung von Prozessen und Threads, implementiert einen
Round-Robin-Scheduler, ein virtuelles Dateisystem, das Festplatten-
und Floppy-Laufwerke sowie das logische Minix-Dateisystem und ein
/dev-Dateisystem unterstützt,
und es stellt Mutexe und Semaphore zur Verfügung. Ergänzend erlaubt eine
User-Mode-Bibliothek über typische Unix-Funktionen Zugriff auf die
System-Calls. Ulix läuft im PC-Emulator Qemu.
Zwar gibt es bereits zahlreiche weitere Lehrbetriebssysteme mit ähnlichen
Features, wie z. B. Minix, doch unser Ansatz unterscheidet sich wesentlich von ihnen,
da wir die Programmiertechnik Literate Programming von D. E. Knuth
eingesetzt haben, welche den Fokus auf Dokumentation mit integriertem
Code (statt auf Code mit integrierter Dokumentation) legt. Das
Literate Program ist ein Buch: in diesem Fall eine Einführung in
Betriebssystemkonzepte, die den
vollständigen Ulix-Quellcode didaktisch aufbereitet präsentiert.
Basierend auf dem Ulix-Quellcode und dem Buch haben wir eine
Vorlesung "Betriebssystem-Entwicklung mit Literate Programming"
mit einer Reihe von Implementierungsaufgaben konzipiert, die wir im
Wintersemester 2013/14 an der TH Nürnberg gehalten haben. Dabei kam auch
das Tool LiPPGen (Literate Programming
Presentation Generator) zum Einsatz, das in der Lage ist, halbautomatisiert aus
einem Literate Program einen Foliensatz mit scrollbarer Code-Chunk-Darstellung
zu erzeugen.
Wir haben den Lernerfolg durch Vorher- und Nachher-Tests überprüft und festgestellt,
dass sich das Verständnis der Betriebssystemkonzepte verbesserte.
Teil I der Arbeit fasst die Forschungsergebnisse, die sich aus dem konzeptuellen
Design und der Implementierung von Ulix ergeben haben, zusammen und
evaluiert den Einsatz von Ulix in der Lehre. Teil II ist das Ulix-Buch.
Publikationen:
[1] |
Hans-Georg Eßer: Treating Memory Management and Filesystems as One Topic,
University of Erlangen, Dept. of Computer Science, Technical Report CS-2011-04, April 2011,
tr_cs_2011_04.pdf
|
[2] |
Hans-Georg Eßer: Combining Memory Management and Filesystems in an Operating Systems Course (Poster),
In: Proceedings of the 16th Annual Conference on Innovation and Technology in Computer Science Education
(ITiCSE 2011),
Juni 2011
|
[3] |
Hans-Georg Eßer:
LiPPGen: A presentation generator for literate-programming-based teaching, In: TUGboat, Volume 34 (2013), No. 2, TeX Users Group, August 2013
|
[4] |
Hans-Georg Eßer:
Design, Implementation and Evaluation of the ULIX Teaching Operating System, Dissertation, FAU Erlangen-Nürnberg, September 2015
|
|