クライアント側で実行されるサーバーレス仮想Linux環境 WebVM
(webvm.io)-
WebVMの紹介
- WebVMはサーバー不要の仮想Linux環境で、HTML5/WebAssemblyを通じて完全にクライアント側で実行される
- CheerpX仮想化エンジンを使用し、安全でサンドボックス化されたクライアント側でのx86バイナリ実行を可能にする
- CheerpXには、x86-to-WebAssembly JITコンパイラ、仮想ブロックベースのファイルシステム、Linuxシステムコールエミュレータが含まれる
-
新機能
- Dockerfileを通じてユーザー向けにカスタマイズしたイメージを使い、自分専用のWebVMを作成できる
- リンク: Mini WebVM: Your Linux Box from Dockerfile via WASM
-
使用例
- Pythonのサンプル実行:
python3 examples/python3/fibonacci.py - Cのサンプルをコンパイルして実行:
gcc -o helloworld examples/c/helloworld.c && ./helloworld - バイナリを逆アセンブル:
objdump -d ./helloworld | less -M - VimでCサンプルファイルを開く:
vim examples/c/helloworld.c - ネットワーク接続が必要なcurlのサンプル:
curl --max-time 15 parrot.live
- Pythonのサンプル実行:
GN⁺の要約
- WebVMはサーバー不要の仮想Linux環境で、クライアント側で安全にx86バイナリを実行できるのが強み
- CheerpX仮想化エンジンにより、さまざまなシステムコールやファイルシステムをエミュレーションでき、ブラウザ上で直接Linux環境を体験できる
- Dockerfileを通じてカスタムイメージを生成できるため、開発者に柔軟な環境を提供する
- 類似機能を持つプロジェクトとしては、JSLinuxやv86がある
1件のコメント
Hacker Newsの意見
複数の仮想マシン(VM)リンクを共有
Mac OS関連のリンクを共有
WebVMのリード開発者であり、Leaning TechnologiesのCTOが質問を受け付ける用意がある
Tailscaleによるネットワーキングを提供しており、潜在的な問題を解決する賢いやり方だという意見
モバイルでは使用不可で、特にAndroidのFirefoxとChromeではキーボードの問題でコマンドが重複入力される
オフラインで動作し、リロードをまたいで状態を保持できるのかという質問
実用的なユースケースについての質問
モバイルで動作しないという意見
bellard.org/jslinux より遅いという意見
90年代半ばにSlackware Linuxをフロッピーディスクで初めて使ったが、ブラウザでLinuxを見るたびに驚かされる
Apple Siliconでは非常に遅いという意見