Repolode
copy

copy/v86

実機のOSを起動できる、実行時にマシンコードをWebAssemblyへ変換してブラウザー上で動作するx86 PCエミュレーター。

スター
23,609
フォーク
1,924
未解決の Issue
116
最終コミット
3 日前

これは何?

v86は、x86互換CPUと、VGAカード、PS/2キーボードおよびマウス、IDE・フロッピーコントローラー、PCIバス、NE2000・virtioネットワークデバイス、SoundBlaster 16サウンドカードなどのPCハードウェアをエミュレートします。ブラウザーのタブ内で実用的な性能を得るため、マシンコードを実行時にWebAssemblyモジュールへ変換します。

このプロジェクトは、古いOSやホビー向けOSをブラウザー上で動かすことを目的としています。動作が確認されているゲストOSとして、各種Linuxディストリビューション、FreeDOS、MS-DOS、Windows 95から2000、ReactOS、Haiku、FreeBSDがドキュメントに記載されています。Windows XP以降の一部バージョンも、特定の条件下でのみ動作します。ディスクイメージはURLから読み込めます。また、libv86.jsまたはv86 npm packageを使ってWebページに埋め込めます。

エミュレーターには、シリアルコンソールの操作、状態の保存・復元、複数インスタンス間のネットワーク接続を行うJavaScript APIがあります。RustとMakeを使ってローカルでビルドすることもでき、デバッグビルドと最適化ビルドを用意しています。

主な機能

  • 01おおむねPentium 4相当までのx86 CPUをSSE3対応でエミュレート
  • 02マシンコードを実行時にWebAssemblyへ変換
  • 03SVGAおよびBochs VBE拡張に対応したVGAと、PS/2キーボード・マウスを搭載
  • 04virtio、NE2000、ダイヤルアップモデムのネットワーク接続に対応
  • 05エミュレーターの状態を保存・復元
  • 06libv86.jsまたはnpm packageを使って埋め込み可能

ユースケース

  • Webページ上でWindows 95やMS-DOSなどのレトロOSを動かす
  • PCの仕組みやx86のブートプロセスを実演・解説する
  • ブラウザーベースのツールに、サンドボックス化されたLinuxまたはDOS環境を埋め込む
  • CPUエミュレーションや、WebAssemblyへの動的バイナリー変換を学ぶ

クイックスタート

  1. 1

    npm パッケージをインストールする

    npm install v86
  2. 2

    README の API の例に従い、V86 コンストラクターを使ってエミュレーターを Web ページに埋め込む

使う前に知っておきたいこと

  • 64 ビットのゲスト OS はサポートされていません。
  • マルチコアエミュレーションはサポートされていません。
  • ソースからビルドするには、Rust、clang、Java、Node.js などのツールが必要です。
  • Plan 9 や OS/2 など、一部の OS は動作しません。

トピック

よくある質問

v86 とは?
実機のOSを起動できる、実行時にマシンコードをWebAssemblyへ変換してブラウザー上で動作するx86 PCエミュレーター。 v86は、x86互換CPUと、VGAカード、PS/2キーボードおよびマウス、IDE・フロッピーコントローラー、PCIバス、NE2000・virtioネットワークデバイス、SoundBlaster 16サウンドカードなどのPCハードウェアをエミュレートします。ブラウザーのタブ内で実用的な性能を得るため、マシンコードを実行時にWebAssemblyモジュールへ変換します。
v86 は無料で使えますか?ライセンスは?
v86 は BSD-2-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
v86 は今もメンテナンスされていますか?
活発にメンテナンス中。v86 の最終コミットは 2026年10月18日 です。
v86 は何に使えますか?
Webページ上でWindows 95やMS-DOSなどのレトロOSを動かす PCの仕組みやx86のブートプロセスを実演・解説する ブラウザーベースのツールに、サンドボックス化されたLinuxまたはDOS環境を埋め込む CPUエミュレーションや、WebAssemblyへの動的バイナリー変換を学ぶ
v86 のインストール方法は?
npm パッケージをインストールする: npm install v86 README の API の例に従い、V86 コンストラクターを使ってエミュレーターを Web ページに埋め込む
v86 はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/copy/v86

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト