OS2/歴史/temp/MichalN/なぜ OS/2 は失敗したのか

OS2/歴史/temp/MichalN/なぜ OS/2 は失敗したのか

※このページの文章は、The History of OS/2 内にある Why OS/2 Failed の日本語訳です。

なぜ OS/2 は失敗したのか

OS/2 を作った人々には壮大な計画と夢があった。20年がたち、OS/2 が失敗に終わったことはほぼ明らかである。この失敗には単一の理由というものがなく、それぞれの人がそれぞれの意見を持っている。 その主な理由をいくつか採りあげ、検討してみたい。

共同開発の不和

たぶん、OS/2 はその始まり、それが OS/2 と呼ばれるようになる以前から悪運にとりつかれていた。 IBM と Microsoft の間に結ばれた共同開発の合意は、両社の溝が広がるのを防ぐことができなかった。Microsoft は OS/2 の全クレジットを要求して(たとえば MS 版の OS/2 には IBM の著作権表示が含まれておらず、かたや IBM 版には IBM と MS 両方の著作権表示がある)IBM をうんざりさせていた。 両社の目標は異なっており、合意に達するかどうかはなんともいえなかった。

IBM と Microsoft 間の文化の衝突もあった。IBM の開発プロセスは固定的であり、高度に形式化されていたが、かたや Microsoft はその場でやっつけることを身上とするハッカーたちの会社だった。 まともな設計書やテストなしでコードを書けるような人間がいることが IBM のプログラマには理解できなかった。コードを書くより多くの時間をペーパーワークに費やしてしまえるような人間がいることが Microsoft のプログラマには理解できなかった。

1980年代後半の出版物から明らかなことは、Microsoft は OS/2 に賭けており、彼らがそれを断固として支持していたということである。Microsoft 内部の多くの人々が OS/2 を採用し、あの(IBM と Microsoft の)決裂後もそれを使いつづけたが、単にそれが DOS よりもよい土台であり Windows NT がまだ使えなかったからだった。

286 向けに開発したのが間違いで、OS/2 は最初から 386 用に開発すべきだったという意見がある。それでうまくいったかどうかは疑問だ。 確かに、286 アーキテクチャは DOS の互換性を望むにはかなり問題を抱えていた。だが一方で、OS/2 は 8088 や 8086 マシンがまだ主力で 386 マシンが希少だった時期(1987年)にリリースされた。386 を必須にすれば、OS/2 の潜在市場規模をかなり限定することになるか、リリースを数年遅らせることになるかのいずれかだった。

多くの人が、OS/2 が IBM の PS/2 上でしか動かせないと主張した。まったくこれが事実でないにもかかわらずである。IBM は自社の AT や XT model 286 をサポートしていたし、IBM の OS/2 リリースは正真正銘の AT 互換機なら動くのである。*1Microsoft は OEM ハードウェア移植用の OS/2 を OEM に提供していた。しかしながら、OEM 各社は IBM の動向を非常に警戒しており、OS/2 を PC 市場をふたたび支配下におこうとする IBM の行動の一部――本当にそうだったかはともかく――と見ていた。

OS/2 は DOS を継ぐものとして設計されたのだが、そのことがたぶん問題の元凶だった。OS/2 1.0 は外面的にみて DOS と大きな違いはなかった。新しげなところなんて何もなかった。コマンドラインインターフェースは DOS っぽく動くようになっており、人々が理解したのもそのようなものだった。プロテクトモードでの仮想メモリ利用、プリエンプティブマルチスレッディングといった新しさを人々は見なかった。彼らが見たものは、見た目は DOS に似ていて、メモリとディスク容量がもっと必要で、多くの DOS アプリケーションと互換性がない OS だった。プレゼンテーション・マネージャのついた OS/2 1.1 やその後のリリースも同じ運命だった。それは(あえて繰り返すが)より多くのリソースを必要とし、アプリケーションのサポートが貧弱な Windows のように見えた。

OS/2 の初期バージョンはサポート機器、特にプリンタドライバとディスプレイドライバの不足が深刻な問題だった。これは数の出ていないプラットフォームをサポートする意思のない OEM と、OEM がサポートしないプラットフォームを使おうという意思のない顧客との悪循環、という非主流 OS 共通の流れだった。

