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

oEric0929o (吳承峻)

簡介

成果發表

Linux 核心和相關專案貢獻

其他專案貢獻

2023 Linux 核心設計/實作 春季班 自我評量

作業共筆

測驗共筆

期末專題

  • 重做 lab0 並彙整學員成果: HackMD

一對一討論: 2023年5月12日 20:00 - 20:30

  1. 在原先的 lab0 中排序使用到遞迴導致效率不好,可以經由使用 Linux list_sort 來改進, Linux list_sort 使用 Bottom-up mergesort ,不需要用到遞迴

  2. quick sort 與 merge sort 的比較: 前者為 non-stable sorting ,後者為 stable sorting ,後者在 worst case 及多數情況都比前者有效率,但需要較多額外儲存空間

  3. stable sorting 與 non-stable sorting 的比較: stable sorting 在排序後相同鍵值資料的相對位置與排序前相同,而 non-stable sorting 則不保證

所見所聞所感

因為大學前幾年沒有認真上課認真寫程式,在考完研究所有較多空閒時間後決定來挑戰這門課程,盡力加強自己對資訊界的認知以及寫程式的能力。在一開始的作業一就發現這真的是一項非常大的挑戰,光是閱讀完作業說明就花了好多時間,並且讀完以後也沒有頭緒要如何開始,後來詢問同學後知道了開始寫程式的方向,以及 debug 的方法,按照自動測試程式的指引一步一腳印完成作業,雖然花費了非常長的時間,但是完成的時候非常有成就感,並且這個寫程式的方法以及精神也讓我成功靠自己完成了編譯系統的三次作業,這是我在大學生涯中第一次靠自己的力量完成一門必修課的作業,我認為學習到寫程式的方法與精神就是我在這次課程中最大的收穫。

閱讀《Linux Kernel Module Programming Guide》,跟著書中的示範一步步做,我成功寫出了可以讓 user space 和 kernel space 溝通的 kernel module ,因此我認為這本書對於想要學習的 kernel module 的人來說非常有幫助,即使是初學者,只要花時間看也能夠看懂。關於〈因為自動飲料機而延畢的那一年〉,讀完後我覺得有理想並且永不放棄是一件很偉大的事情,也明白了這就是目前的我和成功人士的區別,目前的我還在努力把自己身為一名資工系學生該學的事情學好,或許目前的我還沒有辦法為這個世界創造什麼,但是我會持續努力,期許自己在研究所畢業之前能夠抬頭挺胸的說自己會寫程式,是一名資工畢業生。

自我評量 (1 ~ 10)

我給自己 10 分。

這堂課是大學中影響我最多,並讓我進步最大的一堂課,也是我花最多時間投入的一堂課,因此我認為值得給自己 10 分。從之前的不會寫程式到可以寫出足以完成部分作業要求的程式,從拒絕閱讀別人的程式碼到願意慢慢耐心閱讀並且理解別人程式碼,從看到原文的文章或書籍就想直接放棄到願意耐心閱讀原文並且嘗試從中提取自己想要的知識,從對 Github 幾乎完全陌生到了解了許多實用的基本用法,並且第一次體驗到把生活重心放在寫程式,起床打開電腦就選擇 Ubuntu 系統,除了吃飯都在寫程式和讀資料的日子。我會帶著在這堂課學到的知識與精神繼續努力,成為一名對社會有貢獻的工程師。