虛擬機架構

部件

  • 載入器 (Loader)

    • 讀取檔案,將內容轉換成物件後載入儲存空間和模組

    • 載入完之後就會被釋出,不會繼續留在程式裡

  • 核心 (Core)

    • 讀取檔案,將內容轉換成物件後載入儲存空間和模組

    • 執行程式的主要部件

  • 解碼器 (Decoder)

    • 從儲存空間取得下一個指令,按照位元格式解碼後執行指令

  • 系統呼叫 (System call)

    • WasmVM 特有,用來執行輸出/輸入等等作業系統的功能

運行步驟

  1. 準備儲存空間和模組空間,並檢查系統的位元組順序 (Endians)

  2. 準備載入器,載入 wasm 檔案

  3. 釋放載入器

  4. 準備核心

  5. 取得主要模組名稱和起始函式

  6. 呼叫起始函式,開始執行

    A. 解碼器取得下一個指令

    B. 解碼器解析指令

    C. 執行指令

    D. 重複 A 到 C 的動作,直到程式結束

  7. 釋放所有物件,結束程式