86-DOS(社内ではQDOS [ 1 ] Quick and Dirty Operating Systemとして知られている)は、Seattle Computer Products(SCP)がIntel 8086ベースのコンピュータキット向けに開発・販売した、現在は販売終了しているオペレーティングシステムである。
86-DOSはOS/8やCP/Mなどの他のオペレーティングシステムといくつかのコマンドを共有していたため、後者からのプログラムの移植が容易でした。そのアプリケーションプログラミングインターフェースはCP/Mのものと非常によく似ていました。このシステムはライセンス供与され、その後マイクロソフトに買収され、 MS-DOSおよびIBM PC DOSとしてさらに開発されました。[ 2 ]
86-DOS は、1979 年 6 月にデモが行われ、11 月に出荷されたSeattle Computer Productsの8086コンピュータ キットの販売が、オペレーティングシステムがないために低迷していたために作成されました。[ 3 ] SCP がボードと一緒に販売できる唯一のソフトウェアは、Microsoft が SCP のハードウェアのプロトタイプで開発した、 Microsoft のStandalone Disk BASIC-86でした。 [ 3 ] SCP は、Digital Research が当初 1979 年 11 月に発表した 8086 版のCP/Mを提供したいと考えていましたが、延期され、リリース日は不確実でした。[ 4 ] Digital Research がハードウェア開発に遅れをとったのはこれが初めてではありませんでした。2 年前には、新しいフロッピー ディスクフォーマットやハードディスク ドライブへの CP/M の対応が遅れていました。1980 年 4 月、SCP は 24 歳のTim PatersonにCP/M-86の代替の開発を依頼しました。[ 3 ]
パターソンは、 CP/M-80 マニュアルを参考にして、そのアーキテクチャとインターフェースをモデルに 86-DOS を開発しましたが、既存の多くの8 ビットCP/M プログラムのソース レベルでの容易な (そして部分的に自動化された) 変換を可能にするために、Intel の 8086 16 ビットプロセッサの要件を満たすように調整しました。 [ 4 ]それらを DOS または CP/M-86 に移植することはほぼ同じくらい難しく[ 6 ] 、Intel が既に CP/M が設計されたIntel 8080プロセッサから新しい 8086 命令セットにソフトウェアを自動的に変換するために使用できる方法を公開していたため、作業は容易になりました。 [ 4 ]同時に、彼は CP/M の欠点と見なした点に対処するために、多くの変更と強化を行いました。CP/M は速度のためにファイルシステム情報をメモリにキャッシュしましたが、そのためにはユーザーがディスクを取り外す前に強制的に更新する必要がありました。ユーザーが忘れると、ディスクが破損します。パターソンは、より安全だが処理速度の遅い方法として、操作ごとにディスクを更新する方法をとった。CP/M のPIPコマンドはファイルをコピーする機能で、プリンタや通信ポートなどのハードウェア デバイスを参照する特殊なファイル名をいくつかサポートしていた。パターソンは、これらの名前をデバイス ファイルとしてオペレーティングシステムに組み込み、どのプログラムでも使用できるようにした。彼はコピー プログラムに、より直感的なCOPYという名前を付けた。CP /M のファイルシステムを実装する代わりに、彼は Microsoft Standalone Disk BASIC-86 のファイル アロケーション テーブル(FAT)ファイルシステムを利用した。[ 2 ]
1980年半ばまでに、SCPは86-DOSを宣伝し、1,290米ドルの8086ボードの所有者には95米ドル、それ以外の人には195米ドルで販売した。同社は、このソフトウェアがCP/MディスクからZilog Z80ソースコードを読み込み、8086ソースコードに変換できることを宣伝し、8086バイナリを生成するには「わずかな手動修正と最適化」しか必要ないことを約束した。[ 7 ]
1980 年 10 月、IBM は初代IBM パーソナル コンピュータとなるものを開発していました。当時、CP/M は圧倒的に人気のあるオペレーティングシステムであり、IBM は競争力を維持するために CP/M が必要だと感じていました。IBM の担当者は Digital Research を訪れ、Digital Research のライセンス担当者であるDorothy Kildall (旧姓 McEwen) とライセンスについて話し合いましたが、彼女は IBM の秘密保持契約に署名することをためらいました。後に NDA は受け入れられましたが、Digital Research はIBM が販売できるすべてのコピーと引き換えに25 万米ドルを支払うという IBM の提案を受け入れず、通常のロイヤリティベースのプランを主張しました。[ 8 ]後に IBM とBill Gatesの間で行われた話し合いで、Gates は 86-DOS の存在に言及し、IBM の担当者 Jack Sams は彼にそのライセンスを取得するように言いました。
マイクロソフトは1980年12月にシアトル・コンピュータ・プロダクツ[ 9 ]から86-DOSの非独占ライセンスを2万5000米ドルで購入した。 1981年5月、同社はティム・パターソンを雇い、IBM PC [ 3 ]にシステムを移植させた。IBM PCは、より低速で安価なIntel 8088プロセッサを使用し、独自の周辺機器群を持っていた。IBMは開発状況を毎日監視し[ 3 ] 、製品を受け入れてユーザーマニュアルを作成するまでに300件以上の変更要求を提出した。
1981年7月、PC発売の1か月前に、マイクロソフトはSCPから86-DOSの全権利を5万ドルで購入した。[ 3 ] [ 10 ] [ 11 ]これはIBMの主な基準を満たしていた。CP/Mに似ており[ 2 ] 、特に8080から8086マシン命令にソースファイルを変換するTRANSコマンドのおかげで、既存の8ビットCP/Mプログラムを簡単に適応させることができた。マイクロソフトは86-DOSをIBMにライセンス供与し、PC DOS 1.0となった。このライセンスにより、マイクロソフトはDOSを他の企業に販売することも許可され、実際に販売した。この取引は大成功を収め、SCPは後に裁判で、マイクロソフトがオペレーティングシステムを安く購入するためにIBMとの関係を隠蔽したと主張した。SCPは最終的に100万ドル の和解金を受け取った。
デジタルリサーチ社の創業者ゲイリー・キルダルは、 PC DOSを調査した結果、CP/Mのプログラミングインターフェースを模倣していることに気づき、当時PC DOSは自社製品だと主張していたIBMを訴えようとした。しかし、デジタルリサーチ社の弁護士は、訴訟を起こすには関連法が明確ではないと判断した。それでもキルダルはIBMに詰め寄り、責任免除と引き換えにPCにCP/M-86を同梱するよう説得した。
両システムの類似性については論争が続いている。おそらく最もセンセーショナルな主張はジェリー・プールネルによるもので、キルダルがDOSにCP/Mコードが含まれていることを個人的に証明するために、キルダルの名前を表示するコマンドをDOSに入力したと述べている[ 12 ] [注1 ]が、プールネルはそのコマンドを明かさず、彼の話を裏付ける者も現れていない。2004年に出版されたキルダルに関する本には、彼がそのような暗号化されたメッセージを使用して他のメーカーがCP/Mをコピーしたことを証明したと書かれているが、彼がDOSでそのメッセージを見つけたとは述べていない[ 13 ] 。代わりに、キルダルの回顧録(この本の情報源)は、よく知られているインターフェースの類似性を指摘している。パターソンは、86-DOSソフトウェアは自分のオリジナル作品であると主張し、それを書いている間、CP/Mコードを参照したり、その他の方法で使用したりしたことを否定している。[ 14 ] [ 15 ] 2004年にその本が出版された後、彼は著者と出版社を名誉毀損で訴えた。[ 16 ]裁判所は略式判決で、その本の主張は調査に基づく意見であり、虚偽であることが証明できないため、名誉毀損はなかったと判断した。[ 17 ]
以下のコマンド一覧は86-DOSでサポートされています。[ 25 ]
1982年、IBMがMicrosoftにハードディスクドライブに対応したDOSのバージョンをリリースするよう依頼した時点で、PC DOS 2.0はDOSをほぼ完全に書き直したものであり、1983年3月までには86-DOSの要素はほとんど残っていませんでした。86-DOSの中で最も長く使われ続けた要素は、原始的なラインエディタであるEdlinでした。これは、1991年6月にMS-DOS 5.0がリリースされるまで、Microsoft版DOSに付属する唯一のエディタでした。MS -DOS 5.0には、 QBasicをベースにしたテキストベースのユーザーインターフェースエディタであるMS-DOS Editorが含まれていました。Windows 10(32ビット)まではエミュレートされたDOS環境が存在するため、Edlinは現代のコンピュータでも使用できます。
Seattle Computer Productsの86-DOSは、Cromemco、Tarbell Electronics、North Star Computersが製造したS-100フロッピーディスクコントローラハードウェア上で、8インチおよび5.25インチフロッピーディスクドライブのFAT12ファイルシステムをサポートしていました。Western Digital FD1771をベースとしたCromemcoおよびTarbellのボードは、片面、シングル密度ソフトセクタのドライブをサポートしていました。FD1791を使用したTarbellのダブル密度ボードもサポートされていました。その後、SCPはDisk Masterシリーズのような高度なフロッピーディスクコントローラを提供しました。
86-DOSは、後のDOSバージョンのようにFAT IDバイト[注2 ]やBIOSパラメータブロック(BPB)を利用して異なるメディアフォーマットを区別しませんでした。代わりに、コンパイル時に異なるドライブ文字がハードコーディングされ、異なる物理的なフロッピーディスクドライブ、面、密度に関連付けられていました。つまり、ディスクの種類に応じて、正しく認識されるには特定のドライブ文字でアドレス指定する必要がありました。この概念は、後にDOS 3.x以降のバージョンでDRIVER.SYSによってより柔軟にエミュレートされました。
86-DOS 12 ビット FAT フォーマットには、2 つの論理フォーマットバリアントが存在しました。16 バイトのディレクトリエントリを持つ元のフォーマットと、32 バイトのディレクトリエントリを持つ後のフォーマット ( 86-DOS 0.42以降) です。MS-DOS および PC DOS のリリース以来知られている FAT12 フォーマットと論理的に互換性があるのは、後者のみです。MS -DOS は、BPB がない場合、ハードコードされたディスクジオメトリプロファイルから選択するためにクラスタ 0 の FAT エントリの FAT ID を取得するようにフォールバックするため、このようなボリュームをマウントすることはできません。MS-DOS でフォーマットされたボリュームのすべてのフォーマットで、両方のシステムでサポートされ、通常は他のすべてのフォーマットでも、この ID は論理セクタ 1 の最初のバイトにあります。つまり、物理シリンダヘッドセクタ(CHS) アドレス 0/0/2 または論理ブロックアドレッシング(LBA) アドレス 1 を持つボリュームの 2 番目のセクタです。これは、MS-DOS がブートセクタという単一の予約セクタを想定しているためです。 86-DOS では、予約セクタ領域がかなり大きい (トラック全体) ため、プロトタイプFAT ID (および) はディスク上の別の場所に配置され、MS-DOS では取得できません。また、取得できたとしても、それに関連付けられたハードコードされたディスク プロファイルは、86-DOS のこの大きな予約セクタ領域を考慮しません。[ nb 2 ]0xFE0xFF
CP/M 2フロッピーメディアはRDCPMを介して読み取り可能でした。
86-DOSは固定ディスクに対する特別なサポートを提供していなかったが、Tallgrass Technologiesなどの企業から、ハードディスクコントローラや86-DOS用の対応するI/Oシステム拡張機能といったサードパーティ製のソリューションが提供されており、 FAT12ファイルシステムのサイズ制限内で、スーパーフロッピーディスクと同様にハードディスクにアクセスすることが可能だった。
MS-DOS 1.2x および 2.x のさまざまな OEM バージョンも、86-DOS でサポートされているものとは同一ではないものの、同様の 8 インチ FAT12 フロッピー ディスク フォーマットをいくつかサポートしていました。[ nb 2 ]
マイクロソフトのティム・パターソンが開発した最後のバージョンの 1 つであるMS-DOS 1.25 [ 21 ] [ 26 ] [ 27 ] [ 28 ] (1982 年 3 月) でサポートされているディスク フォーマットは、SCP コントローラまたは Cromemco 16FDC コントローラを備えた SCP Gazelle コンピュータ用です(デフォルトでは、このバージョンは 単一の予約セクタを持つフォーマットの 8.0 の MS-DOS 互換バリアントのみをサポートしていましたが、以前の SCP 86-DOS 8.0 で 0.42 以降のディスク フォーマットでフロッピーの読み書きを行うために 2 つの追加ドライブ レターを提供するように構築すること もできました)。
1984年、シアトル・コンピュータ・プロダクツは、SCP-500 Disk Master Floppyコントローラを搭載したSCP S-100コンピュータ向けにMS-DOS 2.0 のOEM版をリリースした。これは、DD/1S(180KB )およびDD/2S(360KB )FAT12フォーマットの5.25をサポートし、古いフォーマットもサポートしたが、 MS-DOS 1.25と比較して一部のパラメータが変更されている可能性がある。[ 29 ]
CLEARボリュームの FAT ID バイトが FEh に初期化されるようです 0x0DDOS 3.0 以降の BPB オフセットに対応しています。0x0FDOS 3.0 以降での BPB オフセットに対応しています。0x00DOS 2.0 以降では BPB オフセットに対応しています。0x02DOS 2.0 以降では BPB オフセットに対応します。0x03DOS 2.0 以降の BPB オフセットに対応しています。0x05DOS 2.0 以降では BPB オフセットに対応しています。0x06DOS 2.0 以降の BPB オフセットに対応しています。0x08DOS 2.0 以降では BPB オフセットに対応しています。0x0BDOS 2.0 以降の BPB オフセットに対応しています。0x11DOS 3.0 以降では BPB オフセットに対応しています。0x0Aのこのエントリは、DOS 2.0 以降ではBPB オフセットのメディア記述子バイトに対応します{{cite podcast}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)