WebAssembly製のx86仮想マシンが登場、Webブラウザ上でLinuxが動作 26
ストーリー by nagazou
仮想マシン 部門より
仮想マシン 部門より
Leaning Technologiesは2月1日、Webブラウザーでx86仮想マシンを実行可能な「WebVM」を公開した。WebVMは主要なWebブラウザであれば、URLにアクセスするだけでWebブラウザ上にx86仮想マシンを動かせるようになる。WebVMではx86仮想マシンの上でLinux OSのDebianがバイナリが変更なしにそのまま動作しており、さまざまなコマンドも実行可能だとしている(Publickey、窓の杜)。
WebVMはLeaning Technologiesの製品群のデモとして作成されたものだという。WebVMでは、同社の「CheerpX」と呼ばれるWebAssembly製のx86マシンの仮想化技術をコアとして使用しており、CheerpXはx86のバイナリコードをWebAssemblyに変換して実行するJIT(Just In Compiler)機能を備えているという。
WebVMはLeaning Technologiesの製品群のデモとして作成されたものだという。WebVMでは、同社の「CheerpX」と呼ばれるWebAssembly製のx86マシンの仮想化技術をコアとして使用しており、CheerpXはx86のバイナリコードをWebAssemblyに変換して実行するJIT(Just In Compiler)機能を備えているという。
JSLinux (スコア:1)
https://bellard.org/jslinux/index.html [bellard.org]
こっちもリリース当初はJavaScriptだったけど今のはWASMになってるね。
VGAもサポートしてるのでXも動くしWindowsも動く。
最近はJavaScript/WASMのワークエリアを1ページあたりでメモリ4GB使えるようなので、Win2Kとかだと余るぐらいのメモリ持たせられるな。
PCエミュレータとしては、こっちもあるが、こちらもいつのまにかWASMになってるな。
http://copy.sh/v86/ [copy.sh]
Re: (スコア:0)
そうそう、確かスラドでも過去にタレコまれていたそれが真っ先に思いついて、WASMになったのが新しいのか? と思ったらそれも達成済みだったのか。ではWebVMは何が新しいの?
Re: (スコア:0)
wasmはもとからメモリ4GBまで使えるよ。Memory64っていうのが今作業中で4GB超えはまだ無理。
M1でもx86のシミュレートができるなら (スコア:1)
-- やさいはけんこうにいちば〜ん!
Re: (スコア:0)
node.jsもいらんよ。
nginxでもいいし、セキュリティの制限を個別に設定すれば適当にファイル置いてロードするためのhtmlファイルかけばサーバーとかも無しに動く。
ついに (スコア:0)
WebBoyがWebブラウザ上で動作するWebブラウザとして復活するのか
使い道が思いつかない (スコア:0)
凄いのはわかるんだけど、実際に何かに利用する道が思いつかない
簡単な検証用環境…にしてもそれならコンテナでいいし
Re:使い道が思いつかない (スコア:2, 興味深い)
このWebVMは、まだ実装がすすんでないので、GUIが動かんけどv86とか別の仮想マシンだとWindowsも動くのでGUI含めたデモ環境が作れる。
OSのライセンス管理の手段とかは考える必要があるが、ソフトの体験版をクライアントにインストールさせずに提供できるから、体験版をクラックされるとか、クライアント環境を汚すとかも考えなくていい。
v86だとandroid x86も動いてるんで、Windowsに限らずAndroidのゲームもインスタント実行できてるよ。
v86のほうは起動時にストレージイメージをダウンロードするつくりなので、状態保存が出来んのだけど。
Re: (スコア:0)
どこまでできるかによりますね
起動自体はIndexedDBに永続保存できるってことだけど
ネットワークブートや
ローカルやネットワーク越しのストレージをマウントできるのか
によって脅威度が変わってくるかと
出来なければ対処のしようはありそうだけど
これができると
テキストコードだけでワーム入りOSを読ませて起動させられる上
仕組み的にホストでのウイルススキャンをすり抜けそう
外部と繋げないスタンドアローンだとしても
そのブラウザとはつながるだろうから
色んな情報をIndexedDBに溜め込ませて悪用するかんじかな
インスタントOSとしての価値よりも
危険度のほうが大きい技術な気がしますね
少なくともIndexedDB内部へのスキャンは必須になります
Re: (スコア:0)
WASMはJavaScriptより制限が厳しいから、今のJavaScript以上の脅威にはならないよ。
ブラウザのバグで何か抜け道が出来る可能性はあるけど、それはJavaScriptも同じ。
どんだけ頑張ってもウェブページ内の世界だから、ローカルのファイルアクセスは JavaScript同様ユーザー操作が必須。ネットワークも同様。
ユーザー許可のもとに WebUSBでUSBネットワークアダプタつければ、生のTCP/IPも使えるかもしれないが、そのあたりも含めて他のJavaScript/WASMで作ってる仮想PC実装と比べて何も変わらない。
Re: (スコア:0)
WASMはJavaScriptより制限が厳しいから、今のJavaScript以上の脅威にはならないよ。
んーてことはHTMLやスクリプトソース状は問題なくとも
WebVM内でCoinhive的なものも動かしちゃえる
更に画像や動画に偽装したVMイメージにして読み込んどくかんじかな
こんなんやられたら発見が難しくなりそう
# まぁサードパーティドメイン弾くアドオン入れてりゃほぼ大丈夫だろうけど
Re: (スコア:0)
ゲーム提供してますっていう裏で Coinhiveみたいなことするのは可能ですね。
WebVMとか関係なく、WASMだとバイナリコードなので解析は手間でしょう。
そのあたりは難読化したJavaScriptも、そのへんは変わらないと思うけど。
> 更に画像や動画に偽装したVMイメージにして読み込んどくかんじかな
これは無理かな。
WASMとしてリクエストして受け取らないと実行できない。
このあたりもJavaScriptと同じですが広告の中に埋込んで、何かやらせえるってのは出来そうですね。
WebVMになったからといって、出来ることが増えるわけでも、何かが簡単になるわけでもない。どちらかというとWebVMでやろうとしたら手間が増える。
Re: (スコア:0)
ブラウザ上でいい感じにDOSBox動かすことができるようになるじゃないですか。
つまり古いPCゲームが永遠になるということです。
Re: (スコア:0)
ブラウザ上でいい感じにDOSBox動かすことができるようになるじゃないですか。
とおもったらDDoSBoxとして活用されていたりして
Re: (スコア:0)
ん?archives.orgで何年も前からDOSBoxで動く
プレイアブルなDOSゲームアーカイブ公開してるんだが。
https://archive.org/details/softwarelibrary_msdos_games [archive.org]
こいつはDOSBoxをトランスレータでJavaScript化した奴で動いてるらしいけど、
「いい感じ」じゃなかったってことか?
Re: (スコア:0)
これとか見るにかなりいい感じで動いてますね(技術的には...
https://archive.org/details/msdos_Prince_of_Persia_1990 [archive.org]
# 剣ってどうやって出すんだっけ...?
Re: (スコア:0)
機械語に依存しないという点ではより互換性の維持が容易になるかもしれない。
インタプリタとコンパイラの維持に苦労するだけか…?
Re: (スコア:0)
AS400「いつまでエミュ利用されるの。。コロシテ・・・」
Re: (スコア:0)
「何が」できるかは大した問題じゃない。
「できる」ことが大事なんだ。
Re: (スコア:0)
PC-ATではなくPC98互換なら需要ある気がします。
Re: (スコア:0)
仮想環境上のブラウザでさらに仮想環境を起動して…
何回入れ子にしたらクラッシュするかを見るベンチマークに使えるかな?
互換性問題が壊滅? (スコア:0)
古いWindows+古いIEでしか動かないコンテンツように、
Webブラウザでx86仮想マシン・WindowsXP・IE・ActiveXを動かせば、
最新のOS/ブラウザでレガシーシステムが利用できるのでは?
Re: (スコア:0)
古いWindows+古いIEでしか動かないコンテンツように、
Webブラウザでx86仮想マシン・WindowsXP・IE・ActiveXを動かせば、
最新のOS/ブラウザでレガシーシステムが利用できるのでは?
官公庁&自治体「それだ!」
# アクセスするとギガ減る&回線パンク
Re: (スコア:0)
この場合 Windows のライセンス料はどう払うんだろう...
Re: (スコア:0)
マジレスするとこのVMからのリクエストだろうが、ブラウザを経由する以上CORSの制限を受けるのでアクセスできない。
と思ったが、その該当のサイト開いた状態でVMをサイドロードするようにすればいける・・のかもしれない。
Re: (スコア:0)
配置したサーバーでproxyになるAPIでも作っとけば大丈夫。
古のi-modeアプリも、ダウンロードしたページ以外には通信できなかった(出来るのはtrustedアプリだけ)が、i-modeアプリで作ったブラウザやメーラアプリは、そういうプロクシ機能をWEBページ側にCGIで置いてた。