WebAssembly製のx86仮想マシン、Webブラウザ上でLinux GUIデスクトップ環境を実行可能に。「WebVM 2.0」が登場
今回は「WebAssembly製のx86仮想マシン、Webブラウザ上でLinux GUIデスクトップ環境を実行可能に。「WebVM 2.0」が登場」についてご紹介します。
関連ワード (実装、最大、特徴等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Leaning Technologiesは、Webブラウザ上でx86バイナリをそのまま実行できるWebAsesmbly製の仮想マシン「WebVM」をバージョンアップした「WebVM 2.0」を公開しました。
従来のWebVM 1.0では、Webブラウザ上の仮想マシンでx86版のLinuxを起動し、コマンドラインからさまざまな操作が可能でした。
参考:WebAssembly製のx86仮想マシン「WebVM」が登場、Webブラウザ上でLinuxや各種コマンド、アプリがそのまま実行可能
今回公開されたWebVM 2.0では、GUIを備えたLinuxデスクトップ環境までWebブラウザ上でサポートされたことが最大の特徴です。
下図で示されるように、仮想マシン上でさまざまなプロセスを実行し、さらにLinuxシステムコール経由でGUIのディスプレイ、ローカルディスク、ネットワーキングをサポートしています。
ネットワーク、ストレージ、GUIもサポート
WebVM 2.0の基盤となるWebAssemblyによる仮想マシンの実装は、同社の「CheerpX」と呼ばれるソフトウェアです。
CheerpXはx86バイナリをJITコンパイラでWebAssemblyへと変換する機能を備えており、x86バイナリをそのままWebブラウザ上で実行可能にします。
その上で、Debian系Linuxディストリビューションと複数のツールを組み合わせて、CheerpX上にLinuxシステムコールのエミュレーションレイヤを実装したことでWebVMが実現されています。
今回公開されたWebVM 2.0では、VPNサービスであるTailscaleにより外部とのネットワーク通信を可能にしました。また、ローカルストレージは1GB以上のルートファイルシステムがエミュレートされており、WebSocket経由で外部からストリーミングデータとしてCloudflare Workers経由で読み込むことが可能です。
そしてXorg(X Windowサーバ)の2Dレンダリングがサポートされ、描画内容はHTMLのCanvasによってWebブラウザ上に描画されるようになりました。
これによりWebVM 2.0では、GUIを備えたLinuxデスクトップ環境もWebブラウザ上でサポートされました。今後、WebGPU経由での3Dグラフィックス機能のサポートも計画されています。
WebVM 2.0は、誰でも「WebVM.io」へアクセスして実行可能です。自身のWebブラウザ上でLinuxのGUIデスクトップ環境を体験できます。
CheerpXは個人であれば無償で利用可能。WebVM 2.0はオープンソースとしてGitHubで公開されています。