VAIO de Mac
Basilisk II編

Back to Basilisk's Index

Basilisk II

「Basilisk IIとは、
フリーで手軽な68K Macのエミュレータ
を創る試みの一つである。」
from ReadMe



☆Basilisk II 使用日記☆

2001年1月17日

長いこと、ご無沙汰である。
Basilisk IIの開発は、まる1年以上アップデートがなく、ほとんどver0.8でフリーズ状態である。
(本家のページは以下を参照)
http://www.uni-mainz.de/~bauec002/B2Main.html

しかし、最近は Gwenol Beauchesne氏のページにて、Basilisk IIにJIT(Just-in-Time)コンパイラを組み込む取り組みがなされている。
http://gwenole.beauchesne.online.fr/basilisk2/

JIT、つまりJust-In-Timeコンパイラは、Javaではお馴染だが、そのプラットホーム(Basilisk IIではLinux)では直接動かないプログラム(MacOSネイティブ)を実行前に一旦そのプラットホームで動作可能なプログラムに変換し、その後実行するという方式をとる。
従ってこれまで、ちまちま逐次変換していた方式に比べ、実行速度の点で有利となる。
一方で、コンパイル作業が入るため、起動に時間がかかる。

JavaではJITは動作高速化の要であり、特にIBMのJITは速いとの評判だ。
それにうかうかと騙された(?)私は、JDK1.3を自分のLinuxに導入するのにSUNの本家ではなく、IBMのJDKを利用した。
その結果なのかどうか知らないが、明らかにスピードアップしている(気がする)。
まあ、SUNのJDK1.3も速くなったと聞いているので、判断を下すのは早いだろう。
しかし、JITの効果はかなりある。

この経験を考えると、Basilisk IIのコアのエミュレータ部分、つまりUAEのJITコンパイラ化での高速化に期待がかかって当たり前ではないか?
Basilisk IIは驚異的なほどよくできたエミュレータであるが、いかんせんスピードの点で不満があった。
このJIT BasiliskIIで、この問題点がどう改善されるか非常に興味のあるところである。

このプロジェクトが公表された当時(10月くらいか)、そそくさとダウンロードしてみてコンパイルしたのだった。
しかし、JITを組み込んでコンパイルしたBasilisk IIは起動途中でcoreを吐いて落ちてしまい、一度も起動できたことがなかった。
この状態は2000年10月から12月まで続いた。
ホームページではバイナリでも配布されていたが、それも私のVAIO505G上ではcoreを吐いて落ちるという状況が続いていた。

しかし、ごく最近のバージョン(2001年1月14日版)を利用したところ、起動に成功したのでいくつか気の付いたところを述べてみたい。
インストール
ホームページからJITを組み込んだバイナリがダウンロードできる。
Vine2.0は、Redhat系列なのでrpmをダウンロードすればよい。
BasiliskII-0.8.JIT-3.i386.rpm
$ su -
# rpm -ivh BasiliskII-0.8.JIT-3.i386.rpm

初期設定
これまでのBasilisk IIのものがそのまま使える。
ただし、JIT関連で新しく付け加えられるパラメータが存在する。
jitcashsize 256
jitwantcmov false
jitfpu true
jitatraps false
ただし、これらのパラメータは本来のBasilisk IIが持っているGUIのセッティングからは変更することができないので、一度目の起動はデフォルトのみの起動、以後これらのパラメータは~/.basilisk_ii_prefsを直接変更する必要がある。

起動
1回目の起動、非常に時間がかかった。
通常の3倍程度は覚悟する必要がある。
ただし、後述するようにキャッシュを増やすことで起動速度は全面的に解決。
そのほかの設定は、以前のBasilisk IIのものとまったく同じで起動している。
起動という意味では問題なかった。

速度
遅い。
しかし、これは単純にJITコンパイルに用いられるキャッシュ不足であることが判明。
一旦終了させて、~/.basilisk_ii_prefsを変更。
キャッシュはデフォルトの256から1024、さらに6144まで変更させてみたが、大きい方が動作速度は上がるようだ。
6144まで上げると、ほぼJIT無しのものとスピード的に変らなくなった。
さらに16384まで上げて使用することにした。

