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

版本 0d65eefeff41493af0deb6a05f7bce079f9149e9

User/c8763yee

Changes from 0d65eefeff41493af0deb6a05f7bce079f9149e9 to 894a740690a984f4d7cc500ece64bbba78a6af33

---
title: c8763yee (徐彥翔)
categories: User
---

# 簡介

* 國立中正大學 資訊工程研究所 (2025/09 ~)
* GitHub: [`c8763yee`](https://github.com/c8763yee)
* HackMD: [`c8763yee`](https://hackmd.io/@c8763yee-)
* Linkedin: [`徐彥翔`](https://www.linkedin.com/in/%E5%BD%A5%E7%BF%94-%E5%BE%90-11792a212/)

# 2026 Linux 核心設計 春季班 自我評量

## 成果發表和貢獻

> 9 分

### Kernel patch (Trivial)

* [perf/x86/amd/ibs: Fix comment typo in ibs_op_data](https://lore.kernel.org/lkml/20260113141830.3204114-1-rrrrr4413@gmail.com/)

我在閱讀 AMD IBS 相關程式碼時發現其 bit-field 註解中 bit 範圍標示錯誤 (正確的範圍應該是 16-31),考慮到可能有人被註解誤導 bit-field 範圍,因此「路見不平,拿 Patch 來補」,發送了我個人的第一個 Linux kernel patch。即使只是修了一行,但畢竟「勿以善小而不為」。

```diff=77
struct {
    __u64	comp_to_ret_ctr:16,	/* 0-15: op completion to retire count */
-    tag_to_ret_ctr:16,	/* 15-31: op tag to retire count */
+    tag_to_ret_ctr:16,	/* 16-31: op tag to retire count */
    reserved1:2,		/* 32-33: reserved */
    op_return:1,		/* 34: return op */
    op_brn_taken:1,		/* 35: taken branch op */
```

### 教材修改
* [形式化驗證 (Formal Verification)](https://hackmd.io/@sysprog/formal-verification)
    1. [更新失效連結](https://hackmd.io/-oIc-o9IS4OMOMEkbMyn9w?revisionAfter=1774597254536#)
* [Linux 核心設計: 記憶體管理](https://hackmd.io/@sysprog/linux-memory)
    1. [預設的 slab allocator -> 唯一的 slab allocator](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1776772216974&revisionAuthorPath=c8763yee-#)

		> RIP SLOB allocator (2006 - 2023, removed at 6630e950d532)

		> RIP SLAB allocator (1996 - 2024, removed at 16a1d968358a)

    2. [更新失效連結](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1776834615980&revisionAuthorPath=c8763yee-#)
    3. [補充 Ftrace 資訊](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1778728520600&revisionAuthorPath=c8763yee-#)
        
		> Before 4.1, all ftrace tracing control files were within the debugfs file system, which is typically located at /sys/kernel/debug/tracing.
    4. [優化 -> 改善](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1780282222518&revisionAuthorPath=c8763yee-#)

* [你所不知道的 C 語言:編譯器和最佳化原理篇](https://hackmd.io/@sysprog/c-compiler-optimization)
    1. [更新維基百科連結 Elf(Myth) -> Executable_and_Linkable_Format](https://hackmd.io/VerfJi2ZSIO0RbgeL2ppGQ?both=&revisionAfter=1776324622194&revisionAuthorPath=c8763yee-#)

* [Linux 核心設計: 透過 eBPF 觀察作業系統行為](https://hackmd.io/@sysprog/linux-ebpf)
    1. [補充在 x86-64 與 arm 下 `read` system call 具體變更的符號名稱](https://hackmd.io/CJb5S2gxTCiX-__krLUFpg?revisionAfter=1777201814451&revisionAuthorPath=c8763yee-#)

* [並行程式設計: 執行順序](https://hackmd.io/@sysprog/concurrency-ordering)
    1. [修改公式顯示格式](https://hackmd.io/1ibD9_jeSR6HW72YtKpdrg?revisionAfter=1778650820370#)

### 公開演講
* 2026/08/09 — COSCUP 2026 System Software 講題[「從個人電腦到資料中心:Linux 記憶體管理的演化」](https://pretalx.coscup.org/coscup-2026/talk/review/SEA79ZSNPYE9ZDXUEB9BSW3LSVKHFYLC)

## 作業/隨堂測驗

> 7 分

一開始因為就學期間忽略數學的重要性,導致光是做「探討〈解讀計算機編碼〉」題組在補充缺失的數學知識就花了 3 天。而後面因為 Deadline 接近,因此後面只能針對程式語言的題目進行作答並繼續把之前沒學好的數學重新學習,這樣的結果是在第三次作業時只能先紀錄閱讀教材時的發現與問題。

不過在撰寫作業期間我開始注重使用的詞彙以及對於 C 語言規格書的使用,並且在閱讀課程教材期間也會主動注意教材使用的詞彙並修正。

* [Homework1 (warmup)](https://hackmd.io/@c8763yee-/linux2026-warmup)

* [Homework2 (stdc)](https://hackmd.io/@c8763yee-/linux2026-stdc)

* [Homework3 (basics)](https://hackmd.io/@c8763yee-/linux2026-basics)



## 期末專題

> 5 分

未完成期末專題

預計題目: 針對 MGLRU 的 reclaim loop 統計 (PID Controller) 根據 Generation 存活時間衰減歷史權重。

$$S_{new} = \frac{S_{old}}{\Delta t}+\frac{\Delta t-1}{\Delta t}x_t$$
$\Delta t = jiffies-lrugen_{ts}[Gen_{min}]$



## 與授課教師的互動

> 7 分
一對一討論具體紀錄請參考 [2026 Linux 核心設計行事曆](https://calendar.google.com/calendar/embed?src=embedded.master2015%40gmail.com&ctz=Asia%2FTaipei) 中標記 `一對一討論:c8763yee` 的活動
- 2026/02/24: 課後向授課教師詢問上述 Kernel patch 提交與合併流程的疑問
- 2026/04/21: 課後向授課教師詢問 COSCUP 與期末專題的題目選擇
- 2026/04/27: 第一次一對一討論:詢問期末專題題目方向
在本次一對一時被問到如何使用位元運算來實作浮點數除二,當時由於對過度思考如何處理 Infinity 與 NaN 導致在回答時卡頓
[後續 Follow up](/N4JLqbCyTtm4qrXw-oHGVg)


- 2026/05/15: 第二次一對一討論:回報期末專題相關研究發現


## 所見所聞所感

9 分

〈因為自動飲料機而延畢的那一年〉 心得 :

## 自我評量 (1 ~ 10):

$GEOMEAN = ( 9 \times 7 \times 5 \times 7 \times 9)^{1/5} = 7.236527563504052$

方案 B :$1 + floor(GEOMEAN) = 1 + 7 = 8$---
title: c8763yee (徐彥翔)
categories: User
---

# 簡介

* 國立中正大學 資訊工程研究所 (2025/09 ~)
* GitHub: [`c8763yee`](https://github.com/c8763yee)
* HackMD: [`c8763yee`](https://hackmd.io/@c8763yee-)
* Linkedin: [`徐彥翔`](https://www.linkedin.com/in/%E5%BD%A5%E7%BF%94-%E5%BE%90-11792a212/)

# 2026 Linux 核心設計 春季班 自我評量

## 成果發表和貢獻

> 9 分

### Kernel patch (Trivial)

* [perf/x86/amd/ibs: Fix comment typo in ibs_op_data](https://lore.kernel.org/lkml/20260113141830.3204114-1-rrrrr4413@gmail.com/)

我在閱讀 AMD IBS 相關程式碼時發現其 bit-field 註解中 bit 範圍標示錯誤 (正確的範圍應該是 16-31),考慮到可能有人被註解誤導 bit-field 範圍,因此「路見不平,拿 Patch 來補」,發送了我個人的第一個 Linux kernel patch。即使只是修了一行,但畢竟「勿以善小而不為」。

```diff=77
struct {
    __u64	comp_to_ret_ctr:16,	/* 0-15: op completion to retire count */
-    tag_to_ret_ctr:16,	/* 15-31: op tag to retire count */
+    tag_to_ret_ctr:16,	/* 16-31: op tag to retire count */
    reserved1:2,		/* 32-33: reserved */
    op_return:1,		/* 34: return op */
    op_brn_taken:1,		/* 35: taken branch op */
```

### 教材修改
* [形式化驗證 (Formal Verification)](https://hackmd.io/@sysprog/formal-verification)
    1. [更新失效連結](https://hackmd.io/-oIc-o9IS4OMOMEkbMyn9w?revisionAfter=1774597254536#)
* [Linux 核心設計: 記憶體管理](https://hackmd.io/@sysprog/linux-memory)
    1. [預設的 slab allocator -> 唯一的 slab allocator](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1776772216974&revisionAuthorPath=c8763yee-#)

		> RIP SLOB allocator (2006 - 2023, removed at 6630e950d532)

		> RIP SLAB allocator (1996 - 2024, removed at 16a1d968358a)

    2. [更新失效連結](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1776834615980&revisionAuthorPath=c8763yee-#)
    3. [補充 Ftrace 資訊](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1778728520600&revisionAuthorPath=c8763yee-#)
        
		> Before 4.1, all ftrace tracing control files were within the debugfs file system, which is typically located at /sys/kernel/debug/tracing.
    4. [優化 -> 改善](https://hackmd.io/t_SzlKdqQKGk7VFYnZ2NKQ?view=&revisionAfter=1780282222518&revisionAuthorPath=c8763yee-#)

* [你所不知道的 C 語言:編譯器和最佳化原理篇](https://hackmd.io/@sysprog/c-compiler-optimization)
    1. [更新維基百科連結 Elf(Myth) -> Executable_and_Linkable_Format](https://hackmd.io/VerfJi2ZSIO0RbgeL2ppGQ?both=&revisionAfter=1776324622194&revisionAuthorPath=c8763yee-#)

* [Linux 核心設計: 透過 eBPF 觀察作業系統行為](https://hackmd.io/@sysprog/linux-ebpf)
    1. [補充在 x86-64 與 arm 下 `read` system call 具體變更的符號名稱](https://hackmd.io/CJb5S2gxTCiX-__krLUFpg?revisionAfter=1777201814451&revisionAuthorPath=c8763yee-#)

* [並行程式設計: 執行順序](https://hackmd.io/@sysprog/concurrency-ordering)
    1. [修改公式顯示格式](https://hackmd.io/1ibD9_jeSR6HW72YtKpdrg?revisionAfter=1778650820370#)

### 公開演講
* 2026/08/09 — COSCUP 2026 System Software 講題[「從個人電腦到資料中心:Linux 記憶體管理的演化」](https://pretalx.coscup.org/coscup-2026/talk/review/SEA79ZSNPYE9ZDXUEB9BSW3LSVKHFYLC)

## 作業/隨堂測驗

> 7 分

一開始因為就學期間忽略數學的重要性,導致光是做「探討〈解讀計算機編碼〉」題組在補充缺失的數學知識就花了 3 天。而後面因為 Deadline 接近,因此後面只能針對程式語言的題目進行作答並繼續把之前沒學好的數學重新學習,這樣的結果是在第三次作業時只能先紀錄閱讀教材時的發現與問題。

不過在撰寫作業期間我開始注重使用的詞彙以及對於 C 語言規格書的使用,並且在閱讀課程教材期間也會主動注意教材使用的詞彙並修正。

* [Homework1 (warmup)](https://hackmd.io/@c8763yee-/linux2026-warmup)

* [Homework2 (stdc)](https://hackmd.io/@c8763yee-/linux2026-stdc)

* [Homework3 (basics)](https://hackmd.io/@c8763yee-/linux2026-basics)



## 期末專題

> 5 分

未完成期末專題

預計題目: 針對 MGLRU 的 reclaim loop 統計 (PID Controller) 根據 Generation 存活時間衰減歷史權重。

$$S_{new} = \frac{S_{old}}{\Delta t}+\frac{\Delta t-1}{\Delta t}x_t$$
$\Delta t = jiffies-lrugen_{ts}[Gen_{min}]$



## 與授課教師的互動

> 7 分
一對一討論具體紀錄請參考 [2026 Linux 核心設計行事曆](https://calendar.google.com/calendar/embed?src=embedded.master2015%40gmail.com&ctz=Asia%2FTaipei) 中標記 `一對一討論:c8763yee` 的活動
- 2026/02/24: 課後向授課教師詢問上述 Kernel patch 提交與合併流程的疑問
- 2026/04/21: 課後向授課教師詢問 COSCUP 與期末專題的題目選擇
- 2026/04/27: 第一次一對一討論:詢問期末專題題目方向
在本次一對一時被問到如何使用位元運算來實作浮點數除二,當時由於對 IEEE 754 格式的 過度思考如何處理 Infinity 與 NaN 導致在實作與說明思路時無法準確說明,甚至把 exponent 的位數說成 10 位。

[後續 Follow up](/N4JLqbCyTtm4qrXw-oHGVg)

- 2026/05/15: 第二次一對一討論:回報期末專題相關研究發現


## 所見所聞所感

9 分

〈因為自動飲料機而延畢的那一年〉 心得 :

## 自我評量 (1 ~ 10):

$GEOMEAN = ( 9 \times 7 \times 5 \times 7 \times 9)^{1/5} = 7.236527563504052$

方案 B :$1 + floor(GEOMEAN) = 1 + 7 = 8$