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

Ackerman666 (楊景翔)

簡介

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

第一項、成果發表和貢獻

評分:
我給自己 8 分

針對教材 並行程式設計: Atomics 操作 中的 MOESI protocol ,發現敘述有誤,給予提醒,隨後被老師採納更正 (於 2024/4/27 )。

第二項、作業/隨堂測驗

評分:
我給自己 7 分 我認為我投入在作業的時間不夠多,導致很多部分完成度不足。 但還是學到許多以往不曾接觸的部分。(熟悉 bitwise 操作、用 linux list API 刻佇列、統計手法驗證分布性、熟悉 linux module 等)。

其中我認為對我研究很有幫助的是,透過作業一熟悉了假說檢定的流程,這對於將來要在論文證明實驗結果與假想情況是否相同是個好用的方式。

第三項、期末專題

評分:
我給自己 9 分

  • Linux 核心專題: 高性能網頁伺服器 HackMD/GitHub

期末專題是以 khttpd (核心模組的網頁伺服器)為基礎去做改進,過程中學到了以下幾點。

  • 學到 HTTP1.1 keep alive,與 TCP 連斷線的運作機制。
  • 利用 CMWQ 代替 kthread, 以此降低面對新連線反覆製造執行緒的成本。
  • 透過分塊傳輸編碼實現基本目錄展示功能,並透過 MIME 使瀏覽器能展出不同種類的檔案內容。
  • 透過 ebpf, ftrace 方法追蹤關鍵函式執行成本

第四項、與授課教師的互動

評分:
我給自己 10 分

  • 「一對一討論」時間為 2024/5/16 10:00

討論了閱讀教材時的一些疑惑,可參考 筆記 討論最後老師問了 TCP 為何要三次交握,當下只回答了確保連線正確,卻無法更深入探討其機制直接被老師抓包,討論結束後也立刻去補相關知識。 老師隨後也提到面試主管只會在乎你當下對於專業的理解程度,不會管你以前考試成績有多高,聽了感觸很深,也明白自身實力的不足。

第五項、所見所聞所感

評分:
我給自己 10 分

當初選這門課前就知道非常硬,但實際修起來的硬度大概是想像中再乘上 3 倍。前幾週課程所列進度我都盡力跟上,但到了中間發現教材之豐富,實在無法一一跟上,只能選有興趣的課程來跳著看。在中期過後,作業與實驗室事務兩頭燒,導致的就是作業沒有盡到最大努力來呈現。我認為就是我時間管理不夠好,也意識到事情不能總想著明天再做,因為拖到最後就是懶得去實踐了。而體悟最深的應該就是“舉燭”這件事,不論是看教材會是閱讀原始碼上,總是會以為自己懂觀念了,但實際寫程式時才發現只懂皮毛而已。這讓我更加認同“紙上得來終覺淺,絕知此事要躬行”這話。

最後因為自動飲料機而延畢的那一年中有這句話 : “這個世界比任何人都殘酷,也比任何人都公平,犧牲了多少就會得到多少。飲料機現在能做到的事,就只是付出犧牲的結果罷了。” 看著別人筆記總是會想別人就是比較有天賦才此成果,但實際上就是我還不夠犧牲自己,還是太貪於安逸,所以將來能做的就是停止比較,持續 keep moving 就對了。

第六項、每月發給實驗室指導教授的學習回顧

評分:
我給自己 8 分 信中會提到學習的內容,並誠實面對自己在學習上體悟的心路轉折,雖沒有每月都寄信,但在 Meeting 時還是會和老師分享學習的狀況。

  • 三月學習回顧發信日期:2024/4/7 13:45 (分享學習到的內容 : 你所不知道的 C 語言、並行程式設計: 排程器原理等。並誠實面對自己指出自身學習狀況太心浮氣躁,急著上網找答案,卻忽視第一手教材的存在)
  • 五月學習回顧發信日期:2024/6/25 11:54 (分享學習到的內容 : CMWQ、eBPF、Linux 同步機制等)

自我總評量得分

自我總評量得分為 9 分。

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