Bochsについて



LINUX、UNIX、Windows等によるx86エミュレータである
Bochsについてのページです。
取り敢えず色々なOSの動作確認、人柱を目的としたいと思います。
ネタがあったら是非Kapperに御報告をお願い致します。

Bochsは基本的にはx86の忠実なエミュレーションを目的として、
OSに依存しない汎用的なソフトの利用がメインとなっています。

後、Linuxザウルス、PSP、Netwalker上でもBochsが動作しました。
X/Qt上でWindows95も起動の確認をしました。
これから再度確認をして動作報告をしたいと思います。



動作確認のとれたOS

理論的にはBochsはx86のエミュレーションを行っているので、
各種OSは大体動作するはずですが、残念ながら動かないOSも幾つかあります。
原因は幾つかありますが、日本語関連とVGA関連が大きな問題です。
版権フリーのOSならBochsのサイトにイメージファイルがありますので、
特別な設定なしで簡単に起動が可能です。
ぜひ試してみてください。


●Windows95

最も主流であるWindows95です。
昔はemm386、日本語ドライバ関連の問題がありましたが、
現在は通常のPCと同じようにインストール出来ます。
使用上は特に問題はありませんが、ディスプレイドライバが無い為に、
表示その他は限られる事になります。

●Linux

本家のページにあるディスクイメージを使って見ました。
CUIはもちろんDebian3.0のイメージでXが動作しました。
多少重いですが、486相当の動作速度でも普通に起動するのは結構驚きました。
CDブートも当然可能なので、knoppix等の最新のディストリも使用可能です。
Xは相当重いのと、メモリを64〜128M以上とかなり食うので、
起動時の設定には注意が必要です。

●DOS

MSDOS、FREEDOS双方の環境で動作は可能です。
特別な問題は無く動作もそれなりに快適です。

●Osask

Osaskも公式に動作確認されています。
Osaskはイメージファイルも用意されており、Bochs上での開発も可能です。
此方も特別な問題は無く動作もそれなりに快適です。

●Bochsディスクイメージについて

Bochs用ディスクイメージサイトを以下に紹介します。

・Bochsの公式イメージファイル
Bochsの公式イメージファイルのリンクは以下にあります。
2005年より更新が止まっておりますが、試験利用には問題ないはず。
Bochs公式イメージファイル

・MonaOS
2ch発のFreeOSとして名高いMonaOSも動作します。
Windows版にはQemuが同梱されているのでBochsで使う人は少ないかもしれません。
軽量で各種アプリ、エミュ等も動作するBochs向けのOS。
日々進化しており、開発もがんがん進んでいるのが特徴。
http://wiki.monaos.org/pukiwiki.php

・ReactOS
WindowsNT互換を目指すのがReactOS。
これもWindows版にはQemuが同梱。
非常にOSが重量級でまだ開発版なのが運用上の課題。
まだまだ運用に課題はあるが、試験目的には問題なし。
日々進化しており、開発もがんがん進んでいるのが特徴。
http://www.reactos.org/ja/index.html


bochsrc.txtの設定と動作速度

●ipsについて

Bochsの動作速度は、このipsの設定で決まります。
ipsは1秒間における計算回数を表していて、
ipsの値が大きくなるとCPUの動作速度(クロック)が大きくなります。
その反面負荷が大きくなりフレーム落ち、処理落ちします。
Windows95上でのHDBench2.6.0での大体の目安が
ips:1000000=486 10MHz相当
ips:3000000=486 25MHz相当
ips:5000000=486 40MHz相当
ips:9000000=486 66MHz相当
当方の環境ではPV500MHzでips3000000位
Athron750MHzでips500000位が実機に近い挙動を示しています。

公式サイトでのIPSの例を参考までに下記に転載します。
VerによるスピードUPの変遷が見られます。
Core2Duoで大体Pen2 300〜400MHz相当でしょうか。

Table 4-1. Example IPS Settings

Bochs  Speed   Machine/Compiler             Typical IPS
2.3.7  3.2Ghz  Intel Core 2 Q9770 with WinXP/g++ 3.4  50 to 55 MIPS
2.3.7  2.6Ghz  Intel Core 2 Duo with WinXP/g++ 3.4   38 to 43 MIPS
2.2.6  2.6Ghz  Intel Core 2 Duo with WinXP/g++ 3.4   21 to 25 MIPS
2.2.6  2.1Ghz  Athlon XP with Linux 2.6/g++ 3.4     12 to 15 MIPS
2.0.1  1.6Ghz  Intel P4 with Win2000/g++ 3.3        5 to 7 MIPS

