Design, Implementation and Evaluation of the ULIX Teaching Operating System

Design, Implementation und Evaluation des Lehrbetriebssystems ULIX

  • 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 PrograWe 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.show moreshow less
  • 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. MinixWir 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.show moreshow less

Download full text files

Export metadata

  • Export Bibtex
  • Export RIS

Additional Services

Share in Twitter Search Google Scholar
Metadaten
Author:Hans-Georg Eßer
URN:urn:nbn:de:bvb:29-opus4-65543
Advisor:Felix Freiling
Document Type:Doctoral Thesis
Language:English
Year of Completion:2015
Embargo Date:2015/09/04
Publishing Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU)
Granting Institution:Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Technische Fakultät
Date of final exam:2015/03/23
Release Date:2015/09/11
Tag:Literate Programming; Operating System; Software Documentation; Teaching
SWD-Keyword:Betriebssystem; Lehre; Programmdokumentation; UNIX
Pagenumber:1054
Institutes:Technische Fakultät / Department Informatik
CCS-Classification:D. Software / D.4 OPERATING SYSTEMS (C) / D.4.7 Organization and Design
Dewey Decimal Classification:Informatik, Informationswissenschaft, allgemeine Werke / Informatik, Wissen, Systeme / Datenverarbeitung; Informatik
open_access (DINI-Set):open_access
Licence (German):Keine Creative Commons Lizenz - es gilt der Veröffentlichungsvertrag und das deutsche Urheberrecht

$Rev: 13581 $