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

  • You must have achieved a grade of C or higher in CSE 219 (or CSE 260) and CSE 320 (or ESE 380) to take this course.

  • 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:30-9:50 AM

  • Where: (Old) Computer Science 2120

Instructor

  • Dongyoon Lee

  • Email: dongyoon [AT] cs [DOT] stonybrook [DOT] edu

  • Office Hours: Tues 10:00-11:00 AM and Thurs 11:00 AM-12:00 PM

  • Office: 339 New Computer Science (NCS)

Teaching Assistant

  • Arun Kumar Ganesh: arganesh cs [DOT] stonybrook [DOT] edu

  • Thejesh Venkata Arumalla: tarumalla [AT] cs [DOT] stonybrook [DOT] edu

  • Office Hours: by appoitment (please email them).

Communication

  • Course website: Syllabus and schedule

  • Brightspace: 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 (60%)
    • P1 (10%)

    • P2 (10%)

    • P3 (15%)

    • P4 (15%)

    • P5 (10%)

  • Final exam (40%)
    • Date: Tuesday, Dec 12, 2023

    • Time: 11:15 AM - 12:45 AM (90 MINS)

    • Location: TBD

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.

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 306 by Dr. Stark and CSE 506 by Drs. Zadok, and Ferdman, VT’s ECE 4984/5984, GT’s CS 3210. UW’s CSE 451, OSPP, and MIT’s 6.828.