版本 1212869d4dac20d5ec49baed704618a37499b2e7
Changes from 1212869d4dac20d5ec49baed704618a37499b2e7 to a61c2d8c45e48f12a9188b62a2a8110c267f90a3
title: curlyw819 (林威仁)
categories: User
...
# 22022 年 Linux 核心設計/實作 春季班 自我評量
## 作業共筆
* lab0: [HackMD](https://hackmd.io/@curlyw/SkMV2N9g9)
* quiz2: [HackMD](https://hackmd.io/@curlyw/SJE2yXAxc)
* fibdrv: [HackMD](https://hackmd.io/@curlyw/SyQmkQo-q)
## 期末專題
* sysprog21/bignum 的研究和改進 : [HackMD](https://hackmd.io/@curlyw/SyGqMuK95)
## 修課心得
這堂課最大的收穫就是學會了使用了 gnuplot 畫圖,與使用 perf 窺探程式執行的行為過程,了解到哪些地方讓程式花了大半時間在執行,進而有機會能做改進,也學到了如何使用 git 的一些指令。
在 lab0 第一次自己完成了一個 queue interface 的實作,理解了環狀雙向鏈結串列的構造,與學會使用container_of,並且最後在通過自動測試程式時得到了很大的成就感,雖然只是一小步,但很開心。
在 quiz2 補充了許多 bit 操作的知識,但老實說我這份作業有點太混,都只解釋了程式的運作原理,並沒有在做進一步的分析。
在 fibdrv 學到 kernel 如何與 userspace 做溝通,與測量它的 overhead,試著解決費式數列計算的限制,也就是撰寫大數運算的程式(雖然成果不盡理想),同時也透過研讀學長的筆記了解到了 bitwise 是如何同時減少時間與空間的開銷,進一步使程式表現的更好。
在期末專題,我重新審視自己在 fibdrv 表現的不足,比對自己和老師的程式並列舉出差異,同時也觀摩了許多同學的作品,試著了解他們的思路,反觀自己實在是太渺小了。
## 自我評量 (1 ~ 10)
我給自己 6 分
在學期初我試著跟上課堂的步伐,但每個作業寫不到一半的時後又有了新作業,這種追趕讓我覺得心很累,考試更是沒有答對過半題,因為答案格式不正確無法提交,因此我從來沒交出任何一份考卷。修課的過程一開始免強在進度上時學到了知識而感到開心,但之後上課逐漸聽不懂,加上沒有實質的產出作業,到後來只剩滿滿的挫折,晚上常作被怪物追趕的夢。想要奉勸想修課的學弟妹,就像老師在學期初講的,要好好衡量自己是否有足夠的時間修老師的課,不然會很浪費這些教育資源。
我作業只完成了3個,還都沒寫完,考試一次也沒交過,整堂課下來雖有許多收穫,但比自己期望的少,也和老師教受的知識量不成比例。
而我修完這學期的課程了解到如何寫出更有質量的程式,對 linux 也有更進一步的了解,雖然課堂跟不上,但對老師講解過程的知識點仍留有印象,在往後專題若遇到相關問題,可以有個較明確的切入點去查相關知識並解決,這些是我在本課程的收穫。
綜合以上,我決定給自己6分。
最後感謝老師不辭辛勞的和我一對一討論作業方向。