Leaning TechnologiesがWebVM 2.0を公開、ブラウザ上でLinuxデスクトップ環境の完全実行が可能に

text: XEXEQ編集部
(記事は執筆時の情報に基づいており、現在では異なる場合があります)


記事の要約

  • WebVM 2.0が完全なLinuxデスクトップ環境を実現
  • CheerpXによるx86バイナリの仮想化を強化
  • Xorgとデスクトップ環境の完全サポートを実装

Leaning TechnologiesがWebブラウザ向け仮想マシンWebVM 2.0を公開

Leaning Technologiesは2024年11月13日、WebブラウザでLinux環境を実行できる仮想マシンWebVMの新バージョンとなるWebVM 2.0を公開した。WebVM 2.0は永続的なデータストレージやネットワーキングに加え、XorgとLinuxデスクトップ環境の完全サポートを実現している。WebAssemblyHTML5、そしてLeaning Technologies独自のx86仮想化エンジンCheerpXによって、モバイルを含むあらゆる最新ブラウザで動作が可能だ。[1]

WebVM 2.0の中核となるCheerpXは、x86命令をWebAssemblyに変換する効率的なJust-In-TimeコンパイラとLinuxシステムコールのエミュレーション層を組み合わせた独自の仮想化エンジンとなっている。この組み合わせにより、未変更のLinux x86バイナリをブラウザで実行できるほか、完全なLinuxディストリビューションを実行できるだけの堅牢性とスケーラビリティを実現しているのだ。

また、WebVM 2.0ではストリーミングディスクバックエンドを採用し、1GB以上のルートファイルシステムをサポートしている。ファイルシステム全体を事前にロードする必要がなく、ディスクブロックを低レイテンシーで動的にロードすることが可能となり、VMの全体的なパフォーマンスが向上したのである。

WebVM 2.0の主な機能まとめ

CheerpX仮想化 ストレージ機能 ネットワーク機能 グラフィックス機能
主な特徴 x86バイナリの実行 1GB超のファイルシステム Tailscaleによる接続 Xorgサポート
技術基盤 WebAssembly JITコンパイラ ストリーミングディスク WebSocket通信 KMS API
特記事項 システムコールエミュレーション IndexedDBによる永続化 プライベートVPN対応 i3ウィンドウマネージャ

WebAssemblyについて

WebAssemblyとは、Webブラウザ上で動作する低レベルなバイナリフォーマットおよび関連技術の総称であり、主な特徴として以下のような点が挙げられる。

  • ネイティブに近いパフォーマンスを実現
  • C++やRustなど複数の言語からコンパイル可能
  • JavaScriptと相互運用が可能

WebAssemblyはブラウザのサンドボックス内で動作し、標準的なWeb APIを通じてのみホストシステムとやり取りを行うため、高い安全性を確保することができる。WebVMではWebAssemblyの特性を活かし、ブラウザ内でx86バイナリを安全かつ効率的に実行する仮想化を実現している。

WebVM 2.0に関する考察

WebVM 2.0の最大の利点は、ブラウザ上で完全なLinux環境を実現した点にある。従来のクラウドベースの開発環境と比較して、ローカルでの実行によるレイテンシーの低さとプライバシーの保護を両立しており、教育機関や企業での活用が期待できるだろう。

一方で、WebAssemblyによる仮想化は依然としてネイティブ実行と比べてパフォーマンスの面で課題が残る可能性がある。特にグラフィカルなアプリケーションの実行時には、WebGPUのサポートが今後の重要な要素となってくるだろう。

今後の展開としては、Dockerコンテナのサポートやより高度なデスクトップ環境の実装が期待される。特にWaylandのサポートは、最新のLinuxデスクトップ環境との互換性を高める上で重要な要素となるはずだ。

参考サイト

  1. ^ Leaning Technologies Developer Hub. 「WebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssembly」. https://labs.leaningtech.com/blog/webvm-20, (参照 24-11-19).

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「プログラミング」に関するコラム一覧「プログラミング」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。