OS2/歴史/temp/MichalN/OS2_for_PowerPC

OS2/歴史/temp/MichalN/OS2_for_PowerPC

※このページの文章は、The History of OS/2OS/2 for PowerPC に関する部分の日本語訳です。元のページに貼り付けてあった画像は持ってきてないので、元のページを各自ご参照ください。

OS/2 Warp, PowerPC Edition

もともと私はこのページを、Microsoft OS/2 2.0 のベータ版(もし見つけられるものなら)や Windows NT 用のプレゼンテーションマネージャサブシステム、OS/2 for PowerPC といった「珍品」にあてるつもりだった。OS/2 for PowerPC を動かすのに必要なハードウェアとソフトウェアの入手の算段がようやくついたとき、私は、このまことに珍しいソフトウェアには専用のページが必要とされることをただちに悟った。

予想外に長期の開発の後(でも本当に予想していなかったのか?)、1995年12月、IBM は OS/2 Warp, PowerPC Edition をついに「出荷」した。便宜上ここからはこの製品を OS/2 PPC と呼ぶことにする。過剰な宣伝と高い期待の後に続いたリリースは非常に控えめで、事実上 OS/2 for PowerPC 開発終了の証となっていた。製品は限られた IBM の顧客のみに提供され、販売活動はまったくなされなかった。私の知る限り、OS/2 PPC はパッケージの箱さえなかった。とはいえ私にはきれいなオリジナル CD がある。

ハードウェア

OS/2 PPC は極めて限られた範囲のハードウェア――IBM Personal Power Series のマシンのみをサポートしていた。サポートしていたのはデスクトップモデルの 830 と 850 だった。そして OS/2 PPC は Power Series ThinkPad の 820 と 850 もサポートしていると思われるが、それはこれらの ThinkPad に搭載されているグラフィックチップセットが OS/2 PPC の非常に短いサポートデバイスリストの一部分を占めていることからの単なる予想である。

IBM Power Series コンピュータは、1995〜6年、PowerPC ベースのデスクトップパソコン市場に向けた IBM の、非常に短命に終わった挑戦だった。PowerPC の CPU は別にして、そのシステムは当時のインテルベースハードウェアと非常に似通っていた。PCI バスを基本として設計されていたが、ISA の拡張スロットやオンボードの Crystal Audio ISA PnP チップも含まれていた。Power Series のデスクトップ機は IDE ベースで、ThinkPad は SCSI ディスクを使っていた。標準的なシリアルポートとパラレルポート、割り込みコントローラや DMA コントローラのような通常の PC ハードウェアのほとんどがあった。デスクトップ機にはオンボードの S3 864 ビデオチップが搭載され、ThinkPad は Western Digital の液晶パネル用チップセットを使っていた。いくつかの追加グラフィックカード、特に Weitek P9100 ベースのアクセラレータがサポートされていた。デスクトップ機にはオンボードの Ethernet チップがあった。

Power Series のシステムは IBM RS/6000 などのワークステーションと密接な関係があった。 RS/6000 Model 43P-7248 は Power Series 850 とほぼ同じものだった。これらは同じマザーボードを用いており、ただ RS/6000 はオンボード SCSI コントローラを持っていた。ワークステーション市場、そしておおむね IBM の AIX のみの動作を念頭においた RS/6000 のシステムと違い、Power Series のシステムは「ふつう」のパソコンユーザ向けに設計された。この機種は OS/2 や Windows NT、AIX、Solaris を動かすことが想定されていた。PowerPC 用の Solaris が出来ていたなんて思えないのだが。OS2 PPC は完成途上品だったし、Microsoft は NT 4.0 リリースまもない1996年に PowerPC サポートを止めてしまい、Power Series システムの大部分は結局 AIX を動かすこととなり、バージョン 5.1 まで AIX がサポートされた。Linux もある程度までは Power Series をサポートした。 私は PowerPC 版の Windows NT をすこし使ったことがあるので、OS/2 PPC と比べてみる。AIX と Linux も IBM の PowerPC システムで使っていたが、Windows NT はやはり比較対象として OS/2 PPC にもっとも近いものだった。

