Bochs(ボックス)は、PC/AT互換機のエミュレータである。2000年3月以降、GNU LGPLに基づくオープンソースとなっている。

特徴 BIOS等を除く大部分は標準C++によって実装されており、移植性に優れる。x86プロセッサの命令実行をエミュレートするために、x86以外のコンピュータでもPC/AT互換機エミュレーションを実現できる。そのため、Linux、FreeBSD、macOS、Windows用など非x86環境を含む様々なプラットフォーム用のバージョンが存在している。

QEMUも同様のエミュレーション手法を採用しており、どちらも実行環境およびエミュレーション対象を柔軟に選択できるためOS開発や動作テストには有用である。その反面、VMwareやXenなどユーザモード命令をそのままプロセッサに実行させる方式に比べると実行速度が劣るため、仮想マシン環境をサービスとして利用するには不向きである。

エミュレートするハードウェア CPU 標準構成では、インテル Pentium III 相当のユニプロセッサである。コンパイルオプションを変更することで、386、486、Pentium、Pentium II、または Pentium 4 相当にしたり、8プロセッサまでのマルチプロセッサ環境にすることが可能である。

その他にも次のようなチップセット、インターフェース、周辺機器のエミュレーションをサポートする。 Class Device ビデオカード Cirrus Logic CL-GD5430 ISA Cirrus Logic CL-GD5446 PCI 3dfx Interactive Voodoo Banshee / Voodoo3 サウンドカード Sound Blaster16 (ISA、 非プラグアンドプレイ)、 ES1370 (PCI)、 Basic Sound Device NE2000 (ISA/PCI) Ethernet or Intel(R) 82540EM Gigabit Ethernet adapter (PCI) ハードディスクドライブIDE CD-ROM/DVD-ROMドライブ ATAPI フロッピーディスクドライブ チップセット Intel 430FX PCI、 Intel 440FX PCI and Intel 440BX AGP ノースブリッジ、 PIIX3 and PIIX4 サウスブリッジ USB Root hub、マウス(オプション)、タブレット、キーパッド、ディスク Enhanced BIOS or SeaBIOS ElTorito、 EDD、 APM、 PCIBIOS、 PCI interrupt routing table、 プラグアンドプレイ、 ACPI、 SMM、 MPS and VBE.

References

外部リンク bochs: The Open Source IA-32 Emulation Project (Home Page)