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

版本 eb6aeb1e49d4967a3228e7291e70d348e4f1c858

User/dcciou

Changes from eb6aeb1e49d4967a3228e7291e70d348e4f1c858 to current

---
title: dcciou (邱德昌)
categories: User
...

# 簡介
* 國立成功大學 電腦與通訊工程研究所

* GitHub: [`dcciou`](https://github.com/dcciou)
* HackMD: [`dcciou`](https://hackmd.io/@dcciou)

## 成果發表
# 評分理念 
採扣分制,達到自己設定的目標及以上以10分計,其餘依進步空間大小決定扣分程度

* Open Source Summit North America 2022 講者。講題: [Towards PREEMPT\_RT for the Full Task Isolation](https://ossna2022.sched.com/event/11NtQ)
* FOSSASIA Summit 2022 講者。講題: "[Empower Embedded Computing with VexRiscv and FreeRTOS](https://eventyay.com/e/6b901f56/session/7569)"
* 開源人年會 COSCUP 2021 講者。講題:「[藉由實作多任務核心來體驗作業系統概念](https://coscup.org/2021/zh-TW/session/WLTVU7)」
* 開源人年會 COSCUP 2020 講者。講題:「[KTLS — Linux 核心內部的 TLS 實作](https://coscup.org/2020/zh-TW/agenda/JGX8JN)」
# 1.成果發表和貢獻
我給自己6分  
不確定翻譯規格書算不算,就當作不算了。  
由於起點較低,我選擇專注在理解作業﹑小考中提供的程式碼,以累積基本功為第一要務,而不是為了眼前的近利而急忙打造一艘泥船。  
因此,這部分我給一個基本分。  

## Linux 核心和相關專案貢獻
* [rt-tests](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git): commit [c96e77dc](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=c96e77dc74643354c20e9efb51b631467754d327), [d83bc06](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=d83bc06e1fca7250dbc3c5e7be0f55a4ea6e7ef0), [d2ded8b](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=d2ded8b1e863d3c7fd47e3f9a875fb9e6968ff61), [6f5ac3d](https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/commit/?id=6f5ac3d20aa0a0a04136760c2875ca931eebbaa5)
* [Linux](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/): commit [62a40d](https://github.com/torvalds/linux/commit/62a40dad573406cdcb489dd45cfd201717c2e765), [cf2adec](https://github.com/torvalds/linux/commit/cf2adec7479d875973fe10782f8bf20377628ef2)
* 《Demystifying the Linux CPU Scheduler》錯字修正和排版調整
# 2.作業/隨堂測驗
* hw1: [HackMD](https://hackmd.io/@dcciou/SyS7yZ026)
* hw2: [HackMD](https://hackmd.io/@dcciou/SkaHRcN6T)
* hw3: [HackMD](https://hackmd.io/@dcciou/SyS7yZ026)
* hw4: [HackMD](https://hackmd.io/@dcciou/HJiMMeK1R)
* hw5: [HackMD](https://hackmd.io/@dcciou/HJcOOc9e0)
* hw6: [HackMD](https://hackmd.io/@dcciou/rypxuVaW0)

## 其他專案貢獻
* [FreeRTOS](https://github.com/FreeRTOS/FreeRTOS): commit [0744c287](https://github.com/FreeRTOS/FreeRTOS/commit/0744c28749efbc0a0f08424eff5f6433078a25a2)
* [raspi3-tutorial](https://github.com/bztsrc/raspi3-tutorial): commit [c59ad439](https://github.com/bztsrc/raspi3-tutorial/commit/c59ad439f427b0bbac48eef97e689f25ad4fac6c)
我給自己7分  
一開始的隨堂測驗,我幾乎拿不到什麼分數,但在持續跟實驗室夥伴討論後,在期中以後也拿了幾次滿分。  
作業的部份,感謝我的實驗室夥伴,讓我從一個小白快速成長到能夠在本堂課作業做出東西的程度。  
雖然有所進步,但在學期前半,時間安排上實屬不佳,故扣三分。

# 2024 Linux 核心設計 春季班 自我評量
## 作業共筆
# 3.期末專題
我給自己10分  
[專題](https://hackmd.io/@sysprog/BJDY-YoL0)  

* lab0-c: [GitHub](https://github.com/OscarShiang/lab0-c) / [HackMD](https://hackmd.io/@oscarshiang/linux_lab0)
* fibdrv: [GitHub](https://github.com/OscarShiang/fibdrv) / [HackMD](https://hackmd.io/@oscarshiang/linux_fibdrv)
* kcalc: [GitHub](https://github.com/OscarShiang/kcalc) / [HackMD](https://hackmd.io/@oscarshiang/linux_kcalc)
* khttpd: [GitHub](https://github.com/OscarShiang/khttpd) / [HackMD](https://hackmd.io/@oscarshiang/linux_khttpd)
* kecho: [GitHub](https://github.com/OscarShiang/kecho) / [HackMD](https://hackmd.io/@oscarshiang/linux_kecho)
* sehttpd: [GitHub](https://github.com/OscarShiang/sehttpd) / [HackMD](https://hackmd.io/@oscarshiang/linux_sehttpd)
我研讀了 IEEE 754 規格書﹑整理成中文筆記,成功做到以 bitwise *10,並透過 linux kernel 的程式碼觀察到定點數的運作,進而做出一般乘法﹑bitwise ﹑定點數的效能分析。光是跟執行期末專題之前的我相比,差距已然顯著,遑論學期初的我,因此我給自己滿分。

# 4.與授課教師的互動
我給自己8分  
一對一時間:5/16 16:30  
課堂互動:5/16  
老師在上課問我怎麼用bitwise 做到 *10,在當下我無法回答,課後我去看了 IEEE 754,在了解浮點數的規範後成功答題。  
由於自己在課堂上沒辦法與老師應答如流,一旦被質疑就會陷入慌張,故扣兩分。  

## 測驗共筆
# 5.所見所聞所感
我給自己10分

* quiz2: [GitHub](https://github.com/OscarShiang/xstring) / [HackMD](https://hackmd.io/@oscarshiang/quiz2_xstring)
* quiz3: [GitHub](https://github.com/OscarShiang/xorlist) / [HackMD](https://hackmd.io/@oscarshiang/linux_quiz3)
* quiz4: [GitHub](https://github.com/OscarShiang/cvector) / [HackMD](https://hackmd.io/@oscarshiang/linux_quiz4)
一言以蔽之,在各方面都有所突破的一個學期。

(這裡著重在 Linux 的部份,其他部分有興趣的話請參見[hackmd](https://hackmd.io/@dcciou/SkYm7YWDC)。)

## 期末專題
## Linux
大學我讀的是土木系,畢業後出去工作發現這輩子似乎只能在工地當監工而考了電機類研究所。想當然爾,程式經驗也就大一的土木系計算機概論(fortran)跟專題的一點 python。對 C 的認識只有如何將 scan 到的 input 存進二維陣列的程度,Linux 更是沒有聽過。

* KTLS: [HackMD](https://hackmd.io/@oscarshiang/linux_ktls)
在經過這 20 周的洗禮,我對 C 的了解更多,像是指標﹑紅黑數等,習慣了 Linux 的介面,從一開始的虛擬機到之後直接灌作業系統﹑檔案通通丟桌面到資料夾分門別類,這讓我在另一堂課省去很多 debug 的麻煩(自動駕駛實務某些程式碼是在 linux 開發,使用 windows 運行會出現問題)。也習慣了每天與程式陪伴的生活型態。

## 修課心得
期中,在閱讀〈因為自動飲料機而延畢的那一年〉時,雖然我們做的事不同,但心情的投射是相同的,即,一個人全心全意投入自身熱愛的事物時的感受。這讓我對事物的優先順序有了更堅定的看法。

一開始在計畫要上這堂課的時候就發現課程的材料真的很多,估計要花上好幾小時才能完成每個星期的進度,而實際上這學期走過這門課也真的學了不少東西,不管是作圖用的 gnuplot,檢查記憶體使用情況的 valgrind 或是檢查格式的 clang-format,也才發現自己在 HackMD 跟 GitHub 好像也沒有用過很多的功能,頂多就是偶爾打開寫寫投影片,或是把最近寫的作業等等程式碼上傳上去而已。
轉眼到了期末專題,我也對浮點數及定點數有了一些見解,雖然還差的遠,但第一次有跟上課程步調的感覺。

就如同老師在學期初所講的,這堂課雖然說是 Linux 核心設計,但課程的範圍囊括了資訊系許多必修課與選修課的內容,而且內容不但豐富,也相當的深入。因為我在修這堂課的時候是大二下,在這之前並沒有學習過計算機組織的知識,還好老師已經準備好了許多相關的教材,讓我不至於不知道要怎麼處理這方面的議題,而且在上計算機組織的時候也對 cache, virtual memory 這樣的議題更有認知。
透過這堂課,我學到的不僅僅是程式﹑寫作技巧及注意事項,還學到如何面對多方壓力﹑如何 work life balance,也更清楚自己究竟想要過什麼樣的生活。

上這堂課還有另外一項好處,可以知道目前電腦、科技領域的發展脈絡,讓我們在學習核心實作的知識時,也可以了解我們現在所學的這些技能,將來可以用在哪裡,真的是收穫滿滿。

## 自我評量 (1 ~ 10)
# 6.學習回顧
我給自己8分  
這個部分沒有做寄出的動作,主要是當初加簽時教授似乎並沒有很贊同我們修這門課,定期提起他的記憶不太合適。之後因為研究進度有確實進展,教授才沒有多說什麼。以結論而言做到了平衡,但交代的事沒做就是沒做,所以扣兩分。

我給自己 8 分
# 幾何平均計算結果 
*GEOMEAN = $(6*7*10*8*10*8)^{1/6}$ = 8.03  
*方案 B: 1 + floor(GEOMEAN) = 1 + 8 = 9

學期初的時候真的是投入的大量的時間和精神在這堂課上,雖然仍有許多的教材還來不及看完,但至少在作業以及隨堂考的部分,我都有盡量做好。到了期末的時候,各科的期末考以及期末 Project 還是讓我有點忙不過來,導致有好幾週的教材到現在還只是看過而已,而沒有真正的看懂。這也表示我還有許多的地方可以繼續努力加油。謝謝老師這一學期以來的指導,老師您辛苦了。