まただよ。
いや,再インストールのことである。もっとも,今度ばかりはWindowsが悪いというよりも,たぶんWestern DigitalのCavier 22100とかいうハードディスクが悪いというべきだろう。何せ,カランという感じの音とともに,突然止まってしまったのだ。それっきり,何をしても反応しないのである。仕方ないのでリセットすると,「ハードディスクが見つかりません」という感じのメッセージ(正確な英文は忘れた)を表示して止まってしまうのである。[Ctrl]+[Alt]+[Delete]を押してリセットすること数回,諦めて電源を切るまで数分のことだった。
ふと思いついて再び電源を入れたら無事に起動したが,気のせいかハードディスクからカラカラと音がするので,容量不足でもあることだし,換装することにした。すぐさま生協に行ってLogitecの6.4 GBのUltraATA33のハードディスク(ドライブは富士通製)を28800円で購入してきたのだが,再インストールには時間がかかることが予想されたので,広島の発表が終わるまでだましだまし動作させていたのだった。再びカランという音とともにハードディスクが止まってしまったのは一昨日のことだった。事ここに至って換装を開始したわけである。
換装自体は予想通り10分もかからなかった。SCSI接続のDドライブはそのままなので,そこにCD-ROMからWindowsのシステムディレクトリ(Win95)をコピーしておき,フロッピーで起動する。新品のハードディスクは,まずはfdiskを使ってパーティションをとらねばならない。OSR2では6.4 GBがFAT32の単一ドライブとしてとれるはずだが,どういうわけか2GBしかとれない。これはBIOSの設定だろうと見当をつけ,起動時に[Del]キーを押してAward BIOSを呼び出し,IDEドライブの設定をする。候補の1番に6.4 GBドライブの設定が出てきたので,それを選ぶだけである。これも以前BIOSをアップデートしておいたおかげだろう。苦労はしておくものである。
後はfdiskで6.4 GB全部を基本DOS領域として選択し,再起動後にformat c: /sをしてさらに再起動,起動フロッピーの中身を全部コピーしてから起動フロッピーを抜き,C:から起動させて,D:に移動し,cd win95としてからsetupとすればインストールが始まる。以前も書いたように,このマシンには周辺機器がたくさんついているのでドライバの設定などが大変面倒なのだ。かつWord Perfectは最初にインストールしなければならないといった問題もあり,結局コンフリクトをすべて解決してアプリケーションをインストールし終わったのは昨日の昼のことだった。長い道のりだった。現在でもドライバにコンフリクトはないのにIBMのSmartPC Card DriveのPCMCIAスロットにFlashメモリを入れてもドライブとして認識されないが,赤外線通信が有効になったことだし,その状態に甘んじることにした。
ついでだから,昨日の午後一杯かけて,手元のパソコン上でのCの開発環境を改善することにした。開発が終わればFreeBSDかLinuxに転送して実行させるのだから,なるべくそれらのegcs-1.1.1に近いことが望ましい。これまではDjgpp v2をDOSプロンプトから使っていたのだが,若干仕様が違うのだ。そこで,まずComWin32のページからcwsh Free Ver. 3.93 (CWSH0393.EXE : 234756byte) をダウンロードした。これは長いファイル名やいろいろなunix風のシェルコマンドに対応し,実行履歴を記憶してくれるフリーのシェルである。djgppそのものは以前のもの(gcc-2.7.2.1)をディレクトリごと保存しておいたので,それを書き戻し,AUTOEXEC.BATで環境変数とパスさえ設定すれば,このシェルからunix風の開発ができるわけだ。環境変数は,DJGPP=c:\djgpp\djgpp.envで,PATHにc:\djgpp\binを含めるだけである(もちろんhttp://www.delorie.com/djgpp/に情報があるように,昨年末にアップデートされたdjgpp2.02環境とgcc2.81を理化学研究所のFTPサイトからダウンロードすることもできるが,まだしていない)。これは簡単にうまくできた。
しかし,DjgppはあくまでDOS環境のコンパイラである。unix風を追求するなら,Win32コンソールアプリが作れるということで有名なCygwinであろう。Cygnus自身のCygwinサイトからリンクを辿り,工業技術院のRingサーバからfull.exeをダウンロードした。インストールはこれを実行してインストール先ディレクトリを指定するだけで,実に簡単である。cygnus.batをcwshから実行しようとしたら環境変数領域が足りないというエラーが出て実行できなかったので,素直にDOSプロンプトから実行することにした。当初はcygnus.batに書かれている環境変数設定をAUTOEXEC.BATにコピーしようと思ったが,そうするとDjgppとの併用ができないので,cygnus.batをパスの通ったディレクトリに移動するにとどめた。なお,ここからegcs-1.1.1のバイナリもとれるので,cygwin-b20用であるが,上書き展開してしまった。DOSプロンプトからcygnusと打ってリターンキーを押すと,bash2.02が起動する。うーん,すばらしい。
早速ベンチをとる。アルファマシンのページで触れた東海大学の清水さんのソフトをDjgppとcygwinの両方でコンパイルし,実行してみた。コンパイル速度はほぼ互角だが,実行モジュールの大きさはDjgppが90 kb弱なのに対してcygwinの方は300 kbを超えた。実行速度もDjgppの方がやや速かった。シングルタスク実行ならDjgppに分があるのは明らかなようだ。
丸2日がかりの環境整備であった。無駄なような気もしないではない。