IBM と Microsoft が OS/2 の開発ツールで儲けようとしていた戦略的な大失策については多言が費やされてきた。純正の開発キットが 3000 ドルを超える価格だということが広く告知されていた。OS/2 にそれほど本気でなく、その恩恵に確信が持てない開発者には厳しいハードルだった。この高価格は DOS に留まる格好の理由だった。Microsoft の名誉のために言っておかないといけないが、Microsoft はこの過ちを繰り返すことなく、Windows の開発キットは安価で、後には無料になった。*2

IBM と Microsoft の不和によって、相手方がいないほうがうまくいくと思うところの状況がそれぞれに生まれ、かの有名な決裂となった。くわしく書くつもりはないが、その理由の幾分かは、その詳細が謎に包まれているためである。

それほど 32 ビットでもない OS/2

決裂ののち、Microsoft はほぼただちに OS/2 などまるで存在しなかったかのごとく振舞い始めた。とはいえ OS/2 サブシステムは Windows NT 5.0(1999年リリースの Windows 2000)まで存在していたが。この頃までには、32 ビット OS/2 2.0 の開発は比較的進んでいた。Microsoft は DOS 仮想マシンと DPMI サポートに関する多くの作業を行っていた。IBM は開発を引き継ぎ、どうしたものかと考えた。

OS/2 2.0 は新しさも古さもあったが、ここでいう古さは必ずしも悪い意味ではない。それは既存の 16 ビットアプリケーションを極限まで維持しつつ、新しいフラットモデルの 32 ビットアプリケーションをサポートした。そのうえ、OS/2 2.0 は既存の 16 ビットデバイスドライバの大部分を実行することができた。これは実状を考慮した決定だった。すべてのドライバを書き直すことになれば、このバージョンのリリースに要求される労力がかなり増えることになったろうから。

結果的に、OS/2 2.0 のカーネルは非常にハイブリッドなものであり、このことは後のバージョンにおいても真実だった。ハンドチューンされた 16 ビットのアセンブリ言語の部分がカーネル内にかなりあった。そうでない部分は 32 ビットであり、C言語で書かれていた。

事情を知らない人はこのことが、すなわち 32 ビットなはずの OS/2 内に 16 ビットコードが比較的大きな部分を占めていることがが明らかにダメな点だと思い込みたがる。だが事情はそんなに単純ではない。大きな値や巨大なメモリオブジェクトを扱うにあたり 32 ビットコードの利点に疑問の余地はないが、一方で大量の呼び出し、分岐、ループから成るコードではそれほど利点が明白でない。16 ビットコードはサイズが小さくなっているので、キャッシュがより効果的に使え、メモリを圧迫しにくい。さらに重要なこととして、32 ビットのCコードではハンドコードされたアセンブリ言語の性能に匹敵することが難しい。 既存の 16 ビットコードを書き直すにあたり(特にウィンドウ管理とグラフィックエンジン)、IBM はこのことを幾度も思い知らされた。以前の 16 ビットコードの性能に匹敵することはなにしろ簡単ではなかった。

16 ビットアプリケーションやドライバとの高度な互換性保持は、1991 年ごろであればよい判断だったのだが、5年後にはそうではなくなっていた。OS/2 のデバイスドライバは何しろ書きづらいことで悪名高く、16 ビットプロテクトモードを知っているプログラム要員は、そもそも多数だったともし仮にみなしても、どんどん減ってきていた。 同様に、プロセスのアドレス空間に人工的な 512MB の壁をつくるタイルドメモリレイアウトは、OS/2 2.0 リリース時には問題点にならなかったが、後に 512MB 以上の物理メモリが普通になる時期には頭痛の種になった。

ワークプレースシェル――文字通りの「キラー」アプリ

ワークプレースシェル(WPS)はほぼ間違いなく OS/2 の本質的特徴となっていたが、その特徴は旧版 OS/2 のユーザを新しいオペレーティングシステムの中で路頭に迷わせるものだった。OS/2 2.0 に WPS を入れたのは大きな間違いだったと今なお多くの識者が考えている。

WPS は OS/2 2.0 に IBM の印をつけるうまい方法であり、Microsoft Windows との明白な差別化をはかるものだと IBM の経営陣は思ったのかもしれない。これはその通りだったが、いっぽうで WPS はかなりの問題児でもあった。

