This course covers the fundamentals of operating systems (OS) design both from a theoretical and a practical perspective. The course is organized in two parts, each involving a separate course project.
The first part deals with the system call interface between applications and the OS, the multi-process abstraction of a computing system, and task scheduling algorithms. The associated project involves the implementation of a custom Unix command-line interpreter (shell).
The second part of the course covers memory management, multi-threading libraries, and file systems. A real implementation of these features is studied on a miniature, open-source operating system called xv6. The associated project involves an extension of xv6 to support custom features, such as new scheduling policies, kernel-level threads, or file system recovery.
Written reviews 3
Anonymous student feedback, shown as submitted.
3 of 3 reviews
Semester not recorded
Great guy. Hard class but very entertaining at the same time. I never thought a hard class like this could be fun, but it was. If your GPA is in a good shape, live a little, take this class and watch it drop.
Semester not recorded
The absolute GOAT
Semester not recorded
the goat