分享到plurk 分享到twitter 分享到facebook

56han (萬逸涵)

簡介

  • 國立成功大學 資訊工程學所

  • GitHub: 56han

  • HackMD: 56han

2024 Linux 核心實作 春季班 自我評量

成果發表和貢獻

自評分數:5分

在這部分沒有做出實際貢獻,但是透過這堂課的教材和作業中,我閱讀了第一手的資料和接觸開源程式碼專案。在作業和專題中,我實際找到 Linux 核心程式碼並與老師提供的程式碼做比較,並且閱讀了 Linux 核心的 commit 紀錄,進行了實驗,這些經驗使我在未來有機會對 Linux 核心和相關專案做出貢獻。

作業/隨堂測驗

自評分數:8分

我在 lab0-c 和 quiz1+2 的作業上完成度較高,其他作業確實嚴重落後,我認為是我平時沒有良好的時間分配,以及沒有讀熟授課內容,以至於寫作業時都要回去看教材,有時急忙於在時間內完成作業,一找到資料就直接引用,時常用詞錯誤或引用到非第一手資料。在此課程中,我所付出的努力和時間超乎當初的預期。透過實作,我深入了解了 C 語言和 Linux 核心的運作原理,並從 Linux 核心原始程式碼中學習到良好的 coding style。我也掌握了 git 版本控制的精確技巧,能有效管理專案的開發流程,我運用 Linux 核心提供的 List API 實作鏈結串列的各項功能,這些經驗不僅提升了我的程式開發能力,還讓我對系統底層的運作機制有了更深刻的理解。

期末專題

自評分數:9分

在期末專題中,我深入研究 bitops 在 Linux 核心的應用。我理解了 SWAR 的目的、在運算中的差異和優勢和實際的運作原理。我比較 Linux 核心原本的實作和老師提供的程式碼,設計實驗觀察效能影響,並研讀 2022 年學生報告,在 Linux 核心原始程式碼找出 x86_64 對應的最佳化實作,跟老師提供的程式碼比較,並嘗試舉出其中的策略和分析。雖然許多用詞不精確或引用到非第一手資料被老師指正,但老師列的 TO-DO 都有完成。

與授課教師的互動

自評分數:9分

在討論之前,我羅列了幾個對於課程上的問題,在討論中獲得解答。原本從同學口中得到的資訊是平常心面對就可以,但突如其來被老師考了一題位元操作的題目,我居然還回答不出來!對於自己平常吸收授課內容的能力感到失望,我在後續補上了解題方法。雖然只有和老師互動一次,但在一次討論中我釐清觀念以及自己的不足之處。

  • 與授課教師「一對一討論」的時間:5/14 20:00

修課心得

自評分數:9分

經過閱讀〈因為自動飲料機而延畢的那一年〉後,發現所有成果都是一點一滴的累積而來,發明自動飲料機的每一個細節都不簡單,他們能成功也不是偶然,或許當下不是學習本科的內容,但或許有一天就會派上用場。現在 linux 課程也讓我有一樣的體悟,雖然常說學 linux 不知道哪天會用到,但這些努力可以讓我學習到解決問題的能力、勇於面對挫折的精神、開發系統軟體的態度、對細節的重視,以及理論和實務的融會貫通。此外,文章也讓我思考能力不足的原因,「為甚麼他想的到?」是因為其他學員花很多時間去搞懂 C 語言規格,因此現在才能在時間內完成作業,而我從以前就是為了應付作業、交差了事的學生,現在才感受到痛苦與挫折,是因為我回來還債了,就如同開頭提到的「人不付出犧牲,就得不到任何回報。如果要得到什麼,就必須付出同等的代價,這就是鍊金術的基本原則,等價交換。當時我們深信著,這就是這世界的真理。」

與指導教授的學習回顧

自評分數:9分

有鑑於在實驗室研究上還未達到指導教授的標準,只寄了兩次學習回顧,但在五月份學習回顧上有和指導教授分享了三、四月的課程內容,以及自身的投入狀況。

  • 二月份學習回顧 (03月06日 週三 下午10:18)
  • 五月份學習回顧 (06月22日 週六 下午4:07)

自我評量

  • GEOMEAN:\(\sqrt[6]{5*8*9*9*9*9}=8.001\)
  • 方案 B:\(1+\lfloor 8.001 \rfloor=9\)