私の OS/2 PPC システムは Power Series 830 である。ただし RS/6300 43P のケースに入っている。CPU は 100MHz の PowerPC 604 で二次キャッシュは 256KB、そしてマシンは 192MB の RAM を搭載しており、これが利用可能な最大容量である。グラフィックは S3 Vision 864 で 2M の VRAM と true color S3 SDAC つき。私は 2.1GB の IDE ハードディスク――AIX は 8GB までの、そして Linux ならさらに大容量のディスクを使えるが、OS/2 と NT は 2.5G あたりを超えると悲惨――を一台使っている。ちなみに、830 はもともと 500MB か 1GB のハードディスクと 16MB の RAM を搭載した状態で売られていた。Power Series 850 システムは 100MHz か 120MHz の CPU、そして容量がやや多めの RAM とディスクを搭載していた。

ソフトウェア

OS/2 Warp, Power PC Edition は二枚組の CD だった。一枚目の CD はオペレーティングシステムと BonusPak が入っており、二枚目の CD は複数のデモ版アプリケーションが入ったアプリケーション・サンプラーだった。

インストールは驚くほど簡単でなんの苦労もない。CD はブータブル CD で作業はほとんど選択不要――ディスクパーティション作成に関することだけ――だった。ブートマネージャに相当するものが存在しないため、PowerPC のオペレーティングシステム(OS/2 や NT、AIX、Linux)はふつう共存できない。OS/2 のインストーラはディスクパーティションを再設定し、それ以外の OS を上書きしてしまう。起動パーティションは FAT でなければならない。HPFS のデータ区画を作成することは可能だが、HPFS のサポートはどうもかなり不安定で、最後の土壇場で追加されたもののようである。

CD-ROM の遅さ、そしておそらくはお粗末な CD-ROM ドライバとのあわせ技によってインストールにかなり待たされた後、OS/2 PPC のインストールは終了し、システムがハードディスクからブートした。私はこんな画面のお出迎えを受けた。

(figure: OS2PPC - Introducing OS/2)

いや、間違いではない。OS/2 PPC はまさに OS/2 Warp そっくりなのだ、すくなくとも一見した限りでは。システムは S3 のアクセラレータを使った 640x480 の 256色モードで立ち上がった。インストール直後のデスクトップはこんな感じだった。

(figure: OS2PPC - OS/2 System - Icon View)

やはり OS/2 Warp とかなり似ており、わずかに Systems Management フォルダが違っている。この機能は Intel 版 OS/2 Warp リリースには存在せず、あとになって追加された。BonusPak とその他の追加ソフト少々をインストールして解像度を変更した後も、デスクトップは依然としてふつうの Warp と似た見栄えだが、もちろん背景ビットマップは別だ(画像をクリックするとフルサイズのスクリーンショットが出ます)。

(figure: OS2PPC - desktop)

システムはこのとき 1024x768 の解像度だが、256色のままだ。グラフィックチップはこの解像度で6万色をしっかりサポートしているが、残念ながら Impos/2 ではスクリーンショットを撮れなかったのである。256色なのはともかくとして、そろそろオペレーティングシステムのより詳細な評価にいってみたい。README は悪くない出発点だが、OS/2 PPC ではかなり長い。中身は主に未実装もしくは未完成機能のリストになっている。

一例を挙げると、スクリーンショット中にあるあの "Connect" である。OS/2 Warp, PowerPC Edition はそう言えるだけのコネクト能力がまるでなかった。ネットワークのサポートは、ひとことで言って、存在しなかった。LAN Server クライアントなし、TCP/IP なし、なんにもなし。あったのはせいぜい HyperAccess Lite と Compuserve Information Manager で、それらは(すくなくとも理屈の上では)モデム経由で通信するものだった。この名称が変更されることになったのはほとんど最後の頃らしい。プログラムとドキュメントが多くの箇所で OS/2 Warp Connect, PowerPC Edition について言及しているが、最終的な製品は単なる OS/2 Warp と呼ばれ、"Connect" はなかった。README ファイルのひとつに名称変更の説明があり、「将来のバージョン」でのネットワークサポートが仄めかされていた。