●スクロール、画面切り替えについて
Bochsでは完全なエミュレーションを目標にしているので
スクロール、画面切り替えを一つ一つエミュレートしています。
その為、シューティングゲーム等切り替えが非常に多いソフトでは
仮にDOSアプリの様に軽量であっても処理が複雑になり処理落ちしてしまいます。
残念ながらそれらのソフトを利用する場合は他のエミュレーターを用いた方が良さそうです。

●Linux Zaurus上でBochs、Win95を動かす方法について
Linux Zaurus上でも動作させて見ました。
興味のある方は是非参考にして見て下さい。
Linux Zaurus上でBochs、Win95を動かす方法について

●Bochsrcについて

Bochsrcの解説は長くなってしまいましたので別のページで行います。
今の所はBochsのページの訳のみです。
Bochsrcについて
Bochsの詳しい解説、公式マニュアルは以下にあります。
Bochs User Manual

●Bochsユーザーマニュアル(公式)
Bochsの公式マニュアルは下記にあります。
実は大抵のトラブル対策や設定事項が記されており、Kapperもよく見ます。
英語版の上、HPにリンクが見つかりにくく日本人には全くなじみがないのが残念です。
日本語化するのは大変そうなので、Kapperはここから結構抜粋しております。
良ければ是非参照願います。

Bochs User Manual


●Bochsの更新履歴について

Bochsはメジャーリリースの更新間隔が長い上に
改善効果が目に見えて分かるわけではないので
いつ何がどう変わったのかユーザーサイドに殆ど伝わりません。
それで更新情報のChangeLogが公開されていますので、
下記のリンク先にて随時更新情報を確認する事ができます。

・メジャーアップデート記録(〜2.4.2)
http://bochs.cvs.sourceforge.net/bochs/bochs/CHANGES?view=markup&content-type=text/vnd.viewcvs-markup&revision=REL_2_4_2_FINAL

・CVS更新記録
http://bochs.cvs.sourceforge.net/bochs/bochs/CHANGES?view=log
http://sourceforge.net/mailarchive/forum.php?forum_name=bochs-cvs

●Bochs便利ツールについて

・DiskExplorer
Bochsの*.imgファイルをマウントし、
Windows上でエクスプローラ形式でファイルのやり取りが出来ます。
エミュレーター上でファイルのやりとりは大変なので凄く便利です。
VMWare方式で確認しました。
是非試して見て下さい。
http://hp.vector.co.jp/authors/VA013937/editdisk/index.html

・Bochs VBE Display Drivers for Windows NT/2000
Bochsで高解像度する為のVGAドライバです。
通常ですと640×400、16色設定になりますが、
〜1024x768、256色まで設定できます。
http://dhenriq.en.eresmas.com/

またVBEドライバのWindows9x版はこちらにあります。
内容は英語版HPを参照して下さい。(ただしファイルリンク切れてます)
http://navozhdeniye.narod.ru/vbe9x.htm

実際のファイルは下記ロシア語版HPにあります。
入手はこちらから。是非試して見て下さい。
http://navozhdeniye.narod.ru/vbe9xru.htm


・Cirrus Logic GD 5446 VGAドライバー
BochsではBIOSレベルでCirrus Logic GD 5446に対応する様になり、
各種OSでこのドライバを使い高解像度表示できる様になりました。
おそらく1024×768、256色まで対応できるはずです。
こちらは特にWindows9x系〜で動作する高解像度ドライバです。
Windows98以降の場合はOS標準でドライバが付いているので
そちらを流用して下さい。
Windows95の場合は下記サイトから落としてくると便利です。

日立の昔のPCで使われていたCirrusのドライバ(Win95)
http://prius.hitachi.co.jp/go/support/verup/tool/5446_95d.htm

ただこのドライバを組み込んだだけでは使えません。
bocherc(設定ファイル)に下記の内容を追記しCirrusBIOSを組み込んで下さい。
元あった設定はコメントアウトしておくと便利です。

# Enable CL-GD5446 PCI
vga: extension=cirrus
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest-cirrus
i440fxsupport: enabled=1, slot1=cirrus

情報元サイト
Notes about Cirrus SVGA usage
Notes about VESA usage

