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

版本 562299d9874469692b3ce758f0c5b2a185dbcaa8

colin (沈宗穎)

簡介

  • 成功大學104級 電機系
  • 台灣大學 資工所
  • VMFive<http://join-vm5.weebly.com/>_ 小小實習生

作業

Github

  • visualizer<https://github.com/colin8930/visualizer>_
  • mini-arm-os<https://github.com/colin8930/mini-arm-os>_
  • freertos-basic<https://github.com/colin8930/freertos-basic>_

NOTE

  • lab38<https://embedded2014.hackpad.com/Week-2-5ZwqRU6MZIQ>_: 使用gnuplot分析。
  • lab39<https://embedded2015.hackpad.com/LAB-39-zlSzpXZzzC7>: 實作ls、pwd、cd等指令。並透過建立task分析不同的memory allocate algo。實作auto-completion及 $PS1 (Prompt shell variable)。 影片<https://www.youtube.com/watch?v=Iy7-w-JQNO8&feature=youtu.be>
  • lab40<https://embedded2015.hackpad.com/WEEK4-Q9sUeYmV1Fb>_ : 分析UART中斷處理。 中斷說明影片<https://www.youtube.com/watch?v=VaU17yhh994&feature=youtu.be>_
  • lab41<https://embedded2015.hackpad.com/NZnT0pELDfb>_
  • lab42<https://embedded2015.hackpad.com/WEEK7-8ylLPlOYTpr>_ : 實作ready queue、priority-based scheduling,並透過lab 40的工具分析context switch time。
  • lab43: 出挑戰題。其他題目在上學期已完成。

開放原始碼專案參與

  • xvisor<http://xhypervisor.org/>_

學期報告

  • ARMv8</embedded/ARMv8>_
  • Xvisor</embedded/xvisor>_
  • 負責:
    • ARMv8
    • Foundation model、 QEMU 環境
    • 研究Xvisor虛擬化技術的實作,包括: CPU virtualization、instruction emulate、Virtual gic、device emulator、MMU。

git commit

  • [TESTS] Added test script for testing Basic Firmware on armv8 Foundation Model.<https://github.com/xvisor/xvisor/commit/49ad9b7dd401fbc5f8e63bf87a39fa80096e5c6a>_

心得

  • 從去年開始就開始接觸這門課程,這學期是我第二次修這門課(上學期也有修),這門課帶給我的改變可能比這四年的所有課程還多(雖然這有很大部分是我自己的問題)。讓我感觸最深的是使我知道自己有多弱,讓我能更虛心的跟高手同學及組員請教跟學習。老師也一直鼓勵大家要多去外面見見世面,上學期的電子電路複習課程、sitcon,寒假的編譯器教材,這學期的open source project都讓我的見識增廣許多。

  • 這學期的作業花的時間明顯比上學期多了很多,一方面是難度提升了不少,一方面是自我要求也高了一些,所以花了很多時間在coding跟閱讀資料上。因為知道有人會不敢先放上作業連結(因為我上學期也是這樣XD),因此這次就盡量早點完成作業,讓大家可以參予討論跟找可以改進的地方,也讓我有更多地方能學習。

  • 跟程式碼本身比起來,效能相關的實驗及數據也是相當重要的,這學期學到了許多方法來視覺化相關的數據,讓效能分析能更準確,才能進一步改進程式碼。

  • 這學期的專題形式也跟上學期不太一樣,我們這組是研究 Xvisor</embedded/xvisor>_ 這個open-source type-1 hypervisor。在研究的過程中遇到很多挫折,包括arm的模擬器不能連gdb(沒有debugger真的很難做事…),試著用qemu來跑結果沒有el2可以用等等。其實最大的問題是研究虛擬化技術畢竟是要模擬一個給作業系統執行的環境,必需得對作業系統很熟悉,因此也花了很多時間在複習(其實是預習)OS。而且我們還有另一個任務就是順便研究armv8的架構,這部分不要說是繁體中文了,連簡體中文甚至是英文的資料都很難找,只好直接啃五千多頁的ARM® Architecture Reference Manual。

自我評量分數 (1 到 10 級分)

  • 10分

  • 總結一下這學期的成果: 研究了armv8跟虛擬化技術,也在xvisor貢獻了一個patch(雖然只是一個test script),甚至還用這個經驗找到了實習的機會。在過程中整理大量技術文件並撰寫中文報告,也培養了trace稍微大型的程式碼的能力。

更多資訊

  • email: colin8930 @ gmail.com
  • facebook: https://www.facebook.com/t22374