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

版本 61263ef549585bda2255061e8de5804f382499e1

User/chiangkd

Changes from 61263ef549585bda2255061e8de5804f382499e1 to 1bbcf0ee3086e8d6ea7df74735b2c95740300634

---
title: chiangkd (江坤諦)
categories: User
...

# 簡介
* 國立中央大學 機械工程學系 110 級 (2017-2021)
* 國立成功大學 機械工程研究所 (2021 ~)
* GitHub: [`chiangkd`](https://github.com/chiangkd)

# 2023 Linux 核心實作 春季班 自我評量
## 作業
* lab0-c: [Hackmd](https://hackmd.io/@chiangkd/2023spring-lab0-c)/[Github](https://github.com/chiangkd/lab0-c)
* fibdrv: [Hackmd](https://hackmd.io/@chiangkd/2023spring-fibdrv)/[Github](https://github.com/chiangkd/fibdrv)

## 隨堂測驗

* quiz1: [Hackmd](https://hackmd.io/@chiangkd/2023quiz1)/[Github](https://github.com/chiangkd/NCKU-Linux-Kernel-Quiz/tree/master/2023/quiz1)
* quiz2: [Hackmd](https://hackmd.io/@chiangkd/2023quiz2)/[Github](https://github.com/chiangkd/NCKU-Linux-Kernel-Quiz/tree/master/2023/quiz2)
* quiz3: [Hackmd](https://hackmd.io/@chiangkd/2023quiz3)/[Github](https://github.com/chiangkd/NCKU-Linux-Kernel-Quiz/tree/master/2023/quiz3)
* quiz4: [Hackmd](https://hackmd.io/@chiangkd/2023quiz4)/[Github](https://github.com/chiangkd/NCKU-Linux-Kernel-Quiz/tree/master/2023/quiz4)

## 1 對 1 討論時間
### 2023年3月29日 (週三) 下午9點 - 下午9:30
1. commit message 寫的很差,例如在實作 fast doubling 後應該 commit message 提及其效益
2. `__copy_to_user` 執行時間並不是嚴格的線性關係 (cache miss, page fault)
3. (fibdrv)嘗試使用 hash table 保存已計算過得 Fibonacci 數
4. 問了關於為何不該在虛擬機器進行實驗的問題,`perf` 會去呼叫 PMU (共用硬體下的時間量測沒有參考價值),在效能分析中的間接記憶體存取 (type-2 hypervisor) 會大幅影響效能只是其中一個問題

### 2023年5月5日 (週五) 下午10點 - 下午10:30
1. commit message 還是很差,善用 `git rebase` 進行修正並詳閱 [How to Write a Git Commit Message](https://cbea.ms/git-commit/)
2. 期末專題指派 (rhashtable)

## 期末專題
* rhashtable 研究和應用: [Hackmd](https://hackmd.io/@sysprog/HkKKE5eB3)/[Github](https://github.com/chiangkd/rcuhashbash)

### 所見所聞所感
在進入碩士之前的我完全就是自以為自己會寫程式,進入碩士之後發現差得遠,甚至應該要說自己是完全不會寫程式,在碩二時修計算機結構更大的認識到自己真的爛到爆,而 Linux 核心設計課程又再次讓我認識到這一點,光是第一週的 lab0-c 在動手之前就花費了非常大量的時間在讀書上 (儘管在去年已經有嘗試自己做過練習),第二週開始海量的教材已經讓我不知道該讀哪些東西,在撰寫 fibdrv 時,《Linux Kernel Module Programming Guide》幫了我很多,從一開始連帶有 `__init` 及 `__exit` 運作流程都不知道就開始嘗試編譯並掛載核心模組,所以在這過程中當然讓電腦壞掉很多次,回頭看文獻發現自己根本就是在瞎忙亂 try,動手之前根本就沒有好好閱讀文獻或者資料,在課程中花費最多時間的是在 fibdrv 作業中,第一次面談過後老師拋出一個 "可以試著用 hashtable 紀錄已計算過的值",雖然最後成果並不算顯著,但在這過程中真的認知到自己很多地方都是在不懂裝懂 (隨著課程推進已經早早放棄追逐進度,決定回頭解決不懂裝懂的部份)


### 自我評量