Link Search Menu Expand Document

CS6640: Computer Systems Implementation


11/22: fixing Lab6

  • See a fix in lab6

Announcements

Course information

  • Course Number: CS 6640
  • Lectures: Tue 11:45 am - 1:25 pm, Thur 2:50 pm - 4:30 pm
  • Room: Hastings Suite 107
  • Instructor: Cheng Tan
  • Teaching Assistants: Peng Gu
  • Staff mailing list: cs6640-staff@ccs.neu.edu
  • Office hours:
MonPeng Gu15:00 - 17:00Online; using Khoury office hour app
WedCheng Tan14:00 - 15:00In-person, 344 WVH

Operating Systems Implementation (OSI)

For students, operating system internals are notoriously difficult to learn. This is due to multiple reasons. For example, OSes are tightly intertwined with CPUs, and as CPUs are increasingly complicated (for performance plus backward compatibility), OSes become increasingly difficult to understand. For another example, OSes hide ugly details and provide elegant abstractions—processes, virtual memory, files—that are easy to use but hard to implement. Also, OSes talk to peripheral devices (like disk and NIC) whose interfaces are usually out of scope of CS curriculum.

This course is designed to help students understand OS internals by studying a basic but real OS, egos-2k+. egos-2k+ is a 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.