Course Syllabus¶
This course will be an in-depth study of important concepts and techniques found in modern computer operating systems. An important part of the course will be the case study of an actual operating system. We will primarily use Linux 5.x in this class. You will learn key subsystems of Linux Kernel and will be asked to develop kernel code to extend kernel subsystems. Upon completion of the course, you will be able to:
Identify the various subsystems composing the Linux kernel and describe their functionality, architecture, as well as the main characteristics of their implementation
Design, implement and modify Linux kernel code and modules for these subsystems
Test, debug and evaluate the performance of systems software in kernel or user space, using debugging, monitoring and tracing tools
Prerequisite¶
The officially published prerequisites for this class are CSE-306, the undergraduate level operating systems course. It is necessary. If you’ve taken an equivalent course elsewhere, and it includes actual programming experience in any Unix kernel, please speak to me first to get an approval to take this class. If you’ve never taken an introductory operating systems course before, you may not take this class; in some cases, having industry experience in the same field is enough.
You should already know the C programming language and be proficient with it.
You should already have basic exposure to Unix commands.
Meetings¶
When: Tues and Thurs 8:00-9:20 AM (EST)
Where: Zoom (the meeting link can be found at Blackboard)
All classes will be recorded in the cloud (via Blackboard/Zoom)
Instructor¶
Email: dongyoon [AT] cs [DOT] stonybrook [DOT] edu
Office Hours: Tues 9:30-10:30 AM and Thurs 11:00 AM-12:00 PM (EST)
Office: Zoom (the meeting link can be found at Blackboard)
Teaching Assistant¶
Sergey Madaminov: smadaminov [AT] cs [DOT] stonybrook [DOT] edu
Ajay Paddayuru Shreepathi: apaddayurush [AT] cs [DOT] stonybrook [DOT] edu
Office Hours: by appointment
Communication¶
Course website: Syllabus and schedule
Blackboard: Primary way materials are distributed: e.g., lecture slides and grades. Submit your projects here
Piazza: Q&A (annonymous options available)
Text Book¶
Grades (tentative)¶
Projects (75%): P1 (10%), P2 (10%), P3 (15%), P4 (25%), P5 (15%)
Final exam (25%): online (via Honorlock)
Policies¶
All programming projects are individual assignments. You may discuss the assignment details, designs, or debugging techniques with anyone you like in general terms, but you may not provide, receive, or take code to or from anyone. The code you submit must be your own work and only your own work. Any evidence that source code has been copied, shared, or transmitted in any way will be regarded as evidence of academic dishonesty.
No late project work will be assigned a grade.
(Trivial) submission errors (e.g., a missing file, a wrong patch) are subject to at least 25% penalty. Students should provide an evidence (e.g., last modified time stamp) that the original source codes have not been modified after the due date.
Requirements for the hybrid section¶
The students who are registered in the hybrid section (CSE 506-02, Class# 55714) should attend at least three classes from NCS 120 to meet the in-person requirement and to obatain a passing grade.
Attendance¶
Students are expected to attend every class, report for examinations and submit major graded coursework as scheduled. If a student is unable to attend lecture(s), report for any exams or complete major graded coursework as scheduled due to extenuating circumstances, the student must contact the instructor as soon as possible. Students may be requested to provide documentation to support their absence and/or may be referred to the Student Support Team for assistance. Students will be provided reasonable accommodations for missed exams, assignments or projects due to significant illness, tragedy or other personal emergencies. In the instance of missed lectures or labs, the student is responsible for insert course specific information here (examples include: review posted slides, review recorded lectures, seek notes from a classmate or identified class note taker, write lab report based on sample data). Please note, all students must follow Stony Brook, local, state and Centers for Disease Control and Prevention (CDC) guidelines to reduce the risk of transmission of COVID. For questions or more information click here.
Academic Integrity¶
Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person’s work as your own is always wrong. Faculty are required to report any suspected instances of academic dishonesty to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty, please refer to the Academic Integrity website.
Student Accessibility Support Center¶
If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Student Accessibility Support Center, ECC (Educational Communications Center) Building, room 128, (631) 632-6748. They will determine with you what accommodations, if any, are necessary and appropriate. All information and documentation is confidential.
Critical Incident Management¶
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students’ ability to learn.
Acknowledgments¶
This course reuses some of the material from SBU’s CSE 506 by Drs. Zadok, and Ferdman, VT’s ECE 5984, GT’s CS 3210. UW’s CSE 451, OSPP, and MIT’s 6.828.