Lab Sessions for Operating Systems @KUL

This website hosts the lab sessions for the KU Leuven course on Operating Systems (B-KUL-G0Q35A). The menu on the left side of this page provides links to individual lab sessions, which will be made available session by session throughout the semester, along with tutorials for setting up your development environment.

Lab Organization

During the lab sessions, you will study and extend the small xv6-riscv operating system, a UNIX clone developed at MIT for teaching purposes. You are expected to prepare for each session by reading the relevant sections of the xv6 book (see the overview table at the bottom of this page). During the lab sessions, you will work on implementation exercises with guidance from a teaching assistant.

:warning: Participation in the lab sessions is mandatory. You are expected to come prepared by having read the relevant chapter from the xv6 book.

:bulb: Don’t assume you fully grasp the material just because you completed the exercises labeled “easy” during the lab. Make sure you tackle the “moderate” and “hard” exercises as well, as they are crucial for a deep understanding and preparation for the coding exam.

Working Outside the Labs

In line with the credits allocated for lab sessions, we do not expect you to complete all exercises during the lab. You are expected to continue working on them at home (independently or in small groups). The sessions will quickly become more complex and build on each other, so it is essential to come well-prepared. Make sure to complete the previous session’s work at home before the next session.

:warning: It is essential to come well-prepared to the next session; do not wait for the reference solutions from last week, as you will fall behind!

:bulb: To support you outside of lab sessions, you can open GitLab “issues”. First check wether a similar question has already been asked, and provide a clear and concise description with sufficient context and details for effective assistance. Do not paste full code and expect us to debug it for you!

Permanent Evaluation

The lab sessions are designed to prepare you for two “live coding” exams scheduled throughout the semester. Each exam lasts 2 hours, during which you will have to independently implement a small extension to xv6, similar to the lab sessions. It is essential to keep up with the lab sessions throughout the semester to ensure you are well-prepared for these exams.

:warning: If you do not pass the course in the first exam period, you will not have the opportunity to retake the permanent evaluation for the lab sessions.

Semester Planning

Topic Date Preparation
Lab 1: OS Interfaces October 2 xv6 book Chapter 1; refresh C (if needed)
Lab 2: System calls October 9 xv6 book Chapter 2
Lab 3: Virtual Memory October 16 xv6 book Chapter 3
Coding Exam 1 October 30 Lab sessions 1-3
Free November 6 No lab session!
Lab 4: Traps November 13 xv6 book Chapters 4 + 5
Lab 5: File Systems November 20 xv6 book Chapter 8
Feedback Exam 1 + Q&A November 27 Labs 1-5
Coding Exam 2 December 3 Lab sessions 1-5