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

版本 49a569b26f9a34e10d38089de307276b9b506076

User/padaray

Changes from 49a569b26f9a34e10d38089de307276b9b506076 to current

---
title: padaray (陳浩文)
categories: User
...

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

* 簡介:國立成功大學電機所 114 級
* GitHub: [padaray](https://github.com/padaray)
* HackMD: [padaray](https://hackmd.io/@padaray)

### 成果發表與貢獻

閱讀文件時做的錯字修訂:

* [虛擬攝影機裝置驅動程式](https://hackmd.io/@sysprog/rJEhcgoSn):訪問->存取、接口->介面、內存->記憶體
* [虛擬攝影機裝置驅動程式](https://hackmd.io/@sysprog/rJEhcgoSn) : 訪問->存取、接口->介面、內存->記憶體

### 作業與隨堂測驗
* lab0: [GitHub](https://github.com/padaray/lab0-c) / [HackMD](https://hackmd.io/@padaray/linux2024-homework1)

    完成 C 語言佇列實作和改進,實作和驗證 Fisher–Yates shuffle 演算法,研讀 lib/list_sort.c

* quiz1 + 2: [HackMD](https://hackmd.io/@padaray/linux2024-homework2)

* quiz3 + 4: [HackMD](https://hackmd.io/@padaray/linux2024-homework4)

* Assessment: [HackMD](https://hackmd.io/@padaray/linux2024-homework5)

    閱讀〈因為自動飲料機而延畢的那一年〉,研讀課程教材和 CS:APP 3/e

* Integration: [HackMD](https://hackmd.io/@padaray/linux2024-integration)

    運作基本的 linux 核心模組

### 期末專題

vcam: [HackMD](https://hackmd.io/@sysprog/ByzkF6xDA) / [GitHub](https://github.com/padaray/vcam) / [Youtube](https://youtu.be/OVUKaIWNOFA)

了解 V4L2 框架、Framebuffer、vcam 程式碼,在 Linux 6.8 版本成功運行 vcam

### 與授課教師的互動
一對一討論:5月 20日 (星期一)⋅下午6:30 - 7:00

* [並行程式設計:排程器原理](https://hackmd.io/@sysprog/concurrency-sched)-問題討論:coroutine 的機制存在,會不會取代 preemptive 機制

* [Linux 核心的紅黑樹](https://hackmd.io/@sysprog/linux-rbtree)-問題討論:AVL tree 和 rbtree 樹高分別是 1.44 × log⁡(𝑛+2) 和 2 × log(𝑛+1) ,1.44 和 2 這兩個常數如何計算而來

*  CS:APP 3/e-問題討論:UTF-8 的編碼方式

### 修課心得
課程的一開始著重在 C 語言資料結構,第一份作業實作 lab-0 時,我就在思考這堂課不是叫做 Linux Kernel 實作嗎,一直寫 C 也沒搞懂甚麼是 Linux Kernel,直到作業六 - Integration 進入核心掛載才對 Kernel 框架有了大致的了解,但也在這時才知道當初課程著重在 C 語言技術的原因,Kernel 框架是由 C 語言技術堆疊而成的,若一開始直接從 Kernel 框架下去看而不熟悉 C 語言,在理解程式碼時就會處處碰壁,讓挫敗感很重。

在學期的開始,老師就有說這是一堂需要花費大量時間的課程,每週至少要花特定時數,因為需要閱讀大量的文件,在學期初較不忙時,還能看完文件後再完成作業要求,但來到作業四時,沒有時間閱讀文件只能先完成作業,這是我要檢討的地方,沒有分配好時間造成學習效果不好。

在這堂課體悟最多是在閱讀 CS:APP 3/e,本來對於讀規格相關的書籍我會感到很無趣,但經過這學期閱讀文件的經驗,我反而能靜下心來好好閱讀,且對這本書的內容感到有興趣,我認為這對以後開發需閱讀文件很有幫助。另外閱讀〈因為自動飲料機而延畢的那一年〉也很有感悟,在修課的過程中不免有想放棄的念頭,畢竟只能盡力完成作業而沒時間看文件,作業完成度也不夠高,讓我感到相當挫折,甚至有了期中退選的想法。但看完這篇文章讓我有了繼續下去的動力。作者在過程中遇到問題都是想著解決問題,而不是放棄,我也因此想向他看齊,盡力修完這門課。

### 與指導教授的學習回顧
* 二月回顧:3月8日 週五 下午8:53

    1. circular doubly linked list 的實作中遇到的問題
    2. 學習 git commit 撰寫

* 三月回顧:4月8日 週一 下午9:26

    1. 補全作業 1 的驗證亂數
    2. graphviz 視覺化程式碼
    3. Valgrind 記憶體管理工具

* 五月回顧: 6月27日 周四 早上8:00

    1. 閱讀 因為自動飲料機而延畢的那一年
    2. 閱讀 CS:APP 3/e

### 自我評量
$(3 \times 7 \times 6 \times 7 \times 8 \times 7) ^ {1/6} = 6.06$ 

使用方案 B 計分:$1 + floor(6.06) = 7$