- Webブラウザで Linuxやその他のOS を直接実行できる JSLinux が、新たに x86_64アーキテクチャ をサポート
- AVX2、AVX-512、APXのサポートを新たに追加し、現在APXをサポートする唯一の公開x86フルシステムエミュレーター
- Alpine Linux 3.23.2 をベースにし、AVX-512 と Intel APX 命令拡張を含む
- 既存の x86、RISC-V ベースのシステムに加えて、64ビット環境 での実行が可能に
- 各システムは コンソールまたはX Windowインターフェース を提供し、一部は VFsync によるファイルアクセスをサポート
- ブラウザベースの仮想化技術の進展により、OSの実験やテスト環境の構築 がさらに簡単に
JSLinux概要
- JSLinux は、ブラウザ内で Linuxやその他のOS を実行できるWebベースのエミュレーター
- ユーザーは別途インストール不要で、Webページ上で仮想マシンを実行可能
- さまざまなCPUアーキテクチャとOS構成を選択可能
サポートシステム一覧
- x86_64: Alpine Linux 3.23.2のコンソール版を提供
- x86: Alpine Linux 3.12.0、Windows 2000、FreeDOSなど多様なシステムをサポート
- riscv64: Buildroot LinuxとFedora 33をサポート
- 各システムには起動リンクがあり、TEMU設定ファイル を通じて構成可能
- 一部のシステムは VFsync を通じて外部ファイルシステムと連携可能
- すべての構成は Fabrice Bellard によって開発・保守されている
3件のコメント
作者のFabrice Bellardは、関連する記事が出るたびに称賛されるべきです(72年生まれ)
1987年、15歳でアセンブリ製の実行圧縮ツール LZEXE を開発
2000年、FFMPEG を開発し、同年には 4KB 未満の C コンパイラを開発して IOCCC で優勝
2005年、QEMU を発表
2011年、JSLinux を公開し、現在まで発展させ続けている
「大金を稼いで引退してください」
64ビットx86のサポートは1月に公開されており、今回の更新では AVX2、AVX-512、APX のサポートが追加されています。
Hacker Newsのコメント
自分がいちばんやりたいのは、WASM Linuxエンジンを使ってブラウザ内で仮想OSを直接動かし、コーディングエージェントを実行すること
Claude CodeやCodex CLIのようにBashやLinuxツールを扱えるエージェントとつなげたら本当に面白そう
ブラウザは最高のサンドボックス環境だと思う。WebAssembly Linux上でエージェントループを回せるならすごいトリックになりそう
以前にv86デモで試したことはあるけど、まだエージェント連携までは行っていない。テキスト入力欄からLinuxコマンドを送れる
ただ、性能が少し足りなくて、そこまで深くは掘っていない
フルスタックのデモはvitedemo.browserpod.io、以前の作業はwebvm.ioで見られる
面白かったので、M1 Mac MiniのChromeでx86_64、x86、riscv64環境それぞれについてPrimesベンチマークを回してみた
RISC-Vはx86よりもエミュレーション効率がずっと良かった — ビルドも速く、コードも小さく、実行も速い
ただしgccのバージョンがそれぞれ違うので(15.2.0 vs 9.3.0 vs 7.3.0)、完全に公平な比較ではない
参考コード
オフトピックだけど、Windows 2000 UIをまた見るとすごく懐かしい。最近のUIは本当にひどいと感じる
残念ながら、64ビットx86のエミュレーションレイヤーのソースコードやビルド設定は公開されていない
もう少しオープンソース寄りの版が欲しいならcontainer2wasmが参考になる
JSLinuxがまだインタープリタなのか、それとも今はJITコンパイルをしているのか気になる
あるいはJSエンジン側のJITがあまりに優秀で、その区別自体に意味がなくなったのかもしれない
DNSに問題があるように見える。自分が何か見落としているのか気になる
AVX512までサポートしているのは驚き。QEMUにもぜひ追加してみたい
ちなみにAPX関連のパッチはこちらにある
Fabrice Bellardの仕事にはいつも驚かされる
x86_64対応によって、ブラウザで最新のLinuxディストリビューションを動かせる可能性が開けた
先月、x86_64 JSLinuxでTempleOSを動かせるように修正した — ring0.holyc.xyz
自分のデモより速く動く。JITもないのに本当に魔法みたい
Chromeでx86_64 Alpine JSLinuxイメージを4時間使ってみた
gitでコードを取ってきて、大きなパッケージをビルドして、テストまで回したが、完全に安定していた
ネイティブより50倍遅いが、ブラウザ内でここまで堅牢なVMが動くのは本当に驚き