長いこと、ご無沙汰である。 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日版)を利用したところ、起動に成功したのでいくつか気の付いたところを述べてみたい。
|
ご無沙汰。 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 を行えば、よい。 |
なかなか更新する暇のない今日このごろ。 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なんぞではできない芸当である。 というわけで、好きなときにマックを呼び出せるわけで、なかなかに快適なのである。 あとは、もう少し速くエミュレートしてくれればなぁ。 |
再びこの手の話題から遠ざかってはや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がバージョンアップというアナウンスを聞いて少し揺らいでいるが、どーするかな? |
すっかり、この手の話題から遠ざかってはや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の辺りもきちっと押さえたいのだが、それはまた今度ということで。 |
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で立ち上げている関係上、確か使用不可である。うーん、何とかならんものか。 次回に期待。 |
Basilisk II 0.7αが私の環境で起動しなかった問題で、それを解決したいと思うあまり、違法な手段を用いて手にいれたMacROMを利用するという愚挙に出てしまったことをここに強く反省し、お詫び申し上げます。Fusion-PCのトップページにおいて、自ら違法だと言っておきながらその事の重大さを認識していなかった自分の甘さを、指摘されて気が付きました。従いまして、その情報に関する部分を削除致しました。お詫びと今後の自戒を込めてこの文章をアップさせて頂きます。 さて、POSEIDONさんからのメールによると、どうやら0.7αの起動問題は、このバージョンからROMの相性が以前よりシビアになったことが原因のようです。例としてはQuadra700、PB140、(両者のROMはIDが同じだそうです)といったROMでは起動時に問題があるらしく、これ以外のROMなら問題なく動くようです。この問題は現時点では解決方法はないと思われます。次回のバージョンアップに期待というところでしょうか? |
少し前の話になるが、いつもお世話になっているPOSEIDONさんが、BasiliskIIについてのページを作るかも(!)な話をされていた。そこで、是非やっていただきたいとメールを書いたのだが、ついでに、O.7αが動かないことを報告したところ、別のユーザーから既に同じ症状の報告を受けているとお返事いただいた。そのユーザーもVine Linuxだそうで、PoseidonさんはVine固有の問題ではないかと指摘されている。Joe-Palm発起人の和也@つくばさんも実はVAIO+Linux(Debian)使いで、以前のつくばお茶会で僕のBasiliskIIを見せたところ自分も動かしてみたいと思われて、実際に試されたそうだが、彼のDebianでは0.7αは順調に動いていると報告をもらった。このことから、Vine固有の問題であることは明白であるが、原因が分からない以上、しばらく静観するしかないようである。ちなみにVine Linuxのバージョンは1.0、1.1であり、両方とも試したものの、どちらも動いていない。 |
先日0.7αでどうもシステムエラーで立ち上がらない問題で、英語システム(System7.5.3)で起動させてみたが、同様のエラーで吹っ飛んでいる。エラーメッセージは「shift押しながらrestartさせると、extensionを一時的にはずして起動できるよ」と親切ごかしに言っているが、それで試してもだめだ。厳しい!。時間がないからこれ以上はいじれない。うーん、前のバージョンまで無事だったのに。たいへん残念だ。 |
7月25日にBasilisk IIの最新版0.7αが登録されている。早速ダウンロードして試してみたが、これまでと同じハードファイル、ROMファイルを用いているにも関わらず、起動途中でシステムエラーを起こす。 |
現在使用しているシステムはSystem7.5.3 + Japanese Language Kit 1.2である。そのおかげでシステムエラーのアラートも文字化けせずに読めるのだが、私には理解できない。もしかすると、日本語がらみでどこかつまづいているのかも知れない。一度英語システムで起動するかチェックせねばなるまい。しかし当面はBasilisk IIのバージョンを0.6αへ戻すことを余儀なくされる。 更に、Fusion-PCで用いているMacOS 8.1Jを起動システムにしてみたが、やはり同じところでシステムエラーが発生する。こちらは文字が化けてしまってアラートが読めないのだが、おそらく同じエラーだと思われる。 |
只今の最新版はBasiliskII_src_200699.tar.gzで、バージョンは0.6αである。
使いたいと思っていたソフトが軒並動くようになった。とりあえず使えるめどがついてきた雰囲気である。 もう少しsystem回りをチューンして欲しいところだ。 今後がますます楽しみである。 |