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

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

本課程以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  

WeekCourse ContentCourse VideoCourse Download
Getting started with kernel and kernel debuggingWatch OnlineMP4 Download
Booting processWatch OnlineMP4 Download
Process Management – Part IWatch OnlineMP4 Download
Process Management – Part IIWatch OnlineMP4 Download
Memory Management – Part IWatch OnlineMP4 Download
Memory Management – Part IIWatch OnlineMP4 Download
Memory Management – Part IIIWatch OnlineMP4 Download
Kernel SynchronizationWatch OnlineMP4 Download
Interrupt and Interrupt Handling - Part IWatch OnlineMP4 Download
Interrupt and Interrupt Handling - Part IIWatch OnlineMP4 Download
Filesystem and Block I/OWatch OnlineMP4 Download
Network Protocol and NIC DriverWatch OnlineMP4 Download

課程目標

本課程以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%