ビル・ゲイツにおけるソフトウェアの互換性重視戦略

  1. CP/M-80との互換性を、CP-M/86よりも重視したMS-DOS
  2. マイクロソフトのビル・ゲイツ(Bill Gates)は、『MS-DOSエンサイクロベディア Volume 1:システム解説編』(アスキー)[Woodcock(1989,pp.7-8)]の刊行に寄せた文章の中で、ソフトウェアの互換性に関して次のように述べている。

    MS-DOSの作成に当たって最も重要な3つの要因は、互換性の進化、Microsoft BASICの開発とパーソナルコンビュータ業界からの広範な支持、そして、IBMによる16ビットのテクノロジーを取り込んだコンビュータの製造の決定であった。(IBM PCに対する)支持と人気にとって、MS-DOSは必要欠くべからざるものだった。」
    「1975年から1981年(8ビットマイクロコンピュータの時代)にかけて, Microsoft社は,事実上すべてのコンピニータメーカー(Raclio Shack、Commodore、Appleをはじめとする何十もの会社社)のそれぞれのマシンに、Microsoft BASICの搭載を決心させるに至った。初めて、すべてのハードウェアメーカーが足並みをそろえて共通の言語を持ったのである。我々のBASICの成功は、互換性の利点を世に示した。
    「我々はさらにMS-DOSの拡張を続け、MS-DOSが業界標準の地位に保たれるための本質たる互換性を犠牲にすることなく、もっと強力なコンピュータもサポートしてきた」

    このようにゲイツは、PC用ソフトウェア市場におけるソフトの互換性の重要性を認識するとともに、マイクロソフトの相対的競争優位の確保のために互換性確保を意識的に追求してきた。
    そのためMS-DOSの開発に際しては、8ビットPC用OS市場で事実上の標準になっていたCP/M-80との互換性確保を重要目標とすることで競争優位の確保を目指したのである。

    MicrosoftがMS-OOSの最初のバージョンを開発する際の目標の1つは, CP/M-80からMS-OOSへのソフトウェアの移植互換性である。」Woodcock(1989,p.32)
    「8086は8080と互換性はなかったが、そのアーキテクチャは8080とよく似ており、8080のソースコードは機械的に変換すれば8086の上で動作するようになっていた。Tim Patersonの8086用のオペレーティングシステム、およびこのシステムの影響を受けたMS-OOSの最初のパージョンの設計方針は、8080用のコードが8086用のコードに変換できることに大きく影響を受けている。」Woodcock(1989,p.13)
    「広範囲なアプリケーションや言語をユーザーが確実に使えるようにするには、8086用の標準的なオペレーティングシステムが絶対必要であると、Paterson(QDOSの仕事をしていた)もRod Brockも考えていた。CP/Mはすでに8ビットマシンの標準となっていたため、既存のCP/Mアプリケーションを機械的に変換して16ビットシステムで実行できるようにすることは、新しいオペレーティングシステムに向けての大きな目標の1つとなった。このような互換性を達成するために、彼が開発したシステムはFCBを採用し、実行可能ファイルへのアプローチの方法などの点でも、CP/M-80のファンクションとコマンドの仕様を模倣していた。」Woodcock(1989,pp.15-16)
    「当然のことながら、MS-DOSはまずCP/M-80、次いでCP/M-86と比べられた。最大の関心事は互換性だった。Microsoftの新しいオペレーティングシステムは、いったいどの程度まで既存の標準と互換性があるのだろうか。」Woodcock(1989,p.30)
    「最初にリリースしたMS-DOSver.l.Oは、Microsoftが思い描いていた16ビットコンビュータシステムのオペレーティングシステムの最終的な形とは違っていた。Bill Gatesによれば、「基本的に私たちがやりたかったことは、階層的ファイルシステムなど、どちらかといえばMS-DOSver.2に近いものだった。(ver.l.Oを開発する上で)鍵になったことは、『まず、サブセットでいこう。それから前進するのだ』という私の言葉だった」。/最初の版(GatesいうところのMS-DOSのサブセット)は、実際のところ、現在と未来の聞の良き妥協であった。それは、2つの点から語ることができる。まず、MicrosoftがIBMの開発計画に合わせることができたということ、そしてCP/Mとの間でプログラム変換による互換性を維持していたということである。」Woodcock(1989,p.23)
    既存の言語やWordStar、dBASEIIなどの人気のあるアプリケーションを使えるようにするために、MS-DOSは、ソフトウェア開発者が8080のソースコードを8086で実行できるかたちに機械的に変換できるように設計されていた。このために、MS-DOSはCP/M-80のように見えたし、そのように動作した。そのころCP/M-80は、まだマイクロコンビュータのオペレーティングシステムの標準だった。この8ビットの親戚と同様、MS-DOSは8文字のファイル名と3文字の拡張子を使用するほか、コマンドプロンプトの中でディスクドライブを識別する習慣を踏襲した。ほとんどの場合、MS-OOSはCP/Mと同じコマンド言語を使い、同様なファイルサービスを提供し、一般的な構造もCP/Mと同じになっていた。さらに、プログラミングレベルでの類似性には目を見張るものがあり、アプリケーションで使うことのできるシステムコールでは、CP/MとMS-DOSはほとんど1対1の対応を付けることができた。」Woodcock(1989,pp.23-24)

    MS-DOSとCP-M/86のOS競争において最終的にMS-DOSが勝利した技術的要因の一つに、ディスクを管理するFATのデザインやシステム・コールの仕様などで、MS-DOSのほうがCP/M-80との互換性が高かったことに関しては、下川和男氏も次のように述べている。

    「デジタルリサーチが、16ビット用ということで、CP/M-86に豊富な機能を盛り込んだのに対し、MS-DOSは、インテルの8086の設計思想と同様に、8ビットとの互換性を重視したのである。結果として素直に16ビットへの移行が行えるMS-DOSのアプリケーションが増加し、CP/M-86は消えていった。」下川和男(1994)
     
  3. ゲイツにおける「各社ミニコン用ソフトウェア間の互換性欠如問題」に関する認識
  4. 「互換性の進化は、Intel8080マイクロプロセッサの登場に始まる.この技術的な革新が、姿を見せ始めていたマイクロコンビュータ業界に空前の好機をもたらし、デスクトップにおけるコンビュータ利用のパワー、スピード、コストが持続的に改善されることが約束された。ミニコン市場における各ハードウェア製造業社は、それぞれ独自の命令セットとオペレーティングシステムを持っていた。したがって、特定のマシン用に開発されたソフトウェアは、他社のマシンとは互換性がなかった。この特殊化はまた、驚くべき努力の重複をも意味していた。メーカー各社はそれぞれの機種ごとに、言語コンパイラ、データベース、その他の開発用ツールを書かなくてはならなかったのである。8080マイクロプロセツサベースのマイクロコンビュータの登場によって、異なったメーカーが同ーの命令セットを持った同ーのチップを購入すると思われたので、状況は一変するものと期待された。」Woodcock(1989, p.7)
     
  5. MS-DOS vs CP-M/86
  6. IBM PCが発売された当時は、マイクロソフトのMS-DOSがIBM PC用の標準的OSとなるとは考えられてはいなかった。実際、「InfoWorld誌の1981年のベストセラーリストの10本のプログラムのうち9本までがCP/M-80、またはCP/M-86で動作するものだった。CP/M-86が使えるようになったのは6か月後だが、商業誌などでほとんどのライターや評論家が選ぶオペレーティングシステムになっていた。」Woodcock(1989,p.30)のである。「MS-DOSがCP/Mに追い付くばかりか、追い越してしまうだろうということを予見した者は1人もいなかった。Bill Gatesでさえこう回顧している。「MS-DOSを使っているマシンの数は、最も楽観的な予測の数字でさえ、実際よりも少なかった」。まず第一に、IBM PCというマシンの成功が多くの産業評論家を驚かせた。発売後1年の聞に、IBMは月当たり30、000台のPCを売った。その大部分は、すでにIBMの名前と評価に親しみを感じているビジネスコミュニティ向けであったが、後から振り返ってみる限りでは、時代がパーソナルコンビュータに向かっていたことも事実である。もちろんMS-DOSは、このIBM PCの成功によって大きな利益を得ている。それは、IBMがすべての言語とアプリケーションをMS-DOSのフォーマットで提供したためである。
    しかし、商業誌のライターは最初はまだCP/Mの優位を信じ、CP/M-80によって支配されている世界の中で、新しいオペレーテイングシステムが生き残る可能性について疑問を持っていた。彼らの多くは、CP/M-86マシンがCP/M-80アプリケーションを実行することができるという間違った認識を持っていた。CP/M-86が使えるようになる前から、Future Computing誌はIBM PCを、CP/Mレコードプレーヤと呼んでいた。これは、新しいコンビュータがCP/Mアプリケーションの膨大な資産を受け継ぐことを期待して、PCは実際にはCP/Mマシンであると考える方向に読者を誘導しようとしたものだった。
    しかし、Microsoftが確信していたのは、まったく別のことだった。IBMのマシンおよびその他の16ビットマイクロコンビュータの成功の鍵は、業界の標準となる16ビットオベレーティングシステムが出現するかどうかだということだった。」Woodcock(1989,pp.30-31)

     
    [参考文献]
    Woodcock, Joanne(日笠健、長尾高弘監訳、1989)「MS-DOSの開発」『MS-DOSエンサイクロベディア Volume 1 システム解説編』アスキー
    下川和男(1994)「ビル・ゲーツに囲まれて(前編) —- Windows HeartBeat #10」『月刊Windows World』(発行:IDG社)1994年5月号、http://www.est.co.jp/ks/billg/10_GATES.htm