前情提要
以前心理總會有一個疑惑「到底怎麼樣算了解 linux」修完這門課就會得到解答。
這門是我大學修過最好的課,高等UNIX程式設計(英文授課),教授 黃俊穎 Chun-Ying Huang 真的超猛!
上課模式
- 這學期因為疫情 (2020 spring) 大概上一個月左右就改成線上教學了,改成線上反而更好,因為老師講得很有內容、東西也超多,改成線上真的幫助很大,可以錄影回去慢慢看。
- 老師每週三堂課都會上好上滿,內容很充實,大概是我大學少數全勤的課,然後還不會上到無聊拿出手機來滑,幾乎都還會回去聽上課錄影,而且每次都有聽到更多的當下上課沒有吸收完全的部分,每堂課的內容都很充足,可以感受到助教老師完全不馬虎,備課十分用心。
甜涼度 Loading
甜度 ★★★☆☆
涼度 ★★★☆☆
- 甜度大概三顆星,因為要拿到 90 分以上應該是不容易,但也不會太低,後面會提到。
- 涼度,因為老師每週三堂課都上好上滿,我自己是每個章節上完都會回去自己再看一遍,把上過的東西查一查理解一下。這學期是四次作業其實不算到很緊迫,再加上兩次上機考,大概就是有點累,但是也不會到超級無敵累XD
作業
作業一共有四次,難度不會到太高,有認真都寫得出來,分數都蠻高的,四次作業分別如下。
- Implement a ‘netstat -nap’-like program
- Play in a Sandbox!?
- homework #3 (assembly part)
- homework #4 (ptrace part)
第一個是實作 netstat
的基本功能。
第二個是透過 library injection and API hijacking 實作一個 sandbox
環境。
第三個是練習 assembly
,最多大概就是用組語寫 bubble sort。
最後一次是練習使用 ptrace
。
上機考
上機考期中期末各一次,都是類似 CTF 的模式去解題,內容還是上課教的,還會有 scoreboard 讓大家有壓力XD。題目會有幾題是很基本的或是上課範例的變形,解出來就會拿到基本分,然後剩下的題目… 就是會被打趴在地上的那種QQ
舉個期中考的例子,可以看到前面三題 80% 的人都有解出來,第四題開始剩下 40% (我也只解到這題Q),剩下的就跟鬼一樣了。
雖然考完當下都會覺得自己被電爆,但是老師非常的好心,給分很大方,所以基本題寫出來都落在 75~80 分。
後來發現考前不太會有壓力,頂多把上課內容複習一遍,太難的也準備不到,但是上機考當下會很嗨XD
課程心得
整學期的課程大綱
- syllabus
- ov+tool
- file+dir
- file+stdio
- sysinfo
- procenv
- procctrl
- procrel
- exam intro
- signals
- assembly
- ptrace
- threads
- threadctl
- classipc
- netipc
上課範例程式很充足,講到一個段落就會有些範例程式操作,也都會附上這些範例程式回去可以自己操作或是寫一遍。
講義做得很好,簡明扼要,全部啃下去就對了。
對於想要入門 unix 環境下 programming 的新手很推薦這門課,當然很強的人也適合,可以挑戰期中期末的難題。
私心覺得這門課可以列為資工系必修了(X
所以到底怎麼樣算了解 linux?
我自己的感想是這樣,修完這門課就好像從底部爬出了一個洞,更能看清楚世界的全貌,同時也到了更大的洞的底部。
白話文翻譯- - 我還是不懂 linux
什麼樣的人適合修
- 想變強的人
結束
文章同步至 Medium 平台