旧版 OS/2 の開発者の中には、WPS が OS/2 2.0 のリリースを1年ほど遅らせたのではないかと考える人もいる。このことが、32 ビット OS/2 が Windows 3.1 出荷前という絶好の機会を逸した原因となった。なお悪いことに、WPS は 1992 年初期には時期尚早だった。不安定で安心できず、OS/2 ユーザは INI ファイルが壊れることに対して何かしらの対策を考えないわけにいかなかった(壊れやすい INI ファイルに依存していることも、IBM が決して直さなかった多くの不具合のまたひとつだ)。

Microsoft が Windows NT 3.1 を、その舞台裏が似ても似つかぬものであるにもかかわらず、まるで Windows 3.1 のようなインターフェースでリリースした理由がたぶんここにある。IBM はすでに存在するプレゼンテーションマネージャ(初期 の OS/2 2.0 beta が使っていたやつ)をつけて OS/2 2.0 をリリースし、OS/2 1.3 からの移行を容易にするということもおそらくできたはずだ。

WPS がまるでダメだったと言っているのではない。それは革新的なユーザインターフェースで、きわめて柔軟かつパワフルだった。 しかし、OS/2 バージョン 2.5 とかその程度の頃に WPS を同梱したほうがよかったのかもしれない。OS/2 2.0 にとって、WPS はいろいろな意味でキラーアプリだった。

マイクロソフトの独占

はっきり認められるのは、競争を排除せんとするマイクロソフトの試みが OS/2 に損害を与えたということである。 1992年までに、マイクロソフトは OEM プリインストール市場を掌握していた。アメリカ合衆国においては、IBM が 非 IBM マシンに OS/2 をプリインストールする機会は事実上まったくなかった。それどころか Microsoft は、特に Windows95 のロイヤリティをより高額で要求することで、IBM が自社のシステムにでさえこの OS をプリインストールしにくくした。 ドイツで OS/2 がプリインストールPCが販売されたことがあった(Vobis 他)が 、Microsoft は見逃さず短期間で終わった。 これは、儲かるうえにサポートが安く済む(同じ機種1万台のほうが、ばらばらの機種10台よりサポートはだいぶ簡単)ものである貴重なプリインストール市場を IBM から奪った。

ソフトウェア面でもまた、Microsoft は容赦ない(そしておそらくは卑劣な)攻撃を行った。 Win32s のリリースが新しくなるたび、不思議なことに Win-OS/2 がおかしくなり、IBM は問題を抱えつづけることになった。 Windows 2000 がインストール時に理由もなくブートマネージャを潰してしまったときもそうだったが、人々にできるのは、Microsoft がわざと OS/2 相手に嫌がらせを行っているのか、ただ OS/2 でのテストをする気がないだけのどちらかのかといぶかしむことだけだった。 Microsoft には競合製品を潰してきた前科があった(Windows 3.1、DR-DOS、AARD コードについて調べてごらんなさい)が、意図の立証は非常に困難もしくは不可能である。

Microsoft は、可能な限りいかなる時でも OS/2 を貶めてきた。OS/2 からの「アップグレード」という記述のある MS-DOS 6 のインストールガイドを読んだとき、Windows NT を DOS で上書きインストールすることを Microsoft はアップグレードとみなすだろうか、と人は思わずにいられない。 明らかに Microsoft は OS/2 を深刻な脅威だと見ていた。IBM 規模の会社が OS/2 に本当に本気だったなら、Microsoft の市場シェアに大いに削ることができたであろうことを Micosoft は知っていた。

IBM、最大の敵

言うまでもなく、IBM 最大の敵の名は「I」で始まる3文字である。OS/2 を引き継いだとき、IBM は実のところその準備がまだできていなかった。 さらに決定的なこととして、主流オペレーティングシステムの開発とサポートは、IBM の中心業務からいささか外れたことでもあった。

IBM は事業者間の取引関係に本分を負う企業である。IBM はビジネスサポートの長い経験を持ち、これに非常に長けていた。IBM がまるで不得手なのはエンドユーザのサポートで、IBM 自身がそのことに気づいたのは OS/2 2.0 をリリースしてからのことだった。そりゃあうまくいかなくもなるだろう。

