本課程是由 國立陽明交通大學資訊工程學系 提供。
本課程以Linux 作業系統為基礎來講授作業系統內部的設計與實作方法。課程將透過一系列的實驗模組,來對Linux的行程管理,記憶體管理,檔案系統,輸出入系統進行深入的剖析以及修改。修課學生預計除了累積實際動手修改作業系統的經驗,亦可培養大型程式專案規劃的概念以及大量程式原始碼追蹤(trace)的能力。
Textbook:
OSDI references
1. Andrew S Tanenbaum, and Albert S Woodhull, "Operating Systems Design and Implementation (3rd Edition)"
2. Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman, "The Design and Implementation of the 4.4 BSD Operating System"
Linux Kernel
1. Robert Love, "Linux Kernel Development (3rd Edition)"
2. Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, and Dirk Verworner, "Linux Kernel Internals (2nd Edition)"
3. Daniel P. Bovet, and Marco Cesati, "Understanding the Linux Kernel, Third Edition"
Network subsystem
1. Klaus Wehrle, Frank Pahlke, Hartmut Ritter, Daniel Muller, and Marc Bechler, "Linux Networking Architecture"
2. Christian Benvenuti, "Understanding Linux Network Internals"
Device Drivers
1. Sreekrishnan Venkateswaran, "Essential Linux Device Drivers"
2. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, "Linux Device Drivers, 3rd Edition".
For perfect learning results, please buy textbooks!
Instructor(s) | Department of Computer Science Prof. Shiao-Li Tsao |
---|---|
Course Credits | 3 Credits |
Academic Year | 104 Academic Year |
Level | Graduate Student |
Prior Knowledge | Introduction to Computer Organization, Introduction to Operating Systems |
Related Resources | Course Video Course Syllabus |
Week | Course Content | Course Video | Course Download |
---|---|---|---|
Getting started with kernel and kernel debugging | Watch Online | MP4 Download | |
Booting process | Watch Online | MP4 Download | |
Process Management – Part I | Watch Online | MP4 Download | |
Process Management – Part II | Watch Online | MP4 Download | |
Memory Management – Part I | Watch Online | MP4 Download | |
Memory Management – Part II | Watch Online | MP4 Download | |
Memory Management – Part III | Watch Online | MP4 Download | |
Kernel Synchronization | Watch Online | MP4 Download | |
Interrupt and Interrupt Handling - Part I | Watch Online | MP4 Download | |
Interrupt and Interrupt Handling - Part II | Watch Online | MP4 Download | |
Filesystem and Block I/O | Watch Online | MP4 Download | |
Network Protocol and NIC Driver | Watch Online | MP4 Download |
課程目標
本課程以Linux 作業系統為基礎來講授作業系統內部的設計與實作方法。課程將透過一系列的實驗模組,來對Linux的行程管理,記憶體管理,檔案系統,輸出入系統進行深入的剖析以及修改 修課學生預計除了累積實際動手修改作業系統的經驗,亦可培養大型程式專案規劃的概念以及大量程式原始碼追蹤(trace)的能力。
課程章節
章節 | 章節內容 |
Course overview | Overview of OSDI course and lab/lecture arrangement |
Getting started with kernel and kernel debugging | Linux basics, versions, development/debugging environment |
Hardware basics | Understand the hardware basics related to OSDI |
Booting | BIOS and kernel booting |
OSDI basics | Overview of OS implementation (process and thread, kernel synchronization, memory management) |
OSDI basics | Overview of OS implementation (device driver, interrupt handling, top half and bottom half driver design) |
Process basics | Overview of process design in OS |
Device driver, Network device drivers | Device driver, Network device drivers |
IP-layer protocol stack, TCP/UDP-layer protocol stack, Socket layer protocol stack | IP-layer protocol stack, TCP/UDP-layer protocol stack, Socket layer protocol stack |
Midterm exam | Midterm exam |
Process Management | Process management design in OS |
Memory management | Memory management design in OS |
Block device driver | Block device driver |
I/O scheduler | I/O scheduler |
File system | File system |
Final exam | Final exam |
課程書目
OSDI references
1. Andrew S Tanenbaum, and Albert S Woodhull, "Operating Systems Design and Implementation (3rd Edition)"
2. Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, and John S. Quarterman, "The Design and Implementation of the 4.4 BSD Operating System"
Linux Kernel
1. Robert Love, "Linux Kernel Development (3rd Edition)"
2. Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, and Dirk Verworner, "Linux Kernel Internals (2nd Edition)"
3. Daniel P. Bovet, and Marco Cesati, "Understanding the Linux Kernel, Third Edition"
Network subsystem
1. Klaus Wehrle, Frank Pahlke, Hartmut Ritter, Daniel Muller, and Marc Bechler, "Linux Networking Architecture"
2. Christian Benvenuti, "Understanding Linux Network Internals"
Device Drivers
1. Sreekrishnan Venkateswaran, "Essential Linux Device Drivers" 2. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, "Linux Device Drivers, 3rd Edition"
評分標準
項目 | 百分比 |
核心架構實驗 | 20% |
行程與記憶體實驗 | 20% |
檔案系統實驗 | 20% |
網路通訊實驗 | 20% |
期中考 | 8% |
期末報告 | 12% |