86-DOS

86-DOSは、16ビットのディスクオペレーティングシステムである。元々はシアトル・コンピュータ・プロダクツ（Seattle Computer Products : SCP）から販売されたIntel 8086ベースのコンピュータ・キット用に、1980年にティム・パターソンが4ヶ月で開発した。最初のPC DOS（MS-DOS）は、86-DOSをベースに作られた。86-DOSはコマンドの一部がCP/MとOS/8（英語版）と共通しており、APIもデジタルリサーチ社のCP/Mに似ているため、プログラムの移植が容易であった。 86-DOSは発売前にはQDOS（Quick and Dirty Operating System、即席で粗雑なオペレーティングシステム）と呼ばれていたが、シンクレア・リサーチ社のSinclair QLコンピュータ用OSであるQDOSとは無関係である。 SCPは1979年6月に8086コンピュータ・キットのデモを行い、11月から出荷を開始したが、オペレーティングシステムが不足していたため、販売に苦戦していた。そのため、86-DOSの前身となるQDOSを開発した。ボードと一緒にSCPが提供していたソフトウェアは、スタンドアロンのMicrosoft BASIC-86だけであった。マイクロソフトは新しいプロセッサ上でソフトを動かすことに非常に熱心で、開発用にSCPから8086ボードのプレリリース版を借りており、6月のデモにも参加していた。 当時のマイクロコンピュータ用の主要なオペレーティングシステムはデジタルリサーチのCP/Mであったが、1980年の時点では16ビット版は存在していなかった。SCPは開発用ボードをデジタルリサーチに提供しておらず、デジタルリサーチが興味を示さなかったのか、CP/Mの16ビット版をデジタルリサーチが開発することはないだろうとSCPが考えたのかは明らかではない。当時動作するプロトタイプはSCPの社内にも2台しかなかった。利用可能なオペレーティングシステムがないまま、パターソンは1980年4月にQDOSの開発を始めた。 パターソンが設計した86-DOSは、内部のAPIがCP/Mと同じであり、ユーザコマンドの一部も共通していたが、独自のコマンドもいくつか導入されていた。DECミニコンピュータで使われていたコマンドに似たCP/MのPIP「ファイル・コピー・サブシステム」は、「COPY」コマンドに置き換えられた。PIPでは「コピー先=コピー元」とタイプして実行するのに対し、「COPY コピー元 コピー先」という形に単純化され、PDP-11オペレーティングシステムの流れを汲むVAX/VMSのCOPYコマンドと同様になった。また、CP/Mはフロッピーディスクを入れ替える時にコントロールキーを打たなければならず、評判が悪かった。 QDOSが86-DOSとして販売された際には、CP/Mの特徴の多くが取り入れられなかった。パターソンはCP/Mのファイルシステムをそのままコピーせず、Microsoft BASICのいくつかのバージョンで採用されたFATファイルシステムを使用した。 1980年後半、IBMはIBM PCのプロトタイプを開発していた。当時最も普及していたオペレーティングシステムはCP/Mであり、IBMは競争のためにはCP/Mが必要だと考えていた。最終的にIBMはCP/Mではなく86-DOSを採用することになった。その理由には諸説ある。 CP/Mの開発者であり、後にDR-DOSも開発するデジタルリサーチ社のゲイリー・キルドールは、IBMの職員と会うことを避けていたと言われている。また、キルドールがデジタルリサーチ社を訪問したIBMの重役たちを何時間も待たせ、自家用飛行機を飛ばしていたというビル・ゲイツの話が有名である。IBMはマイクロソフトからオペレーティングシステムの提供を受けることになり、キルドールは大きなチャンスを逃した。ただし、いずれの話も真実かどうかは不明である。 パターソンらによれば、キルドールは商談には関与せず、弁護士である妻のDorothy McEwenに任せていた。パターソンは「彼女がIBMとの秘密保持契約（NDA）へのサインを嫌がった」と語っている。また、キルドールがNHKスペシャル『新・電子立国』のインタビューで語ったところによれば、IBMの重役が最初にデジタルリサーチを訪れた際、キルドールは既にサンノゼで別の商談の予定が入っていたため、妻に代わりに対応してもらった際にNDA締結を巡るトラブルがあったという。ただし、キルドールの同僚であるゴードン・ユーバンクスは「彼女はサインした」と言っている。ユーバンクスは「キルドールはPL/1コンパイラに取り組んでいたので、当時はCP/Mの16ビットプロセッサへの移植には興味がなかった」とも述べている。 他の説では、IBMとデジタルリサーチ社が価格面で折り合わなかったとされている。IBMは250,000ドルでCP/Mを丸ごと買い取ることを提案したが、キルドールは1コピーあたり10ドルのライセンスを希望していた。 少なくとも、IBMとデジタルリサーチの間で具体的にCP/Mの供給を巡り複数回の交渉が行われたことや、IBMが250,000ドルでCP/Mを買い取りたいという提案をしたことはキルドール自身が認めている。NDAを巡るトラブルが当初あったにせよ、その後両社の間でNDAが結ばれ、具体的な価格交渉が行われたことは間違いないと思われる。ただし、この交渉に関してIBM側の関係者とキルドールの証言が大きく食い違っているのも事実で、NHKのインタビューに対しIBM側の交渉担当者だったジャック・サムズは「キルドールとは一度も会っていない」と語っているのに対し、キルドールは「サムズとは複数回会って交渉した」と語っている。真相は依然謎に包まれている。 結果的にIBMはマイクロソフトにオペレーティングシステムの提供を依頼し、マイクロソフトもそれを受諾した（マイクロソフトは既にPC用のROMBASICインタプリタも提供していた）。 1980年12月、マイクロソフトはシアトル・コンピュータ・プロダクツ（SCP）から86-DOSの非独占的ライセンスを25,000ドルで購入した。1981年5月にはティム・パターソンを引き抜き、86-DOSをIBM PC（安価だが遅い8088とそれ用の周辺チップを使用）に移植させた。IBMは開発に密に関与し、受領前に300以上のバグを報告し、ユーザーマニュアルも作成した。 PCのリリース1ヶ月前の1981年7月、マイクロソフトはSCPから86-DOSの全権利を50,000ドルで購入した。これにより、IBMの主な要求を満たすことができた。86-DOSは見た目がCP/Mに似ており、TRANSコマンドを使って8080のソースファイルを8086の機械語に変換できるため、既存の8ビットCP/Mプログラムを簡単に移植できた。マイクロソフトは86-DOSをIBMにライセンスし、PC DOS 1.0として提供した。このライセンスでは、マイクロソフトが他の会社にDOSを販売することも認められており、実際に販売が行われた。取引は大成功を収めたが、後にSCPはマイクロソフトを訴えた。マイクロソフトはIBMと秘密保持契約（NDA）を結んでおり、IBMとの関係を公にすることは契約に反していたが、SCPはマイクロソフトがオペレーティングシステムを安く買い取るためにIBMとの関係を秘密にしていたと主張した。最終的には100万ドルで和解した。 IBMはDOSを60ドルで販売し、その価格設定は240ドルのCP/M-86よりもはるかに魅力的だった。デジタルリサーチ社は、CP/Mのシステムコール、プログラム構造、ユーザーインターフェイスのほぼすべてがDOSに模倣されていたため、マイクロソフトを訴えることを考えたが、結局は取りやめた。マイクロソフトを訴えればIBMも訴えなければならなくなり、IBMのような巨大な企業を相手に裁判で戦える資金がなく、勝てる見込みがないと考えられた。 1982年までに、IBMがハードディスクに対応したDOSのバージョンをマイクロソフトに依頼した際、PC DOS 2.0はDOSのほとんどを再構築していた。1983年3月までには、86-DOS由来のソースコードはごくわずかに残るだけとなっていた。86-DOS由来のソフトウェアで最も長く生き残った部分は、原始的なライン・エディタのEDLINである。QBasicを元にしたグラフィカルなエディタ（EDITとして知られている）が同梱されたMS-DOS 5.0が1991年6月にリリースされるまで、EDLINはマイクロソフト版のDOSで提供されていた唯一のエディタであった。 2016年に、ザイドマン・コンサルティングのボブ・ザイドマンは、デジタルリサーチが開発したCP/Mと、ティム・パターソンが開発し、長年前者のコードを基にしたと疑われていたDOSのソースコードを比較し、初版のDOSのソースコードがCP/Mのソースコードを基にしているかどうかを調べた。 DOSとCP/Mのコマンドを比べると、一致するものはごくわずかである。DOSとOS/8のコマンドの間には、DOSとCP/Mの間よりも共通するコマンドが多く見られる。これは、当該コマンドが全て動作を直接表す英単語であることが原因である。 しかし、両OSのシステムコールを分析すると、DOSのシステムコールが明らかにCP/Mのシステムコールを模倣していることがわかる。同じ機能を表す同じ数字がいくつもあり、ティム・パターソンがDOSを開発する際にCP/Mの説明書を参考にしたことは明らかである。 ザイドマンの結論は、DOSはCP/Mのコードを一切基にしていないとされるが、システムコールの多くが模倣されたとのことである。 QDOS v0.1 1980年8月 86-DOS v0.3 1980年12月 86-DOS v1.0 1981年4月 ^ a b c NHKスペシャル『新・電子立国』第1巻「ソフトウェア帝国の誕生」（相田洋著、日本放送出版協会、1996年）pp.276 - 281 ^ Freiberger, Paul; Michael Swaine (2000) [1984]. Fire in the Valley: The Making of the Personal Computer (2nd edition ed.). New York: McGraw-Hill. pp. pp. 332-333. ISBN 0-07-135892-7. http://www.fireinthevalley.com/  ^ Bob Zeidman (2016-10-18). “Source Code Comparison of DOS and CP/M” (英語). Journal of Computer and Communications (Scientific Research Publishing) 4 (No.12). doi:10.4236/jcc.2016.412001. https://www.scirp.org/journal/paperinformation.aspx?paperid=71259 2021年10月3日閲覧。.  MS-DOS CP/M CP/M-86 Tim Paterson's brief history of QDOS/86-DOS