作者bh2142 (瀕臨絕種的Emacser)
看板NCTU-Teacher
標題[心得] 葉宗泰 - 作業系統總整與實作
時間Sun Jul 24 12:03:06 2022
⊕課名⊕
作業系統總整與實作 英文授課
▲教授▲
葉宗泰
★修課年度★
110-2
£教了什麼£(課程大概內容。或是額外學會了什麼東西。)
參考這個
https://oscapstone.github.io/osc2022/
◆上課方式◆(投影片、團體討論、老師教學風格)
我沒上過課,但似乎是實體課
有問題可以在 Discord 上問助教
▼考試作業▼
沒有考試
總共8個 lab + 一個 final project
Lab
從0開始刻一個能在 rpi 上面跑的 os,會發一個 raspberry pi 3 b+ 和一個 uart 子卡,
在上板子測試之前可以先用 qemu 跑模擬,qemu 可以接 gdb 讓你可以一個一個指令去檢查
問題,但可能某些地方沒有模擬的很完全,上板子還是可能會壞
每次 lab 都有分 basic 和 advanced task,滿分會超過100分,前面比較簡單的建議都做
,可以 cover 後面沒做 advanced 的分數,我從 lab5 開始就沒做 advanced 了
每次的 lab 都需要建立在前一次 lab 的成果上面,間隔大約兩週,所以 basic 一定要做
,還有要注意 code 要寫好一點,功能也要好好寫不要用一些很爛的偷吃步,不然後面積木
堆上去垮了可能會瘋掉
除了 page allocator 有複雜度的要求,其他的 lab 都沒有要求效能,可以先求有再求好
Demo 時助教會問你怎麼做的說明你的 code,所以就算測資很弱也不要亂做,我每次都抽到
同一個助教,所以不知道其他助教是怎麼 demo 的
很多東西都可以參考這兩個 repo
https://bit.ly/3RWbcwG
https://bit.ly/3Pv9UY3
很多東西像 page allocator 可以在 host 上面寫好測好再移植到你寫的 os 裡面
很多東西可以設數量上限,先在 bss section裡面 allocate 好比較不會壞掉
kmalloc 之類的東西一定要寫好,效能不一定要好,但一定要可以好好的動,後面寫起來才
不會被他髒到
Final Project
用 FUSE 模擬 SSD 的 FTL,目標是最小化 write amplification,會跟所有人比賽,第一
名可以獲得 512G 的 SSD,這是跟群聯的工程師合作的一個課程,只是寫出來的話難度其實
比 lab 都低,一般這個東西都是做在 SSD 裡面,當成這課的 Final Project 其實有點奇
怪,但總之很好拿分
Lab 和 Final Project 遲交一個禮拜只會扣1%的分數基本上跟沒扣差不多,鼓勵你做完,
也可以更彈性的分配時間
¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?)
Final Project 請群聯的工程師來上課的時候去會加分
其他時候不點名
要會寫 C
要會 gdb,邊做邊學其實也行,因為不需要用到什麼高級功能
會 arm assembly 最好,但不會也沒關係
最好要會看處理器之類的東西的 document,lab 說明裡面都有附連結
最重要的是一顆清楚的腦袋
不然看到舊 code 或是在把你造的輪子兜起來的時候或是在想 context switch 的時候腦袋
可能會打結
¢最後想說的話¢
兩週一個 lab,loading 不算輕,而且會需要花大把時間 debug (運氣不好可能就要花個好
幾天)
要做完 advanced 那就真的要花很多時間
我額外參考的東西有 musl, linux kernel, FreeRTOS, 4.4BSD 都非必要,但是像 vfs 你
直接看 spec 其實不太好想像他在幹嘛
我 lab5678 都只有做 basic,還是可以 A+
但後面卡一堆期末所以大家的完成率不是很高
建議要修課的人找朋友一起比較好收割別人踩過的坑
明年這課可能會改版變簡單,這篇可能會變廢文,僅供參考
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.238.185 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/NCTU-Teacher/M.1658635389.A.F0E.html
1F:推 typipi: 推。感覺好困難07/25 10:15
2F:推 hyperbola: 膜拜系統組電神07/31 12:27
拜託雙曲線老師教我寫程式
※ 編輯: bh2142 (42.72.174.183 臺灣), 08/03/2022 02:09:23
3F:推 cfzfnf: 推推08/06 10:50
4F:推 s094392: 好好喔09/02 16:07
5F:推 xxoooxx34567: 推好課 然後final project真的很怪 不管是側資還是11/30 09:46
6F:→ xxoooxx34567: 它存在的意義11/30 09:46
※ 編輯: bh2142 (42.73.142.29 臺灣), 01/20/2023 00:53:26