Prof. Dr.-Ing. Hans-Georg Eßer
Systemprogrammierung, Betriebssystem-Entwicklung
Studiengang Informatik, TH Nürnberg

mit Literate
WS 2015/16
Folien / Videos
SS 2015
Folien / Audio
mit Literate
WS 2014/15
Folien / Videos
SS 2014
Folien / Videos
mit Literate
WS 2013/14
Folien / Videos
SS 2013
Folien / Videos
SS 2012
Folien / Videos
Über den Dozenten
Homepage [extern]
Vorlesungen an der ...
  - FH Südwestfalen
  - Hochschule München
  - FOM Hochschule
  - Hochschule
TH Nürnberg

Operating System Development (Winter term 2015/16)

On this page you can find information and material belonging to my "Operating System Development with Literate Programming" lecture held at Nuremberg Institute of Technology (TH Nürnberg) in the winter term 2015/16. Please note that this page is a translated version, the original page is German, and both this and the original page link to many documents with German content.

Operating System Development with Literate Programming (Winter term 2015/16)

In the winter termin 2015/16 I have held lectures in "Operating System Development with Literate Programming".

Lectures start on October 8th, 2015, at 15:45.

In the first weeks you will not need any materials. I will provide lecture slides as PDF files or as HTML-based slide archives in ZIP files as downloads. I will bring printed exercise sheets to the classes.

If you want to participate in the practical exercises, you will need a Linux system (either a real or a virtual one) with an installed development enviroment (C compiler, assembler, make, etc.) as well as the Qemu emulator. I provide a VirtualBox image that has all required tools pre-installed.

In the practical sessions you will implement and document parts of the tiny, Unix-like operating system ULIX, usimng Literate Programming. Hand in the resulting documentation file before the end of the term if you want to receive credits for this course. (If you're reading this today -- 2020 or later -- it should be obvious that you cannot receive credits :) )


Helpful previous knowledge: programming in C, foundations of operating systems, document markup with LaTeX.


  1. Introduction/Overview
  2. Crash course in C and the Linux shell Bash
  3. Features of a Unix System (overview)
  4. LaTeX and Literate Programming
  1. Booting, Protected Mode, Memory
  2. Interrupts, Faults and System Calls in Ulix
  3. Processes; fork() iplementation in the kernel
  4. Implementation project


[2016/01/07] Andreas Kurz has developed a small tool called nwIndex that displays a program's structure. An archive with the source code and a compiled version suitable for the development VM can be found here.
[2015/12/01] Evaluation results are online (German). Thanks for participating.
[2015/10/04] The first slides and the textbook (voluntary extra reading) are online.


You can download some of the slides in 1-up or 4-up format (PDF), but most slides are HTML-based and were prepared with my LiPPGen tool. Note that almost all slides were written in the German language. However, all identifiers, function names, inline comments etc. in the code are in English. The videos are German, too.

I have run the 1-up PDFs, the exercise sheets and the project task description through the automatic PDF translation service at which uses Google Translate. The English versions are available via the "*-EN" links. Don't expect more from those versions than from other content you've run through an auto-translator :) You may want to look at the German and English documents side-by-side. (I really like how it's translated my name: my last name was turned into "Eater"...)

#Tag ThemaFolien (pdf), Übungen, LösungenVideo (mov)
108.10.2015 Introduction, Installation of the Development VM,
Unix und ULIX features (1.*, 2.1-2.16, 3.*);
Exercise 1
Slides #1: 1-up, 1-up-EN, 4-up
Slides #2: 1-up, 1-up-EN, 4-up
Slides #3: 1-up, 1-up-EN, 4-up
Exercise 1: ue01.pdf, ue01-EN.pdf
#1 (81 MB),
#2 (41 MB)
215.10.2015 LaTeX and Literate Programming (4.*);
Exercise 2
Slides #4: 1-up, 1-up-EN, 4-up
Exercise 2: ue02.pdf, ue02-EN.pdf
Solution: PDF file, Source code (zip)
#1 (86 MB)
322.10.2015 Booting, Protected Mode, Memory (5.*) Slides #5: 1-up, 1-up-EN, 4-up #1 (96 MB),
#2 (69 MB)
429.10.2015 Exercise 3 and Solution (No. 5, 6) Exercise 3: ue03.pdf, ue03-EN.pdf #1 (80 MB)
505.11.2015 Frame and Page Management (6.*),
Exercise 4
Slides #6: HTML,, Print PDF;
Exercise 4: ue04.pdf, ue04-EN.pdf
#1 (75 MB),
#2 (58 MB)
612.11.2015 Exercise 4 (continued) and Solution,
Interrupts and Faults (7.1-7.21)
Slides #7: HTML,, Print PDF #1 (79 MB)
719.11.2015 Interrupts and Faults (7.22-7.36), Exercise 5 Exercise 5: ue05.pdf, ue05-EN.pdf #1 (81 MB),
#2 (19 MB)
826.11.2015 Exercise 5 (No. 10, with solution), mid-term
evaluation, System Calls (8.*), Exercise 5
(No. 11, with solutions), Processes (9.1-9.7)
Slides #8: HTML,, Print PDF
Slides #9: HTML,, Print PDF
#1 (58 MB),
#2 (42 MB)
903.12.2015 Processes (9.8-9.80) -- #1 (82 MB),
#2 (72 MB)
1010.12.2015 Processes (9.81-9.92), Exercise 6 Exercise 6: ue06.pdf, ue06-EN.pdf #1 (63 MB)
1117.12.2015 Solutions for Exercise 6, fork() and Sched-
uling (10.*), Introduction to the project (exam)
Slides #10: HTML,, Print PDF;
Project Tasks, Project Tasks-EN
#1 (90 MB),
#2 (40 MB)
24.12.2015-06.01.2016: Christmas Break
1207.01.2016 Project
1314.01.2016 Project
Turn in project reports: 07.02.2015 (23:59 Uhr)

Blackboard pictures: Folder


  • H.-G. Eßer, F. C. Freiling: The Design and Implementation of the ULIX Operating System, 2015, PDF file (Official course book)
  • F. Mittelbach, M. Goossens: Der LaTeX-Begleiter, 2010, ISBN: 386894088X
  • D. E. Knuth: Literate Programming, The Computer Journal, 27(2), pp. 97-111, 1984, PDF file
  • N. Ramsey: Literate Programming Simplified, IEEE Software, 11(5):97-105, 1994, PDF file
  • N. Ramsey: A One-Page Guide to Using noweb with LaTeX, PDF file
  • A. S. Tanenbaum, A. S. Woodhull: Operating Systems Design and Implementation, 3rd edition, ISBN 0131429388 bzw. 0135053765 (Taschenbuch)
  • W. R. Stevens, S. A. Rago: Advanced Programming in the Unix Environment, 2013, ISBN 0321637739
  • Helmut Herold: Linux/Unix Systemprogrammierung, 2004, ISBN: 3827321603
  • Elias Fischer: Das C-Tutorial
  • Ted Jensen: A Tutorial on Pointers and Arrays in C, 2003

Copyright © 2012-2017 Hans-Georg Eßer. Letzte Änderung: Tuesday, 06-Oct-2020 12:30:25 CEST
Anschrift: Technische Hochschule Nürnberg, Fakultät Informatik, Hohfederstr. 40, 90489 Nürnberg