# 簡介 * 國立成功大學 機械所 114 級 (2024 ~ 2025) * 學生 : 饒胤琛 * GitHub: [`bevmmf`](https://github.com/bevmmf) * HackMD: [`bevmmf`](https://hackmd.io/@bevmmf) # 2025 Linux 核心實作 春季班 自我評量 ## 第一項、成果發表與貢獻 簡介 bloom filter 評分: 2 分 ## 第二項、作業/隨堂測驗 作業: * 2025q1 Homework1 (lab0-c) : [github](https://github.com/bevmmf/lab0-c) / [HackMD](https://hackmd.io/@bevmmf/linux2025-homework1) * 2025q1 Homework2 (quiz1+2) : [github](https://github.com/bevmmf/LK2025_quiz) / [HackMD](https://hackmd.io/@bevmmf/linux2025-homework2) * 2025q1 Homework3 (kxo) : [github]() / [HackMD](https://hackmd.io/@bevmmf/linux2025-homework3) * 2025q1 Homework4 (quiz3+4) : [github](https://github.com/bevmmf/LK2025_quiz) / [HackMD](https://hackmd.io/@bevmmf/linux2025-homework4) * 2024q1 Homework5 (assessment) : [HackMD](https://hackmd.io/@bevmmf/linux2025-homework5) 作業雖然都有完成,但對於細節的掌握以及做作業的紮實度還有待加強,大多時候還未誠實面對自己。 評分: 7 分 ## 第三項、期末專題 * Linux 核心專題:Bloom filter 研究 : [Github]() / [HackMD](https://hackmd.io/qTnU5v__RzOMiJ4y43me1w?view) 對於期末專題我認為以結果來說,我並沒有完成很好甚至完成。一開始對於理論的建立數學分析與理論實驗都還能吸收與輸出。但當開始面對上千萬行之linux核心時,要閱讀與理解相關實作程式與抽取做實驗跟前面部份相比有巨大的不同與落差。甚至在課程後半段一度想放棄而停滯。但最後還是認為做事有始有終,就算第一次做的不好,只要誠實面對自己 ,走得慢也會慢慢向前。 評分: 6 分 ## 第四項、與授課教師的互動 - 2025-02-25 問答簡記 討論紀錄:[HackMD](https://hackmd.io/l4--gpsZQBiEI5LKS1lDvg) 那時上課坐最後一排沒想到會被點到,並且作業的 git commit 直接被放到投影幕上給大家觀賞。那時候是真後悔沒把 commit message 規範看請楚。但也藉由此難忘的經驗,我對如何正確書寫commit message之七條準則與如何用git rebase -i 和 git push --force更改commit已深深刻在腦海。 - 2025-04-22 討論簡記 討論紀錄:[HackMD](https://hackmd.io/@sysprog/Bk6CLg4kll) 這次 quiz10 問答徹底洗禮了我對指標的認知。本以為對指標和指標的指標已滾瓜爛熟,卻發現仍有疏漏。經過這次實戰,我才真正領悟到指向指標的指標在記憶體釋放和避免垂懸指標上的重要觀念。過去我可能只停留在「知道指標是什麼」的階段,這次卻讓我真正體會到「如何安全、嚴謹地管理記憶體」的重要性。理解到 free 只是釋放了記憶體,而將外部指標明確地設為 NULL,才是切斷與已釋放記憶體關聯、防止未定義行為的完整釋放過程。 - 2025/04/23 一對一討論問答簡記 討論紀錄:[HackMD](https://hackmd.io/Xz79jKDrS7yp-tkPDVdLDQ) 經過這次跟黃老師的一對一問答讓我了解對於學習與閱讀文本我還有很長一段路要走。經過這次問答發現我之前自認為已經懂的之如CSAPP第二章或是曾經看過之測驗題根本沒了解過,而這種沒法用言語將知識清楚闡述出來就是來自於對知識學習的急躁與還未真正誠實面對自己。 評分: 8 分 ## 第五項、所見所聞 * [〈因為自動飲料機而延畢的那一年〉](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1/) 讀後感想: 讓我超有感的是「資工數小時,機械數週月」的實驗維度差異。我最近在採購實驗器材,光個馬達規格就能把我搞瘋,尺寸、運動規劃、負載、轉速,牽一髮動全身。這讓我更明白硬體迭代週期有多漫長。 再來,作者「租借設備(系所→公家→企業)」的應變,真是成本限制下的神操作。還有那句「花大錢買不需要是浪費,為省錢買性能不足是更大浪費」,直接戳中核心!系統開發中,量化規格、分階段整合測試,真的太重要了,畢竟錢不是無限的。 除了實務,心態層面更是重中之重。作者在製冰機那段的想放棄時刻,根本就是學習曲線的最高點,熬過去就海闊天空。這完全呼應了老師說的「學習處理與承受失敗,才能更強大」。那個失敗,才是精華!不過,「問題太難,就重新定義」這句也提醒我,別死鑽牛角尖。 * 回顧自身在課堂的投入狀況:前期投入作業一 lab0-c 與 c 語言教材讓我熟悉 c 語言的指標或指標與指標與 linux 核心 linked list 。在測驗中認識到與 hash table 相輔相成之高效查詢工具 bloom filter 與 BST 跟 MPI 之實作。雖然後半段在遇到 linux 核心時一度受挫。學到的核心精神誠實面對自己讓我在期末專題上學到原來 linux kernel 內部有 user space 之獨立測試程式,且要執行這些 selftest 所要建立的環境,不管是相關編譯套件,更改編譯配置啟用 bpf 程式編譯時需要的 btf 相依選項,到最後閱讀每個資料夾的 Makefile 看程式編譯時的相依關係到最後成功執行編譯與執行 linux 核心之 bloom filter 測試程式,都讓我有一絲踏實感。 評分: 7 分 ## 自我評量總得分 心得: 回頭看這學期,修這堂課我真的覺得十分值得。課程強度雖然爆表,但能帶走的東西也同樣深刻。雖然我之前沒修過資料結構或作業系統,但這裡就是「缺什麼補什麼」,完全不用害怕去學習一個全新領域,因為做了、學了,才會漸漸看得懂、更了解。 這堂課教我最多的,除了硬核的理論和實作知識外,「誠實面對自己」絕對是我的最大收穫。面對挫折時如何調適心態跟自己對話,或者碰到超大議題時如何拆解成小任務,這些都是我這個學期一點一滴累積下來的成果和收穫。 * GEOMEAN : $\sqrt[6]{2*7*6*8*7} = 5.426$ * 方案 B:$1+\lfloor 5.426 \rfloor=6$