===============
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 `__.