交大修課心得 - 作業系統設計與實作

課程綱要

課程名稱:(中文授課)作業系統設計與實作

授課教師:曹孝櫟

當期課號:5260

永久課號:IOC5108

修課年度:108下 資科工碩 - 選修

使用書籍:無

課程網頁

心得

教了什麼

教 OS 的實作概念與設計方式,章節如下:

  • Booting process
  • Process management
  • Memory management
  • Kernel synchronization
  • Interrupt
  • Filesystem and block I/O
  • Network

上課方式

老師有錄好 OCW,每週有進度,每次看完都要提出至少三個問題交在 E3 上,老師會在上課前整理一個問題清單並解惑,上課方式期初因為疫情是用 Google Meet 遠距教學,後來疫情比較舒緩後就在教室上課

考試作業

共 8 個 Lab (80%),今年好像有大改,改成用 Raspberry Pi 3B+ 從頭實作一個 OS Kernel,內容如下:

  • Lab 0: Environment Setup
  • Lab 1: Hello World
  • Lab 2: Bootloader
  • Lab 3: Exception and Interrupt
  • Lab 4: Multitasking
  • Lab 5: Virtual memory
  • Lab 6: Allocator
  • Lab 7: Virtual File System
  • Lab 8: File System Meets Hardware

Lab 內容基本上有認真看文件應該都做的出來,不過程式到後來可能會很龐大,需要好好規劃架構才不會寫的很頭痛

期末會有主題報告 (20%),助教會提供一些題目可以選,我是報 sysfs

Lab 的參考實作詳參這裡

後記.1

修完這門課真的會對之前在其他課所學的東西有種任督二脈被打通的感覺,感覺很多東西都串起來了:在寫作業的時候,會對 linker、loader 在做什麼會有更深入的理解 (compiler),怎麼讓 Processor 與週邊元件進行溝通 (微處理機),也會做出之前在 OS 提到過得 exception、buddy system、file system 等內容,總之如果之後有要走系統相關的領域,這門課一定可以給你很棒的收穫!

後記.2

修完 OSDI 感覺越來越不懂 OS 了…

comments powered by Disqus