【修課心得】高等UNIX程式設計(英文授課) 黃俊穎

Holy
Dec 28, 2020

--

Unix

前情提要

以前心理總會有一個疑惑「到底怎麼樣算了解 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),剩下的就跟鬼一樣了。

Midterm
Midterm

雖然考完當下都會覺得自己被電爆,但是老師非常的好心,給分很大方,所以基本題寫出來都落在 75~80 分。

Grade Distribution
Grade Distribution

後來發現考前不太會有壓力,頂多把上課內容複習一遍,太難的也準備不到,但是上機考當下會很嗨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

什麼樣的人適合修

  • 想變強的人
喜歡我的文章,歡迎給我 1-50 個拍手 👏
(拍手不只可以拍一次喔)
想看我寫更多這方面的文章可以拍更多,我之後就會更常寫!
如果覺得這個文章不錯,也歡迎 Follow分享給你的朋友喔~

文章同步至我的 個人網頁

--

--