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

User/yanjiew1

簡介

王彥傑

  • 國立臺灣大學 資訊工程研究所 王彥傑
  • GitHub: yanjiew1
  • Hackmd: @yanjiew

2023 年 Linux 核心 春季班 自我評量

成果發表

作業/隨堂測驗

以下是寫測驗或作業時的相關研究筆記,不是很完整

期末專題

一對一討論日期時間 2023/5/6 3:00 – 4:00pm

主要討論期末專題的要做的項目:期末專題就是把 kvm-host 移植到 arm64 及實作 virtio-net 。目前移植的工作做完了,但希望在 COSCUP 會議前把 Virtio-net 做完。此外,也聊了些自己的過去、工作、學校課業和生涯規劃,自己要有入門門檻高、比較不會被取代的技能。

修課心得

我第一次看到這麼用心的老師。在行事曆上,滿滿的都是老師與學員約的一對一討論。老師除了每週二要去成大上課外,週一和週四也都有課程。

這門課是我這學期花最多時間的一門課了。因為不是成大的學生,只能以旁聽的身份來上這門課,但我還是盡力去完成作業。但礙於台大課業的緣故,之前有些作業沒有完成。在老師宣布有期末專題後,我很快就跟老師約一對一討論,討論我的期末專題的題目。也很快就決定要做虛擬機器相關的專題。雖然接近台大期末,有許多報告和一些考試,但我盡力的找時間,有時間就去做一點,最後有 Linux 核心課程的期末專題完成,這讓我很有成就感。

我覺得這門課讓我對於資訊領域又更有熱情,也對 Linux 核心更有興趣;修這門課時,看到老師的熱情,也激發我在資訊領域也能有些成就,或能夠發揮一些影響力,也時常心裡有想要畢業後再繼續深造出國讀博士的想法。

一直以來我都是開放原始碼的愛好者,喜歡使用開放原始碼的軟體,但過去卻很少做出貢獻。這門課鼓勵我們對 Linux 核心或重要的專案貢獻,老師常常說我們本該如此。我也認為自己若真的對資訊有熱忱,也就應該要對 Linux 核心或重要的開放原始碼專案貢獻,除了對履歷有幫助外,實質的貢獻才能發揮真實的影響力。

我真心推薦對 Linux 核心有興趣,想讓自己變強的人,來修這門課。修這門課要誠實面對自己,看到自己哪裡不足,就去補足自己的不足。

自我評量

我給自己 8 分。

這門課,我學到了很多 Linux 核心的關鍵議題,像是 Lockfree 演算法、並行處理、 C11 Atomics 、 核心開發者關注的 Scalability 問題、排程器。像 Lockfree 的部份,在過去可能與到並行的程式,都是直接用 Lock 去解決,但考慮到 Scalability ,就需要去想有哪些方式能夠去減少 lock 、增加平行的程度。 此外也學習到核心的開發和 User space 不同,例如: stack 大小的限制、盡量不用 floating point 等。

課程方面,每一次都盡力去參與老師的直播。若有錯過的部份,會回去看錄影。作業方面,這學期盡力想去完成每一次作業,但是最後還是沒有全部完成。但期末專題時,雖然期末很忙,但還是盡力有空就做一點,最後有完成老師把 kvm-host 移植到 arm64 的部份。

這學期有貢獻 Linux 核心一個 Patch ,也有對《Demystifying the Linux CPU Scheduler》這本書提出內容的小改進。

《Demystifying the Linux CPU Scheduler》這本書目前還沒看完,之後有時間會繼續閱讀,想繼續努力讀完。