--- title: ollieni (倪英智) categories: User ... ## 2024 Linux 核心設計 春季班 自我評量 * 簡介:國立成功大學 敏求智慧運算學院 人工智慧機器人 114 級 * GitHub: [ollieni](https://github.com/ollieni) * HackMD: [NIYINGCHIH](https://hackmd.io/@NIYINGCHIH) ### 成果發表與貢獻 課程教材修訂 * [你所不知道的 C 語言:編譯器和最佳化原理篇](https://hackmd.io/@sysprog/c-compiler-optimization): Braif*ck -> Brainf*ck、.改成,、增加空白、增加程式的格式 * [你所不知道的 C 語言:編譯器原理和案例分析](https://hackmd.io/@sysprog/c-compiler-construction): 又 -> 有 * [錯誤更正碼介紹和實作考量](https://hackmd.io/@sysprog/r1wrjOp6a): 增加空白,漢明離 -> 漢明距離 * [你所不知道的 C 語言: 執行階段程式庫 (CRT)](https://hackmd.io/@sysprog/c-runtime): imgur 圖片無法顯示修正 * [你所不知道的 C 語言:連結器和執行檔資訊](https://hackmd.io/@sysprog/c-linker-loader): RELA relocation -> RELA relocations * [你所不知道的 C 語言:動態連結器篇](https://hackmd.io/@sysprog/c-dynamic-linkage): 作中學 -> 做中學 * [你所不知道的 C 語言:物件導向程式設計篇](https://hackmd.io/@sysprog/c-oop): develeopment -> development ### 作業與隨堂測驗 * lab0: [HackMD](https://hackmd.io/@NIYINGCHIH/linux2024-homework1) 完成指定的佇列操作,針對使用到的 git hook 和 clang-format 做查詢並理解,完成 list_sort 和 Tim_sort 的引入,實作 Fisher–Yates shuffle。 * quiz1 + 2: [HackMD](https://hackmd.io/@NIYINGCHIH/2024q1_Homework2) 重新理解並探討 quiz1 + 2 * quiz3 + 4: [HackMD](https://hackmd.io/@NIYINGCHIH/linux2024-homework4) 重新理解並探討 quiz3 + 4 * Assessment: [HackMD](https://hackmd.io/@NIYINGCHIH/2024q1_Homework5_assessment) 撰寫閱讀〈因為自動飲料機而延畢的那一年〉後的心得,研讀課程教材並提出疑問。 * Integration: [HackMD](https://hackmd.io/@NIYINGCHIH/linux2024-homework6) ### 期末專題 Pub/Sub模擬: [HackMD](https://hackmd.io/@sysprog/B1Q1e1bDR) 我實作出 Pub/Sub 模型的 Linux kernel module,還有探討訂閱者數量 vs. 執行時間在不同組態的表現,也有做 Kthread 和 CMWQ 的效能比較。 ### 與授課教師的互動 一對一討論:5月 20日 (星期一)⋅下午 7:00 - 7:30 * bi-endianness 如何切換? 會在開機時做選擇,若要在開機後做轉換會很麻煩。 * CUDA 如何串接軟硬體,讓程式可以運用 GPU 資源? 授課教師告知我還有 OpenCL 這個框架,CUDA 和 OpenCL 都是平行運算框架,OpenCL可以支援很多種計算設備,如 CPU、GPU、FPGA,而 CUDA 只能支援 Nvidia 的 GPU。 * 6/20 上課 按計算機計算答案 ### 修課心得 我學到很多大學沒注意到的事情,例如使用 hook 來要求 commit message 的品質,以及使用 clang format ,使程式有一致的風格,可以使得大專案變得更加容易協作,更好的去實行 code review 的動作,這對要成為一個工程師來說是一個很好的素養。 實作期末專題讓我理解甚麼是 Pub/Sub 模型,也練習了如何做出一個 Linux kernel module,我也理解並使用 ktime 函式庫做時間的測量。 閱讀〈因為自動飲料機而延畢的那一年〉給我很多心得感想,在完成一整個專案的過程,一定會遇到很多困難,看了前輩的整個心路歷程,我覺得很重要的事情是如何面對困難與挫折,在這堂課我誠實面對自己,我基礎打得不好,在很多方面以我想成為的人來說都有所欠缺,但是這堂課有提升我的自我學習能力,我覺得這是非常好的收穫。 ### 與指導教授的學習回顧 二月份回顧 : 3月7日 週四 下午 10:41 * 指標的操作、bitwise-operation、 的運用,以及工程師的好素養 : 怎麼樹立一致且易於協作的程式開發規範、如何使用 Git 以及寫出好的 commit message,研究自動測試機制。 三月份回顧 : 4月8日 週一 下午 8:32 * 陸游的名言:"紙上得來終覺淺,絕知此事要躬行",以及蔡志浩的觀點:"大部分的人一輩子洞察力不彰,原因之一是怕講錯被笑。想了一點點就不敢繼續也沒記錄或分享,時間都花在讀書查資料看別人怎麼想。看完就真的沒有自己的洞察了" * ### 自我評量 $(9 \times 8 \times 7 \times 7 \times 7 \times 6) ^ {1/6} = 7.27$ 使用方案 B 計分:$1 + floor(7.27) = 8$