Windows NT on DEC Alpha
目次
Alphaで動くOSは、数種類あります。
これだけの種類があります。1はどんなものかぜんぜんわかりません。2〜4はUNIXなので、もともとCPUに依存しないOSです。ですから、UNIX系OSを利用する人ならば、単純に超高速マシンとして恩恵を得ることが出来ます。マシンが一般的でない以上、自分で自分の責任を取れる人である人でないといけませんが、unix系ユーザであるなら大丈夫でしょう。私が利用しているのはVT社が発売しているVT-Alpha(性能を見るならばここを参照)で、コストパフォーマンス(私が利用しているVT-Alpha433MHzで798,000円)が非常に良いのが特徴です。AlphaはDEC外メーカから出ている安いセットが多くあるので、日本メーカにこだわらなければ、もっと安いメーカがあるかもしれません。どちらにしても、パフォーマンスを求めていて、unixを利用する人ならば、間違いなくお勧めです。
WindowsNTを利用するユーザには、少し注意が必要です。当然、パフォーマンスを求める人であることが前提ですが、自分で自分の尻をふける人じゃないと使えません。良く人にAlphaについて話すとき、
「メインマシンになれるキャパはあるけど、とっても普通な癖のないサブマシンが必要だ」
といっています。WindowsNTではCPUがAlphaでも、Win16アプリ(win3.1時代のソフト、当然x86マシンのバイナリしかない)を動かすことが出来ます。これはNT内蔵のwin16エミュレータ(WOW)で動作することが出来るからです。一方、最近主流のWin32x86アプリ(win95/NTのもの)は、FX!32(DEC製)やWX86(Microsoft製)で動作させることが出来ますが、やはり所詮はエミュレータ(FX32はバイナリコンパイラ)なので、動かないソフトは時々あります。Windows NT カーネルに密着するソフト、ドライバの類、サービスの類は動かすことが出来ません。IMEなども純正しか使えないし、ドライバがないと動かないハードウェアは動かすことはできません。ソフトウェアでも、Windowsそのものを拡張するタイプのものも動きません。
ハードウェア的なインターフェースはほぼPCそのものです。外面はほとんどPCですから。しかし、PCI、ISAのスロットがあっても、良く売られている拡張機器が何も考えずそのまま使えるというわけではありません。もしも、なにかの周辺機器を購入したいと考えるならば、NTのシステムディスクにドライバが含まれているものしか使えないと考えたほうが無難でしょう。逆に言うならば、最近のNTのシステムディスクは、有名どころのハードウェアはたいてい入っていますから、それらを問題なく使うことが出来ると考えることが出来ます。ディスプレイアダプタも、わがままをいわなければMillenniumとかが問題なく使えます。100万弱クラスのきちんとしたOpenGLアクセラレータを入れれば、わずか200万円でSGIマシンよりも高速で快適に、ゲーム業界で最近では3Dソフトの定番となっているSoftImageが使えます(もちろん、SGIにはSGIであることに利点もあるし、SGIを否定しているわけではない)。
当然ですがエミュレータとしての動作であるなら、Alphaとしての利点を生かしきることは出来ません。Visual C++ 4.0がDECから発売していますから、これを購入しないと利点はいまいち生かしきれないでしょう。Visual Cコンパイラは10万強します。が、一応、gccもあります。unix系ソフトからの移植はgccを、x86で出回っているものは、Vccを利用するのがいいのかもしれません。私自身はgccをインストールするのが面倒だったので、Vccを利用しています。Mule、pTeX、tcshのNT版はVccを利用しているので、ほぼそのままコンパイルができました。
〜X68kを捨てて〜
X68kから逃げたな・・・といわれてしまったら、逃げたことになるんですが。
X68kで自分のやりたいことができなくなって以来、いろんなマシンを使いました。私は別に、なにかのアンチ主義ではないし、マイナー志向でもありません。自分の使うパソコンや環境を選ぶ最大のポイントは、取りたてて自分がやりたいことができればそれでよい。たまたま、昔、X68kが魅力的だったと。やりたいことが出来ないのに、X68kを使い続けるのもなんとなく”X”らしくないし、それじゃぁなんとなく時代からとりおろされてしまう。どんな業界もそうだけど、コンピュータ業界って最先端を走らないと、それで飯を食うのは特に難しくなるから(好きなことをしながら飯が食えるんなら、努力するってやつ?)
で、その後見つけたのは、DEC Alphaだったりします。実際に利用しているのは、VT-Alpha433という、DECのOEM品ですが、Alpha433MHzの爆速マシンです。自分の研究分野で、68くんではプログラムを組むのがあまりに難しすぎたり、どうしても無理だったりしたことが、あっさり出来たりして、結構快適につかってます。
速度はX68kでも我慢すれば何とかなります。X68040-33MHzでDIRECT_FLOATして、4日ほど待てば計算はほぼ終わります。HDDも4Gぐらいつめば問題ないし。でもメモリがないために、かなりの苦労をしてしまい、自前のパージプログラム(スワップより低機能な、似たような利用用途のもの)を使い、非常にメモリを意識したプログラムを書かねばなりません。ノリはほとんど、X68k時代に、「絶対この環境でCでプログラム書きたくないな」と思っていたMSDOSのC環境みたいになってしまっています。
グラフィックにしても、研究用途の場合、出来るだけ精密なデータが必要なので、結局フルカラーが必要になります。6万色では、それがディザによるものなのか、ノイズによるものなのかが判断しづらいからです。音源は言わずとも貧弱です。まぁ、DSPボードでなんとかなるのですが、それにはDSP用のAPIをまず起こさねばなりません。
このほとんどすべてのAPIなどを新しく自前で起こさねばならない環境と、新しくWin32にせよ、UNIXのX-WINDOWにせよ、新しく覚えるのと、どっちが早いんだろう?どっちが覚えたことが後で無駄にならないんだろう?と考えた挙げ句、別のマシンに移ることにしました。
ちょうどそのとき、Windows95前夜祭で、Cマガジンで、Win32ではプログラムがどのように組めるのかを特集していました。あれをみて、Windowsも悪くないじゃんと思うようになったんですね。最初はOSは95を結構使っていましたが、現在はWindowsNTを利用しています。この理由は、
でした。これ以外にwin32特集のときのCマガで、えらくNTを推奨していたこと、彼女がNTにはまってたこともあったりします。
実は、Win32に触れる前、UNIXでコンソールレベルのプログラムはよく作っていました。メモリと速度が解決するので、音声に絡むところはunix上でp16を吐くものを、画像が絡むことはunix上でtiffファイルを吐くものを作っていました。だから友人には、この条件出して相談したとき、UNIX系OSとMacintoshを使えば?とかいわれたんですが、UNIXは1と3を満たす良いOSだけども、2があまりにお粗末なんで敬遠。リブートすればいいじゃんとか、そういうのはやだし、なにしろ、プログラミングせにゃいかん、大半のケースはアプリケーションでかゆいところに手が届かなくなったときなんで、どっちも同じプラットフォームじゃないといまいち使いづらくなります。それに、作っていたプログラムは全部コンソールベースだったので、win32のコンソールプログラムにはすぐ移植できたのが利点です。unix系のSHELLもあったし、gccもある。gccのほうは結局Visual C++を使うことになったけど、コンソールレベルではたいして変わりません。
Macintoshはたくさんアプリはそろってるとかいうけど、数から見て圧倒的に今後はWindowsだと思ったので、結局WindowsNTにしました。今のところ、この選別はOKだったようで、何の不自由もなく使ってます。その後、DEC
Alphaの上で動くWindows NTで、tcshとかMule(EMACS)とか、pTeXとか、Alphaネイティブ版にコンパイルし直したり、unixで使ってた必要な小物をちびちび移植してたりしています。unixな人にはわざわざNT使わないでも……とかいわれますが。同一プラットフォームでOfficeやPhotoshopやPageMakerやIllustratorなどなど、周辺機器も買ってくればほとんど使えるこういう環境が非常に気に入っています。