IBM は Microsoft に比べるとはるかに散漫で、とりわけ1990年代初期がそうだった。この当時、IBM は何十年もの歴史と全世界に数十万人の従業員をもった巨大企業だった。こちらでやっていることをあちらは全然知らないということが往々にしてあり、顧客にしばしば失望と落胆をもたらした。

たとえば、IBM のソフトウェア(OS/2)がプリインストールされた IBM のハードウェアを購入するできないのは何故なのか一般の人々には納得がいかなかった。実のところパーソナルシステム事業部(PSP)と PC Company はほぼ別会社となっていた。 PC Company が重視していたのは自社の利益であり(これは Microsoft が請求するプリインストール料金に依存していた)、PSP のことではなかった。

それに比べて Microsoft はまだ比較的若い企業で、非常に結束的で果敢であり、創業者に率いられていた。OS/2 にかかわっていた IBM 社員は熱意にあふれ、OS/2 を我が子のように思っていたとはいえ、IBM 全体が彼らの味方だというのはかなりの誇張になるだろう。

Power の失敗

OS/2 の命取りになった、主要にしておそらく最大の原因は、Workplace OS(WPOS)とも呼ばれた、かの呪わしき OS/2 for PowerPC プロジェクトであると考える人はかなり多い。

WPOS の背後にいかなる戦略があったのかというのは興味のあるところだ。それは非常に野心的な計画であり、実際あまりに野心的すぎた。 ある IBM 社員がいうには、WPOS は難題にたいするひとつの回答である。 それはあまりに多くのことを一度にやろうとした。検証されていない新規ハードウェアプラットフォーム上に大規模な新規ソフトウェアプラットフォームを作成することである。

OS/2 for PowerPC が非常に現代的な OS であることに疑問はない。移植性の高いマイクロカーネルをベースにしながら既存 API との互換性を保持している(何年かのち、Apple は同じことを OS X でもっとうまくやった)。 WPOS の OS/2 部は詳細に見直され現代風になり、当時現行のインテル版 OS/2 Warp 3 に比べて多数の制限が撤廃された。しかし、最終段階では当初の案に比べ計画が大幅に穏当かつスケールダウンしたものになったにもかかわらず、PSP 事業部は OS/2 for PowerPC を期限通りに提供できなかった。

WPOS プロジェクトは何十億ドルもを費やし、成果はじつに少なかった。 まだ間違いなく Windows に対抗するチャンスがあったものの IBM 経営トップから見放されつつあるという、おそらく最悪の時期にこうなった。 インテル版 OS/2 Warp に資金と労力をつぎ込むこともなく、OS/2 for PowerPC は失敗し、成果の大部分は無駄に終わった。この失敗が IBM 内で PSP 事業部解体の原因になったことはほぼ間違いない。 WPOS の失敗が、PowerPC をデスクトップ CPU の主流に押し上げようという、OS/2 とまるで無関係というわけでもなかった試みに対する説得力を失わせるところ大であったと言えるかもしれない。

1996 年の時点で、IBM 上層部は OS/2 の段階的な終了をすでに決定していた。OS/2 Warp 4 は最後の雄叫びだったが、IBM がそうだったように、それには方向性や焦点が欠けていた。Warp Server for e-Business での進歩にもかかわらず、IBM は OS/2 の開発を終了し、アーキテクチャの大きな変化はなくなった。顧客は他のプラットフォームへの変更を勧められた。彼らの大部分はもうそうしていたのだが。

結論

OS/2 1.0 のリリースから20年を経ており、OS/2 はもはや有効勢力でないと言っても差し支えないだろう。あらゆる点を考慮したならば、OS/2 は長命であり、その生涯はそれほど悪いものでもなかった。 たしかに評論家たちは 1990 年以前から OS/2 は風前の灯と予想し、その後何年も何年も何年も同じことをうんざりするほど言いつづけることになった。1996 年、ともかく OS/2 にとっての決着がついたとき、IBM がさらに10年このプラットフォームをサポートするとはたぶん誰も思っていなかっただろう。

もちろん、IBM がもはや OS/2 を販売しないという事実は、すべての人が OS/2 を使わなくなることを意味していない。2005 年の時点にあっても、OS/2 をインストールした状態の新しい機器を数千台もしくは数万台規模で出荷している大企業が存在する。このシステムはむこう1、2年のうちに稼動に入るはずだ。