OS/2 PPC の開発版では、OS/2 を完全に迂回してマイクロカーネルの Ethernet やトークンリングのドライバと直接通信する TFTP のサポートがあった。この転送レイヤではリモートデバッグもサポートされていた。この点、同じハードウェア上で完全なネットワーク(TCP/IP とファイル共有)をサポートする Windows NT ときわだった対照をなしている。ネットワークはもちろん OS/2 でも予定されていたが、この部分が完成する前にプロジェクトが潰れてしまった。

何もかもがこうあからさまに未完成というわけでもなかった。OS/2 PPC の DOS サポートにはまったく驚かされた。

(figure: OS2PPC - DOS Emulation)

よく見ていただければ、仮想 x86 CPU のみならず、よくある PC のハードウェアも提供する完全な PC エミュレータが OS/2 PPC に含まれることがおわかりだろう。興味深いことに、OS/2 PPC の DOS サポートは PC DOS 7 をベースにしており、インテル版 OS/2 についている旧式の DOS 5 レベルのコードではなかった。OS/2 PPC の DOS box はだから例えば DOS の E エディタ(TEDIT とよく似ている)や REXX のサポートがあった*1。なぜ IBM がインテル側の DOS サポートを更新しなかったのかは私にはわからない。OS/2 PPC はウィンドウ表示とフルスクリーンの両方の DOS セッションをサポートした。フルスクリーンセッションは、エミュレートされる DOS アプリケーションがテキストモードのときでも常にグラフィックモードで実行された。

DOS「だけ」のエミュレーションに飽きたらず、IBM は Win-OS/2 も、フルスクリーンとウィンドウ(シームレス)表示の両方でサポートした。

(figure: OS2PPC - Win-OS/2)

徹底的に DOS や Win-OS/2 のエミュレーションをテストしたわけではないが、OS/2 のシステムについてくるユーティリティは、Win-OS/2 の PCM 再生も含めて、どれもうまく動くし、パフォーマンスも期待以上だった。IBM は x86 エミュレーションのサポートに多大な努力を払ったにちがいない。x86 のネイティブ OS/2 アプリケーションをエミュレーションで将来サポートするであろうことをドキュメントは示唆していた。

IBM はもちろん OS/2 PPC のマルチメディアサポートにも多くの時間を費やしていた。マルチメディアサポートは、とくにインテルマシンでしょっちゅう問題に出くわしがちな身からすれば予想外にうまく動作する。

(figure: OS2PPC - Multimedia)

システムは動画と音声を問題なく再生し、ソフトウェアシンセサイザーか OPL3 互換チップのいずれかによる MIDI サポートもある(ソフトウェアシンセサイザーのほうがだいぶ音がいい)。 アプリケーション CD には動画も何本か入っており、大部分は OS/2 の CM だった。PowerPC Toolkit には OpenGL サポートのベータ版がついており、それは IBM の AIX ワークステーションのクラス実装とコードを共有していた*2

OS/2 PPC は Warp V3 と Warp V4 の中間形態だった。ユーザインターフェースは Warp V3 のようだったが、OS/2 PPC の機能の多くはのちのインテル版 Warp V4 に出現することになった。その中のひとつが、あまり受けのよくない「機能のインストール (Feature Installer)」だった。

(figure: OS2PPC - Feature Install)

機能のインストールは BonusPak や各種のゲームとツール、そして実に奇妙なことにコマンド・リファレンスのインストールにも使われていた。どういうわけか基本インストールに含まれていなかったのである。そのなかのゲームからひとつ。

(figure: OS2PPC - Klondike Solitaire)

やはり、about ボックスのテキスト("Connect" の文字に注目)以外、インテル版となんら違いはない。

