Ruby 程式碼是文字檔,透過 interpreter 讀取執行。YARV 是用 C 寫的 Ruby interpreter 實作,經過 compile 成執行檔,我們寫的 ruby 程式作為 YARV 的 input 被執行。
YARV 要有下列功能:
YARV 本身是作為 OS 管理的 process 執行,OS 要把 interpreter 的 ELF 從 file system 讀進 memory 後,才有接下來讓 CPU 運算執行 YARV 功能的步驟。ELF 包含關於自身資訊的 HEADER
(作用類似書本目錄),與程式經過 compile 成 CPU instruction binary code & data 的 SECTIONS
。根據這些資訊,OS 會建立一個 YARV process。