Operating System Design and Implementation (OSDI) - 104 Academic Year

作業系統設計與實作 - 104學年度

本課程是由 國立陽明交通大學資訊工程學系 提供。

本課程以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線上觀看MP4下載
Booting process線上觀看MP4下載
Process Management – Part I線上觀看MP4下載
Process Management – Part II線上觀看MP4下載
Memory Management – Part I線上觀看MP4下載
Memory Management – Part II線上觀看MP4下載
Memory Management – Part III線上觀看MP4下載
Kernel Synchronization線上觀看MP4下載
Interrupt and Interrupt Handling - Part I線上觀看MP4下載
Interrupt and Interrupt Handling - Part II線上觀看MP4下載
Filesystem and Block I/O線上觀看MP4下載
Network Protocol and NIC Driver線上觀看MP4下載

課程目標

本課程以Linux 作業系統為基礎來講授作業系統內部的設計與實作方法。課程將透過一系列的實驗模組,來對Linux的行程管理,記憶體管理,檔案系統,輸出入系統進行深入的剖析以及修改 修課學生預計除了累積實際動手修改作業系統的經驗,亦可培養大型程式專案規劃的概念以及大量程式原始碼追蹤(trace)的能力。

 

課程章節

章節 章節內容
Course overviewOverview of OSDI course and lab/lecture arrangement
Getting started with kernel and kernel debuggingLinux basics, versions, development/debugging environment
Hardware basics Understand the hardware basics related to OSDI
BootingBIOS and kernel booting
OSDI basicsOverview 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 basicsOverview of process design in OS
Device driver, Network device driversDevice driver, Network device drivers
IP-layer protocol stack, TCP/UDP-layer protocol stack, Socket layer protocol stackIP-layer protocol stack, TCP/UDP-layer protocol stack, Socket layer protocol stack
Midterm exam Midterm exam
Process ManagementProcess management design in OS
Memory managementMemory management design in OS
Block device driverBlock device driver
I/O schedulerI/O scheduler
File systemFile 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%