またOSがUbuntu(Linux)の場合はこちらで。
若干設定が違います。
Netwalkerとかその他Linux端末で使うときは要注意。

romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/vgabios/vgabios.cirrus.bin
display_library: svga

情報元サイト
Using bochs to install another Ubuntu



●Windows95インストール時のざっくり記録

NetwalkerにWindows95を入れた時の記録から転載です。
ブログからのコピペなので中身の薄さはご了承願います。

○Windows95準備
今回はPC環境でのBochsでインストール、セットアップし
Ubuntu環境でイメージを流用という形を取っております。
インストールの際に用意する物は

・DOS、FDDブートイメージ(FreeDOS)
・Windows95 CDROM (98、NT〜でも可)
bochs本体

を用意して下さい。
特にインストールに必要なWindows95 CDROMは各自入手下さい。
持っていない人はヤフオクかハードオフのジャンクCDコーナーにて入手が便利です。

○BochsとWindows95インストール
まずインストールに必要なHDDイメージを作成します。
Bochsの本体の中にありますbximageファイルを実行しますと作れます。
その際にややこしい設定が出てきますがHDD容量には気をつけて下さい。他はそのままでOKです。
(〜Windows95のFAT16の場合、HDDは2GBまで。Windows95 OSR2以降の場合、FAT32でフォーマットする方が良いです。)
次にWindows95のCDをイメージ化させます。
KapperはImgBurnというフリーウェアを使いました。
ブートFDDは本来DOSでCDをマウントする為に、MSCDEX.exeを組み込む必要がある
のですが、面倒なので普通Win98やMEの起動ディスクをイメージ化し流用します。
今は残念ながらWin98、MEのOS環境がKapperの手元に無い為、入手困難となってしまいました。
その為、FreeDOSのイメージファイルを頂き使用しております。
全てのファイルを準備したらBochsと同じフォルダにコピーし
Bochs.exeを実行させます。最新の2.4.1以降ならばGUIが更新され設定が手軽で便利です。
まずFDD、HDD、CDROMの割付、ブート設定を最低限行った後、
細かい所を個別に設定し、bochsrcとして保存します(重要)。
詳細は割愛しますが、ディスクイメージをATAに割り振り、BootをFDDにして下さい。
それで実行。FDDが無事起動しましたら、
CドライブをFdisk、Format、Sysの順で実行します。
その後、D:のWindows95のCDイメージよりsetup.exeを実行。
インストール開始します。(詳細は割愛)
無事インストールが完了しますとwin95が立ち上がるはずです。



●Bochsの長所、短所

・Bochsの長所
Bochsの長所はフリーで移植性が高く、様々な環境で使える所でしょう。
PC、Mac、LinuxはもちろんPSP、iPhone、Zaurus、CE、Netwalkerで使える移植性はNo.1です。
また多数のOSにも対応しているので幅広い活用が可能です。
テスト、実験目的には最適です。

・Bochsの短所
Bochsの短所はPC/ATの忠実な互換性からくる動作速度の遅さ、ハードウェアの多様性のなさです。
エミュレーション速度が遅いのは周知ですが、VGAのドライバがソフト依存であり、
Cirrus以上の高解像度、グラフィック能力は望めません。
ビデオカードを用いたDD、D3Dも対応していないので東方系のゲームすら動作させる事は出来ません。
市販のハード、ドライバがGNUで公開されれば移植できるんでしょうが。
後、設定がテキストベースな上、結構面倒でPC/ATに詳しくない方は
使いこなすまでかなり大変かと思います。

Bochsリンク集

●Bochs ホームページ
http://bochs.sourceforge.net/

●がじぇっとぼっくす
http://bauxite.sakura.ne.jp/software/bochs/

●2chlinux.org
http://www.2chlinux.org/pukiwiki.php

●DM2 PC on bochs
http://kapper1224.sakura.ne.jp/danmasu/Contrib_01/DM2_Contrib_DM2_PC_on_bochs.html

●Bochs x86 v1 + Linux + Win95 for Xbox !!
http://www.xbox100.com/forums/showthread.php?t=380

●2chlinux.org
http://www.2chlinux.org/pukiwiki.php

●Mc.N Homepage SDK
http://mcn.oops.jp/dev/vm/index.htm

●OS製作やOS/プログラミングに関する話題を収集するWiki
http://mcn.oops.jp/dev/vm/index.htm


現在鋭意作成中!!!

BACK
HOME