本課程是由 國立陽明交通大學資訊工程學系 提供。
本課程以Linux 作業系統為基礎來講授作業系統內部的設計與實作方法。課程將透過一系列的實驗模組,來對Linux的行程管理,記憶體管理,檔案系統,輸出入系統進行深入的剖析以及修改。修課學生預計除了累積實際動手修改作業系統的經驗,亦可培養大型程式專案規劃的概念以及大量程式原始碼追蹤(trace)的能力。
課程用書:
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".
為求學習成效完美,請購買課本!
授課教師 | 資訊工程學系 曹孝櫟老師 |
---|---|
課程學分 | 3學分 |
授課年度 | 104學年度 |
授課對象 | 研究所 |
預備知識 | 『計算機組織概論』與『作業系統概論』 |
課程提供 | 課程影音 課程綱要 |
週次 | 課程內容 | 課程影音 |
---|---|---|
Getting started with kernel and kernel debugging | 線上觀看 | |
Booting process | 線上觀看 | |
Process Management – Part I | 線上觀看 | |
Process Management – Part II | 線上觀看 | |
Memory Management – Part I | 線上觀看 | |
Memory Management – Part II | 線上觀看 | |
Memory Management – Part III | 線上觀看 | |
Kernel Synchronization | 線上觀看 | |
Interrupt and Interrupt Handling - Part I | 線上觀看 | |
Interrupt and Interrupt Handling - Part II | 線上觀看 | |
Filesystem and Block I/O | 線上觀看 | |
Network Protocol and NIC Driver | 線上觀看 |
課程目標
本課程以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% |