ニュース
Webブラウザーで「Debian」Linuxが動く! WebAssembly製のx86仮想マシン「WebVM」
バイナリそのまま・再コンパイルなし。完全にクライアント側だけで動作
2022年2月3日 14:52
Webブラウザーでx86仮想マシンを実行するソリューション「WebVM」が、2月1日に公開された。Linuxディストリビューション「Debian」のバイナリをそのまま、WebAssemblyで動かしているという。
「WebVM」を開発したのは欧州に拠点を置くLeaning Technologies社。WebAssemblyを活用してレガシーアプリケーションを延命させるソリューションを複数手掛けている。
- 「Cheerp」:C/C++をWebAssemblyおよびJavaScriptへコンパイル
- 「CheerpJ」:JavaクライアントアプリをHTML5/JavaScript/WebAssemblyへ変換
- 「CheerpX」:x86アプリをWebAssemblyで仮想化する技術。WebAssemblyでFlashコンテンツをエミュレートすることも可能
「WebVM」には「CheerpX」が用いられているが、これは3年以上前から開発が始められており、古い「Adobe Flash」コンテンツを実行するためのエンタープライズソリューション「CheerpX for Flash」の一部として、すでに多くの実績を積んでいるとのこと。
「CheerpX」は、以下に例を挙げるような技術を組み合わせた複雑なソリューションだが、すでに高いレベルの安定性を実現しているという。
- x86向けのインタープリター
- インタープリターで検出されたホットコード(頻繁に呼び出されるコード)をWebAssembly化するJITコンパイラー
- 未変換のx86バイナリと変換済みのWebAssemblyのギャップを埋めるLinuxシステムコールエミュレーション層
「Debian 10」(buster)のディスクイメージはCDNで配信されているが、ユーザーデータはIndexedDBをベースにしたローカルストレージに永続化される仕組みとなっており、外部に送出されることはない。事実上、サーバーレスで動作するのが特徴だ。
「WebVM」と「CheerpX」は、デスクトップ(Google Chrome、Microsoft Edge、Firefox、Safari)とモバイル(Chrome、Safari)の両方で利用可能。デバイスに十分なメモリがあれば、あらゆるWebブラウザーと互換性があるとしている。