--- title: Ackerman666 (楊景翔) categories: User ... # 簡介 * 國立中山大學 資訊工程研究所 (2023 ~ ) * GitHub: [`Ackerman666`](https://github.com/Ackerman666) * HackMD: [`Ackerman666`](https://hackmd.io/@Ackerman) # 2024 Linux 核心實作 春季班 自我評量 ## 第一項、成果發表和貢獻 評分: 我給自己 8 分 2024/4/27 針對教材 [`並行程式設計: Atomics 操作`](https://hackmd.io/@sysprog/concurrency-atomics) 中的 MOESI protocol ,發現敘述有誤,給予提醒,隨後被老師採納更正。 ## 第二項、作業/隨堂測驗 評分: 我給自己 7 分 我認為我投入在作業的時間不夠多,導致很多部分完成度都差強人意。 但還是學到許多以往不曾接觸的部分,(bitwise操作、用linux list API刻佇列、統計手法驗證分布性、linux module等)。 * Homework1 (lab0) [HackMD](https://hackmd.io/1HP3bGVXQMOImkxC80inOQ)/[GitHub](https://github.com/Ackerman666/lab0-c) * Homework2 (quiz1+2) [HackMD](https://hackmd.io/116CP2whQeC7xC5CuMFmeQ) * Homework4 (quiz3+4) [HackMD](https://hackmd.io/fH8oEX_FR7KYnHdI_tbZEA) * Homework5 (assessment) [HackMD](https://hackmd.io/5cKITs1cTFu1fGDvmWafXg) * Homework6 (integration) [HackMD](https://hackmd.io/kXFroi_hQRqAqzPtoi8ylg) ## 第三項、期末專題 評分: 我給自己 9 分 * Linux 核心專題: 高性能網頁伺服器 [HackMD](https://hackmd.io/OVUxtUIxQr6N7pqLwUQyFA?view)/[GitHub](https://github.com/Ackerman666/khttpd) 期末專題是以 khttpd (核心模組的網頁伺服器)為基礎去做改進,過程中學到了以下幾點。 * 學到 HTTP1.1 keep alive,與 TCP 連斷線的運作機制。 * 利用 CMWQ 代替 kthread, 以此降低面對新連線反覆製造執行緒的成本。 * 透過分塊傳輸編碼實現基本目錄展示功能,並透過 MIME 使瀏覽器能展出不同種類的檔案內容。 * 透過 ebpf, ftrace 方法追蹤關鍵函式執行成本 我在期末專題主要欠缺了利用 RCU 機制釋放系統資源 (如清除閒置連線),相關流程與資料結構大致想好,但就差尚未動手實現。 在之後暑假實習空閒之餘,我會努力補足剩下內容,將專題做個結尾也對自己有一個交代。 ## 第四項、與授課教師的互動 評分: 我給自己 10 分 *「一對一討論」時間為 2024/5/16 10:00 討論了閱讀教材時的一些疑惑,可參考 [`筆記`](https://hackmd.io/5cKITs1cTFu1fGDvmWafXg?view) 討論最後老師問了 TCP 為何要三次交握,當下只回答了確保連線正確,卻無法更深入探討其機制直接被老師抓包,討論結束後也立刻去補相關知識。 老師隨後也提到面試主管只會在乎你當下對於專業的理解程度,不會管你以前考試成績有多高,聽了感觸很深,也明白自身實力的不足。 ## 第五項、所見所聞所感 ## 第六項、每月發給實驗室指導教授的學習回顧 評分: 我給自己 10 分 信中會提到學習的內容,並誠實面對自己在學習上體悟的心路轉折,雖沒有每月都寄信,但在 Meeting 時還是會和老師分享學習的狀況。 * 三月學習回顧發信日期:2024/4/7 13:45 (分享學習到的內容 : 你所不知道的 C 語言、並行程式設計: 排程器原理等。並誠實面對自己指出自身學習狀況太心浮氣躁,急著上網找答案,卻忽視第一手教材的存在) * 五月學習回顧發信日期:2024/6/25 11:54 (分享學習到的內容 : CMWQ、eBPF、Linux 同步機制等)