=============== 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 ------------ - `Dongyoon Lee `_ - Email: dongyoon [AT] cs [DOT] stonybrook [DOT] edu - Office Hours: Tues and Thurs 9:30-10:30 AM (EST) - Office: Zoom (the meeting link can be found at Blackboard) ------------------ Teaching Assistant ------------------ - TBD ------------- 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 --------- - `Linux Kernel Development, Addison-Wesley Professional `__ - (optional) `Professional Linux Kernel Architecture, Wrox `__ - (optional) `Linux Device Drivers, O’Reilly Media `__ - (optional) `Understanding the Linux Kernel, O’Reilly Media `__ ------------------ Grades (tentative) ------------------ - Projects (75%): P1 (5%), P2 (10%), P3 (15%), P4 (15%), 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. ------------------ 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 VT's `ECE 5984 by Dr. Min `__ (main source), SBU's CSE 506 by Drs. `Zadok `__, and `Ferdman `__, GT's `CS 3210 `__. UW's `CSE 451 `__, `OSPP `__, and MIT's `6.828 `__.