Expertise in programming using C/C++, undergraduate course on Operating Systems (for Masters and Ph.D. students). For IIT Kanpur UG students, CS330 is a prerequisite.
Exposure to one or more of the following courses---CS622 (Advanced Computer Architecture), CS628 (Computer Systems Security), CS665 (Secure Memory Systems), CS632 (Topics in Distributed Systems), CS625 (Advanced Computer Networks)---is desirable but not a mandatory requirement.
Phd., Masters, 3rd and 4th year UG Students
Understanding the challenges of system software design is crucial in modern era computing as system softwares are backbones of many computing models like cloud computing, big-data analytics and IoT. One of the main goals of this course is to expose students to Linux OS (a.k.a. Linux Kernel) internals to provide an up-close view of design and features of a widely used open source OS. Further, exposure to state-of-the-art hypervisors like KVM and Xen is intended to provide better understanding of virtualized systems. The course will primarily be structured around programming assignments and a project. The programming assignments are meant to enhance the understanding of the concepts discussed in the lectures. The project component plays a crucial part of the course which exposes students to carry out research through empirical analysis, design and implementation and experimental evaluation followed by a report and a presentation.
The course will primarily focus on the following topics.