OS/2 PPC は不思議な OS だった。かなりの点でインテル版にうりふたつだったが、別の面ではまったく異なっていた。ユーザインターフェースは同一で、全 API は事実上無変更だった。違いがあるとすれば、完全な Unicode サポート*3と32ビットコンソール API(Kbd/Mou/Vio)が追加されていることだった。ほぼ API が変更されなかった理由として、既存の OS/2 ソフトウェアの PowerPC への移植が比較的容易になるということがあった。最大の相違点は CPU ではなく、むしろコンパイラだった。IBM は PowerPC 開発に MetaWare の High C/C++ を使った(聞いた話だが、IBM 自社のコンパイラグループより MetaWare と交渉したほうが IBM の OS/2 事業部には安上がりだったそうな)。 私の知るかぎり、MetaWare はもっぱら x86 の OS/2 システム上で動作するクロスコンパイラとして利用されていた。IBM はたいてい PowerPC の組み込み開発に MetaWare のコンパイラを使っていたし、MetaWare には OS/2 向けの x86 サポートもあった。Watcom はこのとき目下 PowerPC 版コンパイラの作業中だったが、計画が達成される前に OS/2 PPC が亡きものにされていた。Toolkit のドキュメントは PowerPC 用 VisualAge C++ の名を挙げていたが、リリースされたとは思えない。 OS/2 PPC 上でネイティブ動作するコンパイラ(もしくはデバッガ)の記述を私はまったく見つけられなかった。

OS/2 PPC 開発ツールは一方のインテル版とだいぶ異なっている。まず初めに、LX 形式の実行ファイルではなく、OS/2 PPC は業界標準の ELF を使っていた。いくつかのツールはまったく変わっていなかったが(たとえば IPFC)、大部分はまったくの新規だった(リンカ、ライブラリアン、リソースコンパイラ)。OS/2 PPC で使われる ABI(アプリケーション・バイナリ・インターフェース)は UNIX SVR4 PowerPC ABI と非常に似ていたが、OS/2 はもちろん Little Endian モードで動作したので、PowerPC 版 Unix よりもむしろ Windows NT に近かった。

カーネルにまで下りていくと、OS/2 PPC はインテル版との共通点がほとんどなくなる。この製品はカーネギーメロン大学の MACH マイクロカーネルをリファインした IBM マイクロカーネルをベースにしていた。このマイクロカーネルはどこをどう見てもインテル版 OS/2 カーネルとの類似点がなく、他のオペレーティングシステムとも非常に異なっていた。

はじめにあった壮大な計画、それはすべてのオペレーティングシステムをひとつにまとめるひとつの指輪、Workplace OS を作り上げることだった。Workplace OS(略して WPOS)は MACH マイクロカーネルの頂点に置かれ、複数の「パーソナリティ」をサポートすることになっていた。パーソナリティは OS/2、AIX、Windows NT、そしてたぶん MacOS をも含めたような既存の OS を実現することになる。 最後までこのようなものが出来ることはなく、サポートされたパーソナリティは OS/2 だけだった。

初期の設計は OS/2 PPC でも感じ取ることができる。OS/2 パーソナリティは「OS/2 Server」内に実装されており、「パーソナリティ非依存(personarity neutral)」なサービスがある。デバイスドライバの大部分はパーソナリティ非依存で、マイクロカーネルとじかにやりとりを行う。これに含まれるのはディスクドライバとネットワークドライバである。注目すべき例外はディスプレイドライバで、OS/2 PPC には GRADD モデルが導入されており、後にインテル版 OS/2 に移植された。OS/2 PPC の内部にかかわるドキュメントはどうもちぐはぐで、PowerPC Toolkit とともに出荷されたオンラインブックは往々にして未完成だったり、インテル版 OS/2 のドキュメントの単なるコピーだったりした。よい情報源は1995年に IBM International Technical Support Organization が発行した "OS/2 Warp (Power PC Edition) - A First Look" と題する redbook で、念のためいうと文書番号は SG24-4630-00 である。

OS/2 for PowerPC の印象

OS/2 Warp, PowerPC Edition とはどういうものだったのか?未完の作品、未体裁であるのと同時に技術的にはきわめて興味深く、先進的であり、未来を垣間見せてくれるものだった。 OS/2 PPC はベータ版とは呼ばれなかったにしろ、それが(ひいき目にみても)ベータ版レベルの製品であることは明らかだった。多くの機能が未完成、あるいは完全に抜け落ちていた(まず何よりネットワーク)。カーネルレベルのコードは製品ビルドのものとは思えず、シリアルコンソールに大量のデバッグ表示を出力した。HPFS サポートは非常に不安定で、Win-OS/2 の安定性ははなはだ遺憾といえた。製品中に未完成の部分が明らかにあまりにも多すぎた(ドキュメント、ユーティリティ不足などなど)。

