Design, Implementation and Evaluation of the ULIX Teaching Operating System

Language
en
Document Type
Doctoral Thesis
Issue Date
2015-09-11
Issue Year
2015
Authors
Eßer, Hans-Georg
Editor
Abstract

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 and evaluated it in a course setting. Part I of the thesis summarizes the research carried out while conceptually designing and implementing Ulix as well as evaluating the Ulix-based course. Part II is the Ulix book.

Abstract

Wir haben 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, gehalten und evaluiert. 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 in der Lehre. Teil II ist das Ulix-Buch.

DOI
Faculties & Collections
Zugehörige ORCIDs