Link Search Menu Expand Document

CS6640: Computer Systems Implementation (OSI)


01/26: Lab1 grade released

  • Lab 1 grades have been released on Canvas. Please review your grades. If you have questions, email the staff mailing list.

Announcements

Course information

  • Course Number: CS6640
  • Lectures: Tue/Fri 13:35–15:15
  • Room: WVH 212
  • Instructor: Cheng Tan
  • TA: Yutong Wang
  • Staff mailing list: cs6640-staff@ccs.neu.edu
  • Office hours:
TueYutong Wang16:30 - 17:30In-person, WVF 118
FriCheng Tan15:15 - 16:15In-person, class room then WVH 344

Operating Systems Implementation (OSI)

Understanding operating system internals is notoriously challenging. Several factors contribute. First, operating systems couple tightly with CPUs, whose designs have grown complex to balance performance and backward compatibility; this coupling makes OS design harder to grasp. Second, operating systems expose high-level abstractions—such as processes, virtual memory, and files—that ease use while obscuring implementation details. Third, operating systems interact with peripheral devices (e.g., disks, network interface cards, and, of course, now increasingly GPUs and NPUs), whose interfaces often lie outside the standard computer science curriculum. This course targets these challenges through a structured study of operating system internals.

This course is designed to help students understand OS internals by studying a basic but real OS, egos-2k+. egos-2k+ is an initailly single-core microkernel that runs on RISC-V CPUs. By “real”, we mean egos-2k+ can run on a bare-metal RISC-V machine with minor tweaks.

egos-2k+ is tailored from egos-2000, which is developed by Yunhao Zhang and debuted in 2020. egos-2000 is further a rewriting (for RISC-V CPUs) of Earth Grass Operating System (hence egos) developed by Robbert van Renesse at Cornell University in 2018. You can find the differences between egos-2k+ and egos-2000 here.

Course prerequisite: This course is for

  • students who have taken undergrad-/grad-level OS courses (e.g., CS3650, CS5600),
  • and are fluent in C language.

Course structure

  • The lectures will focus on introducing OS implementations, with a brief review of core OS concepts. See schedule here.
  • The labs are the major part of the course. See them here.
  • The homeworks are intended to reinforce the contents of lectures and help students understand main concepts. They will be posted on the schedule page.
  • The announcements will be posted here.
  • The policies and grading for this course is here.
  • You can find useful references from here.

Acknowledgments

We are heavily indebted to Cornell CS 4411/5411 (22fall).
Our labs are tailored from egos-2000.
Sevearl lab instructions are adapted from the EGOS book in collaboration with Yunhao Zhang.