CS4973/CS6640: Computer Systems Implementation (OSI)
03/17: Exam solution and Lab7 released
- The exam solution is released on Canvas.
- Review the provided answers and estimate your score.
- Your official exam grade will be released on Canvas next Monday (03/31).
- We will not return your exam. If there is a discrepancy between your estimated score and the posted grade, contact us.
- Lab7 is released and will be due in two weeks (04/07/2025, 23:59).
- This is the last lab. (finally!)
- The instructor will go through the design of our file system in the next lecture.
- You should get familiar with the lab before the lecture. (start early!)
Course information
- Course Number: CS4973/CS6640
- Lectures: M 6:00 pm - 9:20 pm
- Room: Shillman Hall 215
- Instructor: Cheng Tan
- OSI staff: Shuyi Lin (TA) and Rohan Jamadagni (egos expert)
- Staff mailing list:
cs6640-staff@ccs.neu.edu
- Office hours:
Mon | Cheng Tan | 14:00 - 15:00 | In-person, 344 WVH |
Thu | Shuyi Lin | 13:00 - 14:00 | In-person, INV 018 |
Operating Systems Implementation (OSI)
Understanding operating system internals is notoriously challenging for students. Several factors contribute to this difficulty. First, operating systems are tightly coupled with CPUs, which have grown increasingly complex to balance performance and backward compatibility, making OS design harder to grasp. Second, operating systems provide elegant abstractions—such as processes, virtual memory, and files—that simplify usage but obscure their intricate implementations. Third, operating systems interact with peripheral devices (e.g., disks and network interface cards), whose interfaces often fall outside the standard computer science curriculum. This course addresses these challenges, offering a structured exploration 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 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.