在網頁瀏覽器中執行完整作業系統的想法聽起來像科幻小說,但 WebVM(GitHub 上的 leaningtech/webvm)將其變為現實。由 Leaning Technologies 開發,WebVM 是一個完全在瀏覽器中使用 WebAssembly 執行的完整 Linux 虛擬機器,不需要任何伺服器端基礎設施、安裝或雲端帳戶。
WebVM 的核心是 CheerpX,這是一個由同一團隊開發的 x86 到 WebAssembly 虛擬機器引擎。CheerpX 在執行時動態地將 x86 機器碼翻譯為 WebAssembly,使未經修改的 Linux 二進位檔案能夠在瀏覽器環境中以令人印象深刻的效能執行。結果就是一個功能完整的 Linux 終端,具有 shell 存取、完整檔案系統、網路功能和套件管理——全部在一個瀏覽器分頁中執行。
WebVM 的實際意義重大。互動式文件可以嵌入終端環境,讓讀者執行命令並查看結果。線上程式設計平台可以提供完整的開發環境,而無需佈建雲端伺服器。教學材料可以包含離線可用的實作實驗室練習。安全研究人員可以輕鬆地在可丟棄的環境中安全地測試工具。在每種情況下,消除伺服器基礎設施都極大地簡化了部署並降低了成本。
虛擬化架構
WebVM 的架構與傳統虛擬機器或基於容器的方法有著根本的不同:
graph TD
A[Linux 二進位檔案\nx86 機器碼] --> B[CheerpX 引擎\nx86 到 WASM 翻譯器]
B --> C[WebAssembly\n執行時期程式碼]
C --> D[瀏覽器引擎\nV8 / SpiderMonkey / JavaScriptCore]
D --> E[硬體\nCPU / RAM]
A --> F[虛擬檔案系統\n記憶體中的區塊儲存]
A --> G[虛擬網路\nWebSocket 代理]
A --> H[終端模擬器\nxterm.js 介面]
H --> I[使用者互動\n瀏覽器 UI]CheerpX 引擎作為動態翻譯器運作,在執行時將 x86 指令轉換為 WebAssembly。這在根本上不同於模擬(在軟體中解釋每條指令)或容器化(共享主機核心)。這是在機器碼層級的真正虛擬化,執行未經修改的二進位檔案。
能力與限制
| 能力 | WebVM | 原生 Linux VM | Docker 容器 |
|---|---|---|---|
| 完整 Linux 核心 | 是(虛擬化) | 是 | 與主機共享 |
| 套件管理器 | apt, pip, npm | 完整支援 | 每個映像 |
| GPU 加速 | 無 | 是 | 直通 |
| 持久儲存 | 可選(下載) | 完整 | 磁碟區 |
| 網路存取 | 是(代理) | 完整 | 橋接 |
| 瀏覽器整合 | 原生 | 無 | 無 |
| 冷啟動時間 | 1-3 秒 | 數分鐘 | 數秒 |
實際應用
WebVM 已在多個領域找到實際應用。技術文件平台嵌入終端環境,讓讀者無需離開文件頁面即可執行範例命令。線上教育平台提供完整的 Linux 實驗室,可在任何具有瀏覽器的裝置上運作,包括 Chromebook 和平板電腦。開發者工具提供基於瀏覽器的程式碼編輯器,後端由完整的 Linux 環境支援,用於編譯和測試。
安全模型是另一個優勢。每個 WebVM 實例都完全沙箱化在瀏覽器的安全邊界內。沒有共享的檔案系統,沒有對主機的網路存取,除非明確儲存,否則沒有持久狀態。這使得 WebVM 成為執行不受信任程式碼、測試潛在惡意腳本或提供隔離至關重要的使用者端程式設計環境的理想環境。
對於 Leaning Technologies 來說,WebVM 也作為 CheerpX 的技術展示,展示了 x86 到 WebAssembly 虛擬化的能力。底層技術在伺服器端 WebAssembly、邊緣運算和傳統應用程式遷移方面具有商業應用。
推薦的外部資源
- WebVM GitHub 儲存庫 – 原始碼、問題和即時示範
- Leaning Technologies CheerpX – 驅動 WebVM 的虛擬化引擎
FAQ
什麼是 WebVM? WebVM 是一個使用 WebAssembly 和 CheerpX 虛擬化引擎在瀏覽器中完整執行的 Linux 虛擬機器。它提供完整的 Linux 環境,包含 shell 存取、檔案系統、網路功能以及安裝和執行軟體的能力——完全不需要任何伺服器端基礎設施。
WebVM 如何實作瀏覽器內 Linux 虛擬化? WebVM 使用 Leaning Technologies 的 CheerpX 引擎,這是一個 x86 到 WebAssembly 的虛擬機器。CheerpX 在執行時動態地將 x86 機器碼翻譯為 WebAssembly,使未經修改的 Linux 二進位檔案能夠在瀏覽器中執行。這種方法為 CPU 密集型任務提供了接近原生的效能,同時保持了瀏覽器的安全沙箱。
你可以用 WebVM 做什麼? WebVM 提供完整的 Linux 終端環境,你可以在其中執行命令列工具、編譯程式碼、管理檔案、使用 apt 等套件管理器以及執行開發伺服器。它被用於互動式文件、程式設計教學、線上開發環境,以及任何需要完整 Linux 環境但無需伺服器基礎設施的場景。
WebVM 需要伺服器後端嗎? 不需要,WebVM 完全在客戶端執行。所有運算均透過瀏覽器中的 WebAssembly 完成。唯一的伺服器互動是用於提供初始靜態檔案,以及可選的下載額外軟體套件。即使伺服器連線中斷,虛擬機器也會繼續執行。
與原生 VM 相比,WebVM 有哪些限制? 與原生 Linux VM 相比,WebVM 有一些限制。它以單使用者環境執行,無法存取主機作業系統的檔案或行程,硬體存取有限(無 GPU 加速),且無法執行核心模組或 systemd。CPU 任務的效能普遍良好,但由於瀏覽器內的虛擬檔案系統,I/O 操作較慢。
延伸閱讀
- WebVM 在 GitHub 上 – 包含原始碼和即時示範的儲存庫
- Leaning Technologies 的 CheerpX – WebVM 背後的 x86 到 WebAssembly 引擎
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!