專注在作業系統和電腦安全的研究。做比較多一般認知在核心(kernel),會去改作業系統(以linux為主,會看 ubuntu 上面的 linux 、andriod 上的也有)、虛擬機器 hypervisor,實驗、實作出一個安全的作業系統、或是針對系統上一些(ex:安全)的機制做效能的評估和優化。
有時候會需要去看 x86, arm 的文件,需要碰到一些底層的東西,register、page table format,也可能會碰到組語之類的東西。
修課經驗最需要的會是:SP,OS,除此之外,如果修過計算機組織/架構、電腦安全的話,都會滿有幫助的。
我們研究方面除了有做攻擊,大部分還是防守,打 CTF 的話不一定直接相關,但它會讓同學在攻擊的方面有相關的概念。而CTF可能不會接觸到核心系統軟體的部分,但專題可能會需要從零開始 build 一個 Linux 的系統,改 kernel做開發。
除此之外,其他經驗的話,對 C、UNIX 的使用環境要滿熟的,有在 C 之外對 Script (Python/ shell script) 的了解的話,會滿好的。 Q3: 專題的主題一般都是怎麼決定的?如果學生真的沒有方向的話,教授會有一些參考題目嗎?
有滿多種的:
參與現在同學研究的計畫,開學會有介紹,加入的專題生就可以去聽聽看,有興趣的話就可以選擇加入。
老師看到有趣的主題可能也會給專題生,這樣就會變成專題生自己去 handle 一個新題目,去做更多的嘗試。
主要是資訊安全領域相關的東西會很快的出來,那這部分就是 depends on 有沒有什麼有趣的新東西,有看到就可以去接觸這樣。
最基本是 2 學分這樣課程的規劃,這是最低標。如果目標是要做出很好的成果的話,可能會需要更多時間,例如說,如果目標是要發 paper 的話,尤其我們研究領域是滿需要 engineering effort,會需要花時間開發,有時候寫的東西不是很難的演算法,但很莫名其妙地,你寫的東西就是不會動,那很需要花一些時間 debug,因為你可能要去看很多的知識,這個「具備的知識量」很多時候需要花時間去跨越那個門檻,因此可能會需要一些時間。
我知道的平均大約 1-2 天。
1v1 Meeting
通常一週、兩週會 meeting 一次,但基本上會看學生的安排,會先跟學生溝通好(有些是實作的問題,那這種可能就不用很 常討論,可能拉很長到一個月之類的。)
group meeing
主要是以 seminar 的形式進行(報 paper),每週進行,專題生通常一個學期報一篇。
專題可能會分配到實際的硬體環境做使用。舉例來說,過去我們有專題生會使用Google的Pixel手機去上面改Kernel做測試開發。
直接 email 就好了!可以附一下簡單的經驗、為什麼對專題有興趣、預計對哪個方向鑽研⋯⋯
不一定。
只能說修課可以給你們一些背景知識,這些背景知識很重要,但就我了解,修課成績跟專題成績不是成正相關的。
系上很多學生在四年間會參與很多不同專題,這也許是一個方法,可以去了解不同領域,可以實際做做看這樣子。在這之前也可以去修一下「前瞻資訊科技」,有很多系上的老師都有去上課,包括我也有去,可以透過這樣來了解各個實驗室在做什麼。
如果選擇做很多專題來了解自己的方向的話,可能也要思考一下:是不是做的夠久,有時間讓你足夠瞭解這個領域。
我覺得如果學生自己可以負擔那個工作量,那我其實沒有太多的意見。
但就我的經驗,如果學生要參與專題,想做出不錯的成果的話,可能會需要大概兩個學期。每個科別的研究應該都類似,一開始會需要先接觸一個領域,因為專題跟大學必修教的東西不太一樣,專題會對某個領域鑽的特別深,舉例來講,作業系統在大家上課的時候不會教太深,但專題的時候可能需要真的下去看 code,另外看 paper 也會需要很大的 effort ,這些都會需要很多時間。再加上現在學期變短,大家可能變忙碌什麼的,一個學期可能太短了。
我跟蕭老師有些合作在做系統的研究(像 Andriod),但他們比較像是在 Andriod 的 framwork (不是核心 kernel)上做研究,但我們實驗室做的比較是直接去把 kernel 換掉,或是可能需要延伸 Kernel 去加新功能。
我們雖然偏底層,但其實也會碰到上層的東西,舉例來講,我們開發完底層後,也會需要去跑應用程式做測試,這部分我們也會碰到。那變成說,你可能會需要去了解應用程式如何用到底層的服務,了解這裡的修改是如何去影響他執行的行為、效能的差異,所以我們其實是比較全面性的研究。
懶人包:蕭旭君老師會比較偏上層,黎士瑋老師偏底層(全面性)
不負責宣言:MBTI 這個欄位僅供參考,主要是可能可以透過 MBTI 了解到老師的做事習慣、方式(可以自行上網搜尋),和自己的習慣做比較。
INTP ~ INFP,不太一定,通常在這兩者之間。
但會不會其實資工系大家都差不多啊,或是教授們就大概都是研究者類型?
(編者註:我有問到的結果似乎真的差不多,但就是樣本數滿少的,不能保證一定正確)
我們除了純系統相關的研究外,也有做一些稍微理論的部分,可能像正規、驗證的部分,例如:嘗試用數學 model 推導出程式執行的行為,去論述說你的程式是安全、沒有 bug 的。這部分可能就會跟大家大學學過的正規語言或者是 Automata 之類的有相關性,這也是有部分我們的研究歡迎有興趣的同學來挑戰,這部分有跟中研院的團隊合作。