http://www.hgesser.de/

Private Homepage von Hans-Georg Eßer

header

Navigation

Links / Social

Software

Blaue Links: intern
🔗 Rote Links: extern


Promotionsstudium

 

Übersicht

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

04/1999-02/2000    Forschungszentrum Jülich, Zentralinstitut für Angewandte Mathematik (ZAM),
Forschungsthema: Automatische Leistungsanalyse paralleler Programme

Publikationen:
[1] Michael Gerndt, Hans-Georg Eßer. Specification Techniques for Automatic Performance Analysis Tools. Proceedings of the Eighth International Workshop on Compilers for Parallel Computers CPC 2000, Ecole Normale Supérieure Lyon, January 2000, Aussois, pp. 1-11 (also Technical Report FZJ-ZAM-IB-9921, December 1999, 7 pages); Abstract


Copyright © 1997-2024 Hans-Georg Eßer; Server: Debian Linux, Apache Web Server, letzte Änderung: Wednesday, 20-Jan-2016 21:48:18 CET
Theme: Hazard Area 1.6 (modified), created by Bryan Bell, Copyright © 2000-2006 Weblogger.com.