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

版本 b33418fd6ab51dfb466cb0a9a3712db7681b5451

Ackerman666 (楊景翔)

簡介

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

第一項、成果發表和貢獻

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

第二項、作業/隨堂測驗

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

第三項、期末專題

評分:
我給自己 分

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

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

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

我在期末專題主要欠缺了利用 RCU 機制釋放系統資源 (如清除閒置連線),相關流程與資料結構大致想好,但就差尚未動手實現。 在之後暑假實習空閒之餘,我會努力補足剩下內容,將專題做個結尾也對自己有一個交代。

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

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

第五項、所見所聞所感

評分:
我給自己 10 分

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

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

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

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

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