特化した産業用途によっては、別のプラットフォームへの移行よりも OS/2 の利用を継続するほうが安上がりなことがある。ある企業がどうしても必要な OS/2 ベースのアプリケーションを持っている場合、リライトは高くつき、利益はほとんど皆無となる。より新しいオペレーティングシステムに変更するより、ハードウェア要件を OS/2 に合わせるほうがかなり安価になることがある。

そして単に、壊れてないんだから直す必要もないだろうということで OS/2 をずっと使っている人がいる。2004 年を過ぎてからも依然として、最終リリースからゆうに10年は経た OS/2 1.x を使いつづけている頑固者がいることを私は知っている。 こういうことが現在版の OS/2 にも起こりうる。 とくに今なら、仮想マシンで最近の OS/2 リリースが非常にうまく動き、しかもこれならハードウェアアップグレードにまつわる不具合を回避できる。OS/2 は死んでいるかもしれないが、消え去りはしない。

OS/2 は市場を失ったのかもしれないが、それはコンピュータ史の重要な一章であり、20年というのは平均的なオペレーティングシステムの寿命よりも長い。 OS/2 は多数の新機軸を開拓し、その存在によって、まったく OS/2 を使わなかった人々さえもおそらく何かしらの恩恵を受けたのである。

(てきとうなコメント)

OS/2 の歴史に関して自分で調べてみようと思っても、信用できそうな一次資料があまり見つけられない(もちろん Wikipedia は論外ですよ)。 PC史の「一般教養」として OS/2 を考える場合に知っておきたいことについては、OS/2 サポート終了に寄せて書かれた PC Watch の元麻布氏の記事を読んでおけばほぼOKだと思う。

あとは(マイクロソフトや)IBM について書かれた書籍か。 OS/2 終了が決定された時期の IBM に関しては『巨象も踊る』という有名な本があるが、OS/2 に関する記述はあまりない。 というより、『巨象も踊る』を読む限り、OS/2 に関してガートナーが下した意思決定はすべて敗戦処理である。 OS/2 に関する主要なドラマはガートナー以前に終わっている(『巨象も踊る』を読んでいると、OS/2 Warp がガートナー時代にリリースされた製品だということを忘れそうになる。ちなみに OS/2 for PowerPC について、ガートナーは何も書いていない)。

マイクロソフトと IBM の確執について知りたいなら『ビッグブルース』を読むのがいいと思う。 これは IBM PC 登場前後からガートナー就任直前までの、ぶっちゃけ IBM がいちばんダメだった時期を書いたもので、多数の IBM 上級幹部に取材を行っている力作だが、ときどきあまりにも初歩的な技術的間違いがあるせいで、手放しで信用したくなくなる時がある(いちばんひどいのは、アップルII の CPU がモトローラ製という記述。誰も指摘してやらなかったのかよ…。ある意味 MOS テクノロジーは世界一不遇な CPU メーカだよなあ)。

以下あとまわし。

  • ワークプレース OS って結局どういうもんか当時はよくわからんかったけど、今にして思えば「仮想化」みたいなもんだったのかねえ。仮想化じたいはメインフレーム方面で鍛えられた技術だから IBM には知識があったわけだ。ただ PC 用プロセッサにそのへんを実用レベルでこなすための支援機構(VT-x とか AMD-V とか)がつくようになったのがここ数年のことだから、やろうとしてたことが10年は早かったことになる。
  • PowerPC 向けのあれこれについては、アップル方面(Mac 互換機に関することも)の資料からもアタリをつけたほうがよさそうではある。

(てきとうな訳注)

*1 つまり、ハードウェアや BIOS 実装などの互換性が低く、DOS(や Windows)は動くのだが OS/2 は動かせない、という IBM PC/AT 互換機が多く存在したらしい(「OS/2 は互換機潰しの策略か」という陰謀論が半分本気で囁かれていたらしい)。

*2 Windows 3.1 時代の個人的記憶によると、Windows 3.1 日本語版 SDK(コンパイラは別売り)の標準小売価格は、書籍のリファレンスつきのものが59800円、リファレンスなしだと10000円だった。無料でダウンロードできるようになったのは Win32 時代になってから