--- title: linjohnss (林晉暘) ... 簡介 ==== - 國立成功大學 測量及空間資訊學系 111 級 (2018 ~ ) - 國立成功大學資訊工程學 雙主修 (2019 ~ ) - GitHub: [`linjohnss`][github] - HackMD: [`linjohnss`][hackmd] 2022 Linux 核心設計 春季班 自我評量 =================================== 作業共筆 -------- - lab0-c: [GitHub][g1] / [HackMD][h1] - fibdrv: [GitHub][g2] / [HackMD][h2] 測驗共筆 -------- - quiz1: [HackMD][q1] - quiz2: [HackMD][q2] - quiz3: [HackMD][q3] - quiz4: [HackMD][q4] - quiz5: [HackMD][q5] - quiz6: [HackMD][q6] 期末專題 -------- - rhashtable 研究: - [GitHub][g3] - [HackMD][h3] - 1 對 1 討論時間 - 2022/4/28 星期四下午 9:00 \~ 9:30 - 2022/6/11 星期六下午 3:00 \~ 3:30 - 2022/6/21 星期二下午 3:00 \~ 3:30 - 目前完成成果 - 摘譯 LWN 文章與論文,並輔以 Linux 核心應用作說明 - 撰寫 Linux 核心模組測試論文演算法與 Linux 核心 `rhashtable.h` 的成果 修課心得 -------- 「誠實面對自己」是這堂課投下的第一顆震撼彈,從課程一開始就感到深深的挫敗感,但卻異常興奮,可能我有被虐體質XD。深知自己的不足,每週都花大量時間閱讀老師提供的素材,Linus Torvalds 的 TED 演講聽了 5 次以上,甚至還分享給實驗室同學。除了與身邊朋友討論,這堂課最特別的就是每個人都有 HackMD 的開發紀錄,除了理解自己與大神的巨大差距,也可以透過觀摩大神的開發紀錄學習他的思考路徑,期許自己也要繼續變強! 寫了 3 年的 c 語言,透過 lab0-c 與學期初的測驗才理解 c 語言的強大,每次有了新的理解,就會迫不及待的分享給其他人,其中在開發 IMU (慣性測量單元) 的 driver 時 Bitwise 操作就被我用上,優化了原先用迴圈處理的程式。 Hashtable 可以說是我這學期課程後半所圍繞的議題了,作為被大量使用於 Linux 核心的資料結構,在第一次與老師一對一討論時一問三不知,印象最深刻的是老師說我只是在翻譯程式碼,並不理解程式的用途與意義,努力錯方向了!此時我才明白只是看懂程式碼是不夠的,更重要的應該是要能理解其動機與解決的問題,甚至要能判斷程式的優劣,並提出優化方案。之後跑去研究 stm32 拖了一個月才與老師再次一對一討論,這次討論老師重新給我一個題目 `rhashtable`,儘管已經對 Hashtable 與 Concurrency 有了初步的認識,但對於新的題目還是一頭霧水。回去又是投入大量時間去研究,在我研究初期的時後,老師恰好在課堂上分享了我的開發紀錄,讓我的開發紀錄瞬間有大量觀看數,這間接鼓勵我並激起我的鬥志。於是我再次與老師預約一對一討論講述目前的進度與後續規劃,這次終於不再被罵,並且獲得了實質的交流。整個課程我都跟不太上,但就如老師所說「還有時間,不要太早放棄!」 自我評量 (1 \~ 10) ------------------ 我給自己 9 分 學期初每週都投入 18 小時以上在課程教材與作業上,學期中有所停滯,但在期末專題時又投入大量時間,並在最後實作出論文的測試成果。其中我恰好出現在老師的深夜 HackMD 通知兩次,剛好都在為這堂課看日出啊。 [hackmd]: https://hackmd.io/@linjohn [github]: https://github.com/linjohnss [g1]: https://github.com/linjohnss/lab0-c [h1]: https://hackmd.io/@linjohn/linux2022-lab0 [g2]: https://github.com/linjohnss/fibdrv [h2]: https://hackmd.io/@linjohn/linux2022-fibdrv [q1]: https://hackmd.io/@linjohn/linux2022-q1 [q2]: https://hackmd.io/@linjohn/linux-quiz2 [q3]: https://hackmd.io/@linjohn/linux2022-quiz3 [q4]: https://hackmd.io/@linjohn/linux2022-quiz4 [q5]: https://hackmd.io/@linjohn/2022q1-quiz5 [q6]: https://hackmd.io/@linjohn/2022q1-quiz6 [g3]: https://github.com/linjohnss/rcuhashbash [h3]: https://hackmd.io/@linjohn/rhashtable