その一方、システムのかなりの部分はうまく動いていた。ユーザインターフェースとグラフィック・サブシステムはおおむね異常を見せなかった。マルチタスクは、信頼性があり、あらゆる点でみて、100MHz の CPU とパフォーマンスに注意を払ったであろうコードによって非常によいレスポンスをみせた。マルチメディア・サブシステムは私の予想よりもだいぶよかった。インテル版 OS/2 に比べて多くの点が改良されていた――国際化、グラフィック・サブシステム、コンソール API の更新などである。うまく飼いならされていなかったとはいえ、システムは十分な馬力を持っているように思われた。起動時間はかなり長いが、いったん立ち上がればシステムはサクサク動く(CD-ROM ドライバに代表されるような、若干の例外はあった)。この OS が真の製品クオリティに達するには、すくなくともあと6ヶ月、たぶんそれ以上の集中的な開発作業が必要になるだろう。

OS/2 PPC はどの程度に使えるか? それほどでもない。実のところ、ほとんどまったく無用の長物である。かなりレアな IBM マシンの中の3〜4機種でしか動かず、追加デバイスもほとんどサポートしていない。この OS はあきらかに未完成でおよそ安定していない。最悪なことに、アプリケーションはほぼゼロだ。OS/2 PPC は真の意味で利用されたことがまったくないため、複数の OS/2 ISV が自社アプリケーションを OS/2 PPC に移植したという証拠がアプリケーションサンプラーにあるにもかかわらず、OS/2 アプリケーションの PowerPC 版は(すくなくとも私の知る限り)いちども販売されたことがなかった。 移植はそれほど困難ではなく PowerPC アプリケーションを作るためのツールも利用可能だったが、需要がなかったので、移植にはほとんど意味がなかった。

OS/2 for PowerPC まちがいなく興味深い実験であった。失敗作ではあったにしても。 この失敗が、OS/2 for PowerPC の欠点、あるいは PowerPC プラットフォームそのものの失敗――いわば大いなる見込み違いということかもしれないが――のいずれに多くを負うものなのかはなんとも言いがたい。

謝辞

Mike Kaply と Chris Graham に感謝したい。彼らの寛大さがなかったら、これに関して私はなにも書けはしなかっただろうから。

(十分な忍耐力と運があれば)世に埋もれた品々をすばらしい値段で見つけられる場所を提供してくれたことに対して eBay の設立者に感謝する。IBM Power Series 830: 50ドル+送料、OS/2 Warp, PowerPC Edition: お察しの通り無料、そのふたつの組み合わせで楽しんだ時々刻々: プライスレス。

ここで示した情報のいくつかは IBM のドキュメントや redbook に基づいているが、それ自体が不正確かもしれない。残りの大部分は私の所見および推定である。なにか他の情報、訂正、OS/2 for PowerPC に関する面白い話をお持ちの方は、MichalN@prodigy.net にお気軽にご連絡いただきたい。

(てきとうな訳注)

OS/2 Warp のところでも書いたが、Redbook SG24-4630-00 "OS/2 Warp (Power PC Edition) - A First Look" は IBM の redbook サイトでオンライン検索しても出てこない。ドキュメントの pdf は用意されているので、直リンすればダウンロードできる。(www.redbooks.ibm.com/redbooks/pdfs/sg244630.pdf)

以下、ほんとにどうでもいい訳注…。

*1 PC DOS 7 や PC DOS 2000 には DOS 版の REXX インタプリタが付属している。E エディタ(テキストベースのフルスクリーンエディタ。動作にクセがある)は PC DOS 6.3 か 6.1 のあたりですでに付属していたかも。いずれにしても DOS 5.0 には付属していない。

*2 ちなみに Warp V4 には OpenGL 1.0 のサポートが標準で付属していた。ただし、ハードウェアレベルで OpenGL をサポートする OS/2 用のドライバはたぶんまったく存在しないと思う

*3 たぶん Warp V4 で追加された Unicode Toolkit とほぼ同等かと思われる。念のため言っておくと、ファイル/プロセス/ウィンドウ管理などの API に(Windows NT のような)Unicode 対応版が用意されたわけではない。つまりカーネルレベルが Unicode 化されたわけではない…いやもちろん Intel 版の話ですよ。PowerPC 版についてはまったくわかりません。