2. Instructor Information
3. Course Objectives
This course provides an in-depth understanding of the design and implementation of modern operating systems (OS), with a focus on the Linux kernel and related system software. It covers key technical topics essential for developing efficient kernel and system-level software, including kernel data structures, system call interfaces, device drivers, memory management, CPU scheduling, file systems, and synchronization mechanisms. The course also introduces practical skills for Linux kernel programming, such as building kernel modules, implementing character and block device drivers, and managing kernel memory and concurrency.
4. Prerequisites & require
Data Structures (Undergraduate)
Operating Systems (Undergraduate)
5. Grading
- Final Exam (50%)
- Lab & Quiz (20%)
- Term Project (20%)
- Attendance (10%)
6. Course Materials
| Title |
Author |
Publisher |
Publication Year/Edition |
ISBN |
|
Linux Device Drivers, 3rd Edition, Jonathan Corbet and Alessandro Rubini, O'Reilly Media
|
|
|
0000
|
|
|
Linux Kernel Development, 3rd Edition, Robert Love Addison-Wesley
|
|
|
0000
|
|
7. Course References
Lecture Slides
8. Course Plan
Week #01: Introduction to Linux Kernel
Week #02: System Calls
Week #03: Kernel Module, APIs, Debugging
Week #04: Kernel Data Structure
Week #05: Device Driver 1 (Character)
Week #06: Device Driver 2 (Block)
Week #07: Process Management 1
Week #08: Project Proposal
Week #09: Process Management 2
Week #10 Interrupt
Week #11: Synchronization
Week #12: Memory Management 1
Week #13: Memory Management 2
Week #14: File Systems 1
Week #15: File Systems 2
Week #16: Final Exam
9. Course Operation
- Lecture Type: Lecture (2 hours), Lab (2 hours), Final Projects
- Academic Integrity: Penalty for cheating – Removal from course with failing (F) grade
10. How to Teach & Remark
This course consists of two components: a 2-hour lecture and a 2-hour laboratory session each week. The lecture covers the design principles of modern operating systems, with a particular focus on the Linux kernel. The laboratory sessions involve hands-on analysis of Linux kernel source code. During lab sessions, students will work on in-class quizzes; any unsolved problems will be assigned as homework and must be submitted before the next lecture.
11. Supports for Students with a Disability
- Taking Course: interpreting services (for hearing impairment), Mobility and preferential seating assistances (for developmental disability), Note taking(for all kinds of disabilities) and etc.
- Taking Exam: Extended exam period (for all kinds of disabilities, if needed), Magnified exam papers (for sight disability), and etc.
- Please contact Center for Students with Disabilities (279-2434) for additional assistance