11月15日、Leaning Technologiesが「WebVM 2.0: ブラウザ上で稼働する完全なLinuxデスクトップ環境」と題した記事を公開した。この記事では、ブラウザ内で実行可能なLinuxデスクトップ環境「WebVM 2.0」の機能とその技術的な仕組みについて詳しく紹介されている。
WebVMとは
WebVMは、ブラウザ内でクライアントサイドで実行される完全なLinux環境であり、永続的なデータストレージ、ネットワーキング、Xorgおよびデスクトップ環境をサポートする仮想マシンである。WebAssemblyを利用し、現代のほぼすべてのブラウザで動作するため、モバイルブラウザにも対応している。Leaning Technologiesによって開発されたx86仮想化エンジン「CheerpX」を基盤にしている。
WebVM 2.0の新機能
新たにリリースされたWebVM 2.0では、以下の機能が強化された。
- 仮想化エンジンの改良 - CheerpXの強化により、より多くのLinuxアプリケーションがブラウザ上でスムーズに実行可能。
- Xorgサポート - Xorgをサポートすることで、完全なデスクトップ環境を提供。
- 新しいユーザーエクスペリエンス(UX)デザイン - 使いやすさが向上。
WebVMの構成要素
WebVMは次の主要な構成要素から成り立っている。
- CheerpX - WebAssemblyベースのx86仮想化エンジン。標準のLinux x86バイナリをブラウザ内で実行する。
- ストリーミングディスクバックエンド - 動的にディスクブロックを読み込む機能により、大規模なLinuxディストリビューションの起動をサポート。
- ネットワーキングレイヤー - Tailscaleを介したプライベートなネットワーキングを実現。
- グラフィックデバイスエミュレーション - Xorgおよびデスクトップ環境を動作させるためのグラフィックデバイスをサポート。
CheerpXのセキュリティ
CheerpXは標準のJavaScriptとWebAssembly APIを使用して実装され、ブラウザのサンドボックス内でバイナリアプリケーションを完全に分離して実行する。これにより、高いセキュリティが保たれている。
低遅延のディスクバックエンド
WebVMは、Cloudflare Workerを用いたストリーミングディスクデバイスを備えており、128KBのディスクブロックをWebSocket経由でオンデマンドでダウンロードする。ローカルストレージにも対応しており、IndexedDBを使用した永続性とキャッシュ機能を提供する。
プライベートネットワーク機能
Tailscaleとの統合により、プライベートネットワークを簡単に構築できる。これは、ブラウザ内での安全なネットワーク通信を可能にする。
Xorgとグラフィックサポート
WebVM 2.0では、i3ウィンドウマネージャを使用したXorgベースのデスクトップ環境をサポートしている。これは、LinuxのKMS(カーネルモード設定)APIを用いて実装されており、ブラウザ内でのシームレスなグラフィック表示を実現する。
WebVM 2.0は、CheerpX 1.0と共に、ブラウザ上でより複雑な環境やDockerコンテナを実行するための基盤を提供する。この新しい技術は、教育機関や企業の開発環境としても活用が期待される。
詳細はWebVM 2.0: A complete Linux Desktop Environment in the browser via WebAssemblyを参照していただきたい。