動作と安定性

jitchace 16384
Mac OS 7.6(J)
Pentium MMX 200MHz

やはり新しいということもあって、いくつかのアプリケーション起動中にこけたり、フリーズしたりした。
若干の不安定さが残っているようだ。
あと、FPUのルーチンがうまくない。
グラフ作成ソフトの軸がうまく表示されないのは、FPUのエミュレーションがうまくいっていない証拠である。
しかし、Speedmaterという古いベンチマークソフトで、以前のBasilisk IIと比較するとかなり良くなっているように見える。
ベンチマークは、そのプログラムの性質上、エミュレーション上ではあまり意味をなさないとも言われているが、幾つかの値を並べてみる。
Basilisk II(no JIT)Basilisk II(JIT)Fusion-PC
CPU 0.37 0.930.96
DISK2.212.472.47
MATH5.6732.0114.22
Math Bench. Ave.0.473.011.04
FPU Ave.0.282.890.71
Color Ave.0.340.490.74


ここで、Quadra 700(68040,20MHz)相当が1.0である。
これを見ると、JIT無しBasilisk IIに比べ、JITの効果がすさまじいことが分かる。
ほぼCPUで2.5倍、数値計算で6倍、FPUに至っては10倍である。
一方で、Color Ave.つまり画面描画速度はたいして良くなっていないので、体感速度はあまり変らない。

総論
JITは、キャッシュが命。
あと、実装されつつあるJIT版FPUの改良が進めば、安定性と利用価値は増すものと思われる。
しかし、相変わらず画面描画速度がネックになったままであり、体感速度は変化がない。

まだ開発段階とはいえ、良く動いていると思う。
ただし、まだ全面移行できるほどではない。
もう少し使い込んでみてから判断してみる必要があろう。



2000年8月14日

ご無沙汰。
BasiliskIIの最新スナップショットは(2000/7/13)版である。
Mac OSは相変わらす漢字Talk7.5.5 + OpenTransport1.2である。
最新版スナップショットでの変化は、ビデオ周りと初期設定周りの改良がある。

さて、ベースのLinuxはVine Linux 1.1から2.0へバージョンアップを遂げた。その後も特に問題なく使用していた、つもりだった。
ところが、東京在住の佐々木さんからメールで、「Vine Linux 2.0では、Basilisk II for LinuxでEtherNetを利用する方法の一つであるSheep_netデバイスのコンパイルは出来るが、組み込み(insmod)でエラーになる」という指摘をいただいた。
「ただし、RedHat6.1JやKondara1.1では、そんな症状はでない」とも。
そう言われると、2.0にバージョンアップしてからEthernetは試していなかった。
さっそく試してみると、確かにエラー(unresolved symbol)が返ってきて、組み込みに失敗する。
いろいろ調べた結果、Basilisk側の問題ではなく、Linux側の問題らしいということで、Linuxメーリングリストで当ると回避方法がわかったので以下に記す。

症状:
#insmod sheep_net.o とコマンドからモジュールを組み込もうとすると、unsolved symbolとか言われてエラーが発生し、組み込みに失敗する。

回避方法:
./configureしたときに作成されるsheep_netのMakefileに問題がある。
具体的には、通常のやり方で./configureを行ったあと、
BasiliskII-0.8/src/Unix/Linux/NetDriver/にある
Makefile
をいじることで解決できる。

このMakefileの中で
CFLAGS = -O2 -Wall -fno-builtin -D__KERNEL__ -DMODULE
の行の末尾に以下を追加してやる。
-DMODVERSIONS -include /usr/src/linux-2.2.14/include/linux/modversions.h

あと、
BasiliskII-0.8/src/Unix/
に移動して、後はREADME通り、
# make modules
# cd Linux/NetDriver
# make dev (必要なら)
# /sbin/insmod sheep_net.o
を行えば、よい。




2000年4月26日
なかなか更新する暇のない今日このごろ。
BasiliskIIは、なかなかに快調である。
BasiliskIIの最新スナップショットは(2000/03/14)版である。
仮想マックOSとして漢字Talk7.5.5+OpenTransport1.2を使用している。

さて、今まで手持ちのQuadra700のROMイメージを利用してきたが、もう一つの手持ちの機種LC475のROMイメージを利用するようになった。
Fusion-PCの時はQuadra700の方が安定性としては良かった記憶があるのだが、LC475も問題ない。
しかも、こちらを利用することでEthernetの利用も一発で可能になったのだ。
今のところAppleTalkでのプリントアウト、他のマックのファイル共有、さらにはきっちりIPアドレス(固定)を割り当ててみたところTelnet端末としても動くことを確認した。
ネットサーフィンは重すぎて未確認。
そんなものはLinuxでやればよろしい。

というのも、BasiliskIIのスピードを殺しているのは画面描画のとろさである。
X上でWindowとしてBasiliskIIを立ち上げると、見た目面白いけど遅すぎる。
そこで、スピードアップを図るためにFull Screenモードで起動するわけだが、この時Ctrl+TABで、BasiliskIIをサスペンドし制御をLinuxへ移せるのだ。
当然Xサーバーやウィンドウマネージャは走っている。
ここでしたい放題した後、おもむろにBasiliskIIウィンドウ上でスペースバーをたたくと、あら不思議、何事もなかったようにBasiliskIIの仮想マックへと戻ってこれるのである。
これは、前回に述べたLinuxのディレクトリを直接マウントするのと同等に便利であり、Fusion-PCなんぞではできない芸当である。

というわけで、好きなときにマックを呼び出せるわけで、なかなかに快適なのである。

あとは、もう少し速くエミュレートしてくれればなぁ。



2000年2月24日
再びこの手の話題から遠ざかってはや2ヶ月以上。
Basilisk IIもついに0.8が安定版としてリリースされた。
さて、最近のアップデートで気になってたのはやはり、Basilisk II上からLinuxのディレクトリに直接アクセスできるようになったことだ。
このLinuxのディレクトリは仮想マック上では「Unix」というボリュームになってマウントされる。
これは、たいへん便利である。
Fusion-PCでも「ネットワーク」という設定を使えばDos領域に読み書きできたが、こっちのほうが数段使いでがある。
11月頭にでたSnap Shot版で初登場し、早速試したが、MacOS->Linuxへのファイル移動はうまくいったものの、Linux->MacOSには失敗していた。
しかし、12月のSnap Shot版で完全にBug Fixされ、自由にファイルをやり取りできるようになった。

時間が許せば、通信関係を押さえられるようになりたいのだが、今だEthernet通信には失敗している。
使用するROM Imageにも左右されるとのこと、何度か仮想マックでネットワーク設定中に強制停止(Ctrl+Alt+ESC)を行ってしまった。

さて、今回の新しい試みとして、Basilisk II上でのシステム構築にチャレンジした。
といっても、フリーの漢字Talk7.5.3をインストールしただけだ。
元々、Basilisk IIでは、Fusion-PC時代に構築したMacOS8.1で動いていた。
しかし、実際MacOS8.1であることの必要性はあまり感じていなかった。
それにどうしてもBasilisk IIでは重くなりがちだった。
で、しばらく前に漢字Talk7.5.3がフリーになったので、敢えて戻ることにした。
フリーのエミュレータ上でフリーのOSを動かす、いい感じである。
ま、OpenTransportが使えたほうがいいので、7.5.5にupdateする必要があるが。
Linux上でDownLoadし、HFSUtilsを用いてディスクイメージファイルにコピー。
そのあとBasilisk II上で、インストール作業。
さすがに時間がかかったものの、結果はほぼ満足の行くものだった。
特に問題もなくすんなり起動してくれたのだ。
やはり、Basilisk II上でのインストールの方がシステムも安定すると思うのだが如何?

感想としては、「Basilisk IIは、Full Screenモードで漢字Talk7.5.3といった軽めのシステムでは十分な速度をもち、少なくともFusion-PC1.2.1に引けをとらない(そしてFPU回りで勝利)」といったところだ。

Fusion-PCがバージョンアップというアナウンスを聞いて少し揺らいでいるが、どーするかな?


11月26日
すっかり、この手の話題から遠ざかってはや2月以上。Basilisk IIも一時の停滞をはね飛ばすかのような怒涛のアップデートを繰り返し、すでに0.7は安定版(release 0.7)になり、SnapShotは0.8で3度目のアップデートを行っている。この結果、今まで不満だった点がほぼ完全に解消。
1)Quadra700のROMの68030モードでのエラー
2)内部時計のずれ
3)FPUの不備
4)CPUモードの変更
いづれもざっとみるレベルでは問題ない。
特にFPUの改良は、いままでバグっぽかった各種のアプリケーションで正しい動作をするようになった。
この一事だけでも、Fusion-PCを切り捨てる可能性がますます高まる。

今は暇がないのでEthernetの辺りもきちっと押さえたいのだが、それはまた今度ということで。



9月9日
VineLinux 1.1上でBasilisk II 0.7αがROMの問題により起動できなかった問題で、POSEIDONさんから、Basilisk II 起動時のCPUモードを68020モード(デフォルトでは68030モード <- ROMの種類に依存するようだ)にすることで問題が回避できそうだとの貴重なご意見を頂いた。
POSEIDONさんのご指示どおりにソースコードの一部を変更してコンパイルし直せば起動できることを確認できた。POSEIDONさんのページで示されている通り。
BasiliskII/src/Unix/main_unix.cpp
の230行目あたりの"CPUType=3;"を"CPUTtype=2;"へと変更したのち、コンパイルしてやれば良い。
#POSEIDONさんありがとうございました。


別件であるが、Basilisk IIが起動できるようになったので、懸案のEthernetを試してみようと思った。
私のシステムはVine Linux 1.1で、kernelは2.0.36であった。READMEにあるように、Ethernetは使用可能であるらしいので、その"Sheep_net"デバイスを作ろうとコンパイルを試みるが、幾つかのオブジェクトファイルが存在しないらしく失敗する。おそらくこれはKernelのソースの中に必要なソースがないことが原因らしい。ここで思いつくのは1)他のディストリブーションなら存在するのか?、2)Kernelのバージョンを上げれば存在するのか?、の2点である。試みに(以前からKernelのバージョンアップに興味があったことだし)kernel 2.2.12をインストールしてみた。
結果的にはこれが正解だった。
きちんとコンパイルもできて、デバイスを登録することができた。

だが、しかし・・・
Macのシステムは7.5.3なので、BasiliskII起動後コントロールパネルの「ネットワーク」を開いて内蔵Ethernetに切り替えたところ、Linuxのコンソールにエラーが流れてMacはフリーズ。
何度か繰り返すが、未だ成功していない。
MacTCPがだめならOpenTransportか?と思ったが、現在CPUモードを68020で立ち上げている関係上、確か使用不可である。うーん、何とかならんものか。
次回に期待。


8月31日
お詫びと訂正

Basilisk II 0.7αが私の環境で起動しなかった問題で、それを解決したいと思うあまり、違法な手段を用いて手にいれたMacROMを利用するという愚挙に出てしまったことをここに強く反省し、お詫び申し上げます。Fusion-PCのトップページにおいて、自ら違法だと言っておきながらその事の重大さを認識していなかった自分の甘さを、指摘されて気が付きました。従いまして、その情報に関する部分を削除致しました。お詫びと今後の自戒を込めてこの文章をアップさせて頂きます。



さて、POSEIDONさんからのメールによると、どうやら0.7αの起動問題は、このバージョンからROMの相性が以前よりシビアになったことが原因のようです。例としてはQuadra700、PB140、(両者のROMはIDが同じだそうです)といったROMでは起動時に問題があるらしく、これ以外のROMなら問題なく動くようです。この問題は現時点では解決方法はないと思われます。次回のバージョンアップに期待というところでしょうか?


8月19日
少し前の話になるが、いつもお世話になっているPOSEIDONさんが、BasiliskIIについてのページを作るかも(!)な話をされていた。そこで、是非やっていただきたいとメールを書いたのだが、ついでに、O.7αが動かないことを報告したところ、別のユーザーから既に同じ症状の報告を受けているとお返事いただいた。そのユーザーもVine Linuxだそうで、PoseidonさんはVine固有の問題ではないかと指摘されている。Joe-Palm発起人の和也@つくばさんも実はVAIO+Linux(Debian)使いで、以前のつくばお茶会で僕のBasiliskIIを見せたところ自分も動かしてみたいと思われて、実際に試されたそうだが、彼のDebianでは0.7αは順調に動いていると報告をもらった。このことから、Vine固有の問題であることは明白であるが、原因が分からない以上、しばらく静観するしかないようである。ちなみにVine Linuxのバージョンは1.0、1.1であり、両方とも試したものの、どちらも動いていない。


7月30日
先日0.7αでどうもシステムエラーで立ち上がらない問題で、英語システム(System7.5.3)で起動させてみたが、同様のエラーで吹っ飛んでいる。エラーメッセージは「shift押しながらrestartさせると、extensionを一時的にはずして起動できるよ」と親切ごかしに言っているが、それで試してもだめだ。厳しい!。時間がないからこれ以上はいじれない。うーん、前のバージョンまで無事だったのに。たいへん残念だ。


7月28日

7月25日にBasilisk IIの最新版0.7αが登録されている。早速ダウンロードして試してみたが、これまでと同じハードファイル、ROMファイルを用いているにも関わらず、起動途中でシステムエラーを起こす。
そのときの爆弾とエラーは以下の通り。

現在使用しているシステムはSystem7.5.3 + Japanese Language Kit 1.2である。そのおかげでシステムエラーのアラートも文字化けせずに読めるのだが、私には理解できない。もしかすると、日本語がらみでどこかつまづいているのかも知れない。一度英語システムで起動するかチェックせねばなるまい。しかし当面はBasilisk IIのバージョンを0.6αへ戻すことを余儀なくされる。

更に、Fusion-PCで用いているMacOS 8.1Jを起動システムにしてみたが、やはり同じところでシステムエラーが発生する。こちらは文字が化けてしまってアラートが読めないのだが、おそらく同じエラーだと思われる。



6月22日

只今の最新版はBasiliskII_src_200699.tar.gzで、バージョンは0.6αである。
ここ2ヶ月の間に、0.5αのバージョンのままで何度かアップデートがなされていたが、system関係やvideo回りでの改良が目を引く。
今回の注目は以下の2点;

1)Video回りでのDGAモード、すなわちX上でのフルスクリーンモード
これは、.basilisk_ii_prefsでの設定において
screen dga
と設定することで行える。
X上のWindow内でエミュレートするこれまでの方法に比べて、画面の書き換えなどのスピードが格段に早くなるので、エミュレーションの体感速度が飛躍的に上昇する。
しかしこれまでの0.5αでは、DGAモードに入るとマウスの挙動不審(画面の最上段以外に移動できない)などの問題が発生していた。
これが今回の0.6αでは解消され、DGAモードでうきうきと広い画面を自由にマウスポインタを動かすことができるようになった。
この結果X-Window内の時に比べてかなり体感速度があがり、PentiumMMX200MHzのマシンでも、使えるかも?と思わせる速度になった。

2)FPUのエミュレータの使用。
これは、.basilisk_ii_prefsでの設定において
fpu true
と設定することで働く。まだこのエミュレータはかなりバギーだということらしいが、一応動いている。
しかも、これまで動かなかったIgorも起動するようになったのでご機嫌である。

またソフトウェアでは、これまではBasiliskIIごとおなくなりになっていたNisusWriter4.1J/68Kも起動できるようになっている。


使いたいと思っていたソフトが軒並動くようになった。とりあえず使えるめどがついてきた雰囲気である。
もう少しsystem回りをチューンして欲しいところだ。

今後がますます楽しみである。

Back to My Basilisk page
Back to Biting Vine