CAS CS553 – Advanced Operating Systems
Undergraduate Prerequisites: A good understanding of OS concepts from CS 552 Operating Systems or equivalent. During the course you will be required to read and write C or C++ code. Basic programming skills in C will do; C++ is fine, however, the programming and debugging load will be high.
Syllabus: CAS CS553
Description: During this hands-on course small teams of 2-3 students will design and build their own little multi-server operating systems on top of the L4Ka::Pistachio microkernel. The goal is to gain practical experience in applying the theory of operating systems to the design and implementation of a consistent and functioning set of operating system services that manage and abstract the hardware resources and provide a base system on which a robust user environment can be developed.
The lectures focus on different “building blocks” of operating systems such as: communication, multi-tasking/-processing, virtual memory management, and file services. Examples and case-studies found in contemporary operating systems are included. A major component of the course is the class project. The project gives the students the opportunity to design (and later implement in teams), their own little multi-sever operating system on top of the L4Ka::Pistachio microkernel. After the build environment, tools, and example code is presented, we focus on incorporating the building blocks from the lectures into our to-be-designed OS. Each student (or team, depending on enrollment) will present their own design ideas for one particular aspect. Expect several hours of work per week in order to produce a functioning implementation of the OS by the end of the course. There is no required text for the course.