Closed jollen closed 8 years ago
已發佈至 Jollen's Blog
以下步驟參考自 Runtime.js 官網 的說明,目標是初始化一個新的 Runtime.js 專案。請參考 Getting Started 上的環境安裝說明。
要使用 Runtime.js 必須安裝 Node.js 執行環境,以下步驟以 Mac 環境為主,Node.js 的版本為 v4.2.6。
Runtime.js 仍是一個發展中的開源計畫,目前的發展狀態如下:
即便 Runtime.js 還是處於這麼早期的階段,但實作簡單的 IoT cloud VM image 問題並不大。以下是使用 runtime.js 製作 unikernel image 的準備工作說明。
安裝 QEMU VM 做為 Runtime.js 的執行環境。以 Mac 為例,使用 homebrew 安裝 qemu:
$ brew install qemu
Runtime.js 目前僅支援 KVM。
使用 npm 建立新的 Node.js 專案:
$ mkdir simple-iot-runtime $ cd simple-iot-runtime $ npm init
這次的學習計畫,將不使用 Express。如果要實作 REST API 的話,後續就要實作一個小型的 URL router。
安裝 Runtime.js 的 core library:
$ npm install runtimejs --save
Runtime.js 提供二個命令列工具(CLI):
$ sudo npm install runtime-cli -g $ sudo npm install runtimeify -g
Browserify 原本是用給 frontend 開發使用的工具,讓 frontend 的 JavaScript 程式碼,也能以 require() 的風格引入相依模組。現在被應用於 Runtime.js 專案中。
將主程式 index.js 打包(bundle)成 initrd 檔案:
$ runtimeify index.js -o initrd
使用 runtime-cli 啟動製作出來的 initrd:
$ runtime start
上述步驟得到的 initrd 就是一個 unikernel image。runtime-cli 是 qemu 的 wrapper,測試方式是使用 runtime-cli 啟動 qemu,並載入 initrd 檔案。initrd 是 runtime.js 預設的 unikernel 檔案。
雖然 unikernel 的檔名是 initrd,但這與 GNU/Linux 上的 initrd(init process)是完全不同的實作。Runtime.js 所製作的 initrd,其實就是 browserify 所編譯出來的 JavaScript 應用程式。
已發佈至 Jollen's Blog
以下步驟參考自 Runtime.js 官網 的說明,目標是初始化一個新的 Runtime.js 專案。請參考 Getting Started 上的環境安裝說明。
要使用 Runtime.js 必須安裝 Node.js 執行環境,以下步驟以 Mac 環境為主,Node.js 的版本為 v4.2.6。
建立 Runtime.js 專案
Runtime.js 仍是一個發展中的開源計畫,目前的發展狀態如下:
即便 Runtime.js 還是處於這麼早期的階段,但實作簡單的 IoT cloud VM image 問題並不大。以下是使用 runtime.js 製作 unikernel image 的準備工作說明。
1. 安裝 QEMU VM
安裝 QEMU VM 做為 Runtime.js 的執行環境。以 Mac 為例,使用 homebrew 安裝 qemu:
Runtime.js 目前僅支援 KVM。
2. 建立新的 Node.js 專案
使用 npm 建立新的 Node.js 專案:
這次的學習計畫,將不使用 Express。如果要實作 REST API 的話,後續就要實作一個小型的 URL router。
3. 安裝 Runtime.js 模組
安裝 Runtime.js 的 core library:
4. 安裝 Runtime.js CLI 與 Runtimeify
Runtime.js 提供二個命令列工具(CLI):
Browserify 原本是用給 frontend 開發使用的工具,讓 frontend 的 JavaScript 程式碼,也能以 require() 的風格引入相依模組。現在被應用於 Runtime.js 專案中。
5. 製作 Unikernel Images
將主程式 index.js 打包(bundle)成 initrd 檔案:
6. 啟動 Unikernel
使用 runtime-cli 啟動製作出來的 initrd:
小結
上述步驟得到的 initrd 就是一個 unikernel image。runtime-cli 是 qemu 的 wrapper,測試方式是使用 runtime-cli 啟動 qemu,並載入 initrd 檔案。initrd 是 runtime.js 預設的 unikernel 檔案。
雖然 unikernel 的檔名是 initrd,但這與 GNU/Linux 上的 initrd(init process)是完全不同的實作。Runtime.js 所製作的 initrd,其實就是 browserify 所編譯出來的 JavaScript 應用程式。