MS-DOS
Msdos-icon.png
StartingMsdos.png
MS-DOSのコマンドラインの一例。画像ではCドライブのルートディレクトリを指定している。
開発者 マイクロソフト
プログラミング言語 アセンブリ言語
開発状況 終了
ソースモデル クローズドソース、2018年から一部のバージョンはオープンソース[1]
最新安定版 8.0 / 2000年9月14日 (20年前) (2000-09-14)
リポジトリ ウィキデータを編集
使用できる言語 多言語
プラットフォーム x86
カーネル種別 モノリシックカーネル
既定のUI キャラクタユーザインタフェース (CUI), テキストユーザインタフェース (TUI)
ライセンス プロプライエタリ
MIT License (v1.25 と v2.0)[1]
ウェブサイト www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_dos_overview.mspx
テンプレートを表示

MS-DOS(エムエス-ディーオーエス、エムエスドス[2])は、マイクロソフトが開発・販売していた、パーソナルコンピュータ向けのオペレーティングシステムである。

概要

MS-DOSは、1981年発売のIBM PC用のディスクオペレーティングシステムとして開発されて「IBM PC DOS」として発売されたが、1982年よりマイクロソフトがIBMとの共同開発契約に基づきコンパック等のIBM以外のメーカーに「MS-DOS」名称でOEM提供を開始した(ただしマイクロソフトは現在では「MS-DOS」は1981年発売と説明している)。MS-DOSはCP/M類似のオペレーティングシステムだが、IBM PCの成功により16ビットパーソナルコンピュータ市場でデファクトスタンダードとなった。

MS-DOSは主にIntel 8086系のパーソナルコンピュータ向けのオペレーティングシステムだが、後に8ビットなど各種のCPUやコンピュータ用にも移植され、また各種の組み込み機器でも使用された。

MS-DOSは基本的にはコマンドラインインタフェースUNIX風の階層型のファイルシステムを持つシングルタスクのオペレーティングシステムだが、各種アプリケーションや、バージョン4[3]より付属のDOSSHELLや、別売のMicrosoft Windows 2.0などの併用により、グラフィカルユーザインタフェースや疑似マルチタスクも使用可能となった。ただしMS-DOS自体は画面描画に関わるアプリケーションプログラミングインタフェースを持たないため、多くのMS-DOS用アプリケーションは機種依存であり、異なる機種間では稼働せず、また移植も容易ではなかった[4]

MS-DOSと互換性を持つオペレーティングシステムには、共同開発のIBM PC DOSの他、DR-DOS (Novell DOS)、オープンソースFreeDOSなどがあり、またMicrosoft Windowsのコマンドプロンプトなどの互換環境がある。

バージョン6からはIBMとマイクロソフトのOS共同開発契約が終了し、MS-DOSとIBM PC DOSは並行して開発販売が続けられたが、マイクロソフトはMicrosoft Windows、IBMはOS/2に移行してゆき、2001年頃迄にはMS-DOSおよびIBM PC DOSの各サポートは終了した。

歴史

開発の経緯

1980年7月頃、IBMは後にIBM PCとなるパーソナルコンピュータの開発に着手した[5]。しかし、IBMの主力商品である汎用コンピュータに比べるとごく少数のスタッフとわずかな予算しか与えられなかった。プロジェクトリーダーのフィリップ・ドン・エストリッジ英語版は、可及的速やかに商品化にこぎ着けるためにソフトウェアは自社開発せず、すべて外部から調達する方針を立てた[6]

当時のマイクロソフトはBASICインタプリタアセンブラならびに各種言語のコンパイラ等を開発しており、それらの製品のほとんどが当時のパーソナルコンピュータ市場におけるデファクトスタンダードOSであるデジタルリサーチのCP/M上で動作するものであった。

IBMはマイクロソフトに対し当初はBASICなどの言語製品の開発を依頼していた[7]。OSについても8086対応版のCP/Mをマイクロソフトに開発してもらおうとした[8]。しかし彼らはCP/Mのソースの権利を持っていなかった為、ビル・ゲイツのアドバイスに従ってデジタルリサーチと交渉することにした[9]。ところがデジタルリサーチとの交渉はうまくいかず、再びマイクロソフトに開発の依頼を持ち込んだ。[10][11][12][13]

マイクロソフトは「M-DOS」というOSを開発した経験はあるが、販売したことはなかった[6]。IBMから要求された期日は1年以内という厳しいもので、言語製品の開発に加えてOSにまで手を回す余裕はなかった[14]。同じ頃、シアトル・コンピュータ・プロダクツはCP/Mが8086に移植されない事に業を煮やし、ティム・パターソンがわずか6週間で開発したQDOSを、86-DOSとして販売した。基本的には8080/Z80用に作られたデジタルリサーチCP/Mクローンであり、8086に移植して、ディスク読み込み処理のバッファ管理を改良し、ファイルシステムを新規開発したFAT12にしたものである。ファーストバージョンは1980年8月に出荷された[15]

IBM PC用のOSを必要としていたマイクロソフトは[16][17]、1981年5月にティム・パターソンを雇い[注 1][18][19]、同年7月に86-DOS 1.10を$75,000で購入した。マイクロソフトはバージョンナンバーを変更せず、名前をMS-DOSに変更した。1981年8月にMS-DOS 1.10/1.14をPC DOS 1.0としてIBMに提供し、IBM 5150IBM PCで動作する3つのOSの1つ[20]となった[15]

各メーカーへのOEM供給

IBMは当初「PC DOS」名称でIBMのみへの供給を主張し、マイクロソフトはIBM以外のメーカーへのOEM供給を主張した結果、IBM用はPC DOS名称、マイクロソフトによる各メーカーへのOEM供給も認めて普及を図るという役割分担となったと言われる[要出典]。この役割分担は後のOS/2 Ver. 1.Xでも同様となる。

リスクを軽減化するために買い取りを避けIBM PCの出荷台数に対して使用料を支払うというライセンス契約をしたこと、そしてマイクロソフトから各メーカーへの自由なOEM供給を認めた事が後のマイクロソフトの躍進の原動力と言え、また見方を変えれば、最終的に「軒先を貸して母屋を取られた」IBMの大失策であるとも言えるが、MS-DOS(およびPC DOS)の普及(デファクトスタンダード化)を決定づけたとも言える。[要出典]

1982年、マイクロソフトはバージョン1.25からIBM以外のメーカーにMS-DOSのOEM供給を開始した。ライフボート・アソシエイツ英語版のSB-DOS[21]コンパックのCompaq-DOS[22]ゼニス・データ・システムズ英語版のZ-DOS[23][24][25]など、供給先メーカーは70社以上に及んだ[26]。1983年のバージョン2.0より、IBM以外の各メーカーへのOEM供給品は「MS-DOS」名称に一本化された。OEM供給品に自社の商標(MS)をつけ「MS-DOS」名称としたのは、OEM先メーカーが独自の名前をつけて混乱することを避けるために整理する意味があった[要出典]。ただし、その後も富士通FM TOWNSTownsOSや各種制御機器など、内部的にMS-DOSがOEM提供されている場合には「MS-DOS」の名称はユーザーには見えない場合があった。

MS-DOSは8086系CPUを搭載したパソコンで動作させることが前提の設計だった。各パソコンには専用のハードウェアがあり、MS-DOSもそれぞれ別のバージョンが作られ、その状況は既存のCP/Mと同様で、CP/Mと同じ方法でハードウェアをエミュレーションして違いを吸収した。これを実現するためMS-DOSはプライマリディスクドライブやコンソールなどの最小限の内蔵ドライバや内蔵カーネルをブートローダーで読み込み、それ以外のデバイスドライバを起動時に動的に読み込めるモジュール方式を採用した。OEM各社はマイクロソフトが提供した開発キットを用い、基本的なI/Oドライバとマイクロソフトの標準カーネルを組み合わせて独自のMS-DOSを作ることができ、普通はハードに添付するディスクの形でユーザーへ届けられた。従って各ハードウェアごとに異なるバージョンのMS-DOSが存在することになり、IBM互換機とMS-DOSマシンの2種類に大きく分類された。Tandy 2000英語版のような一部のパソコンはMS-DOS互換だったがIBM互換ではなく、特定のハードやIBM PCのアーキテクチャに依存しないMS-DOS専用に作られたソフトウェアを実行できた。

このデザインはアプリケーションの互換性を高めるのに役立ち、MS-DOSのサービスだけを使ってデバイスI/Oにアクセスする場合は特に有効で、このデザイン方針は後のWindows NTにも影響を及ぼした(Hardware Abstraction Layerを参照)。しかし当時はハードに直接アクセスすることでパフォーマンスを稼ぐアプリが主流を占め、特にゲームではこれが顕著で、各社は次第に独自路線をあきらめてIBM-PC互換機を作るようになり英語版、1つのMS-DOSがどの会社のパソコンでも動作するようになった。

DOSの限界と開発の終焉

DOSは標準でグラフィカルユーザインターフェースマルチタスク機能や仮想記憶を持たず、80386などの32ビット環境でも「高速な8086」としか使用できなかったため、DOSの拡張や次世代OSが待望された。

1985年にはDOSエクステンダーであるDESQview[27]、同年にDOS上で稼働する「オペレーティング環境」としてMicrosoft Windowsが登場した[28]。更に1987年には本格的なDOSの後継OSとしてIBMとマイクロソフトから OS/2 Ver. 1.0 が登場した[29][30]。OS/2はDOSと同様に、IBMおよびマイクロソフトの両者から供給されたが、性能やDOS互換環境の問題もあり広く普及しなかったためDOSは継続して使われた[31]

1990年に日本ではIBM DOSのバージョン4からDOS/Vが生まれ、マイクロソフトもバージョン5からDOS/VのOEM供給を開始したため[32]、日本でもPC/AT互換機の市場が立ち上がり始めた[33]

1993年のバージョン6からは、IBMとマイクロソフトのOS共同開発契約(OSクロスライセンス契約)が終了したため以後はIBMまたはマイクロソフトの単独開発となった[34]。両者は基本部分の互換性は保たれているが、付属ユーティリティの相違などが広がった。マイクロソフトはこのMS-DOS 6を単体販売の最終バージョンとし、1995年のMicrosoft Windows 95以降は単体のDOSも不要となった[注 2]。IBMはDOSの改良を続けたが、1998年のPC DOS 2000が最終バージョンとなり、2001年にはサポートも終了した[35]

2014年3月25日、マイクロソフトはSCP MS-DOS 1.25、およびAltos MS-DOS 2.11TeleVideo PC DOS 2.11の混合版を、Microsoft Research License Agreementに基づいて一般公開した。これにより、コードソースは利用可能になるが、オープンソース・イニシアティブフリーソフトウェア財団の規格で定義されるオープンソースではない[36][37][38][39]。マイクロソフトは、2018年9月28日にMITライセンスに基づいてコードを再ライセンスし、これらのバージョンをフリーソフトウェアとした[1]

機能

MS-DOSと名付けられているように、マイクロソフトのパーソナルコンピュータ向けのDOS(ディスク・オペレーティング・システム)であり、主にディスクの管理を行うシングルタスクOSであった。開発当初のCPUにマルチタスク機能・メモリ保護機能がなかったためMS-DOSも対応しておらず、CPUにそれらの機能が搭載された後もMS-DOSが対応することはなかった。またグラフィック画面やサウンドの操作・ネットワーク機能などは、Microsoft WindowsやLAN Managerのほかアプリケーションが直接I/Oを操作するかデバイスドライバなどで提供されていた。

ファイル管理

ファイルの管理は、FATクラスタにより構成される。

ファイル名は8.3形式、つまり、8バイトまでのベース名と3バイトまでの拡張子の合計最大11バイト(拡張子の前の「.」を数えれば12バイト)で表す。アルファベットの大文字小文字は区別しない(全て大文字と見なされる)。

バージョン2以降では、ディレクトリの作成が可能となり、ファイル属性にも対応した。

起動順序

起動順序はバージョンによって若干違うが、概ね以下の通りである。

  1. コンピュータのROM BIOSやディスクのマスターブートレコードからディスクのセクタ0にあるブートセクタを読み込んで実行。
  2. ディスクからIO.SYSMSDOS.SYSがメモリ中にロードされる。
  3. IO.SYSを起動し、その後MSDOS.SYSに制御を移行する。
  4. CONFIG.SYSが起動ドライブのルートディレクトリにあれば、そこに記述されたデバイスドライバを読み込む。
  5. バッチ処理のためのコマンドインタプリタでもある標準シェルCOMMAND.COMを起動する。
  6. AUTOEXEC.BATが起動ドライブのルートディレクトリにあれば、その内容を実行し、環境変数の設定や起動時に実行すべきコマンド等の呼び出し、場合によってはアプリケーションの起動なども行う。

COMMAND.COMでは、各ドライブをA:から最大Z:まで[注 3]ドライブレターで管理し、内部コマンドではファイル・ディレクトリ一覧の参照、ファイルとディレクトリの作成・コピー・名前変更、コンピュータの時刻や環境変数およびパスの設定参照などができるほか、外部コマンドやアプリケーションなどの実行形式のファイルの起動が行えた。またVer.2以降ではUNIXを意識した入出力のリダイレクト機能やパイプ機能なども利用できたが、MS-DOS上のパイプやリダイレクトはいずれもテンポラリファイルを介した擬似的な実装に留まっていた。

実行ファイル

MS-DOSにおける実行ファイルの形式は、現在のUNIX系環境で言うシェルスクリプトに類似したコマンドのバッチ処理を記述するバッチファイル(拡張子はBAT)と、CPUが直接実行するバイナリファイルに大別することができる。

このうちバイナリファイルには、単一のセグメントを使うCOM形式、複数のセグメントが使用される場合のEXE形式、さらにデバイスドライバとしてSYS形式が存在し、それぞれ同名の拡張子を持つ。

COM形式の実行ファイルは、バイナリ読み込み時に設定されるコード・データ・エクストラ・スタックの各セグメントレジスタの値が同一アドレスに設定され、プログラム内部でセグメントレジスタを操作しない場合は単一セグメント、最大64KBのメモリ空間を操作する。CP/M 80用に書かれた8080用のアセンブリ言語のソースコードを8086へコンバートした場合を想定したメモリモデルであるが、COM形式のバイナリであってもプログラム側で適切にセグメントレジスタを操作することで64KB以上の空間へのアクセスが可能である。

このうち.SYS形式のバイナリは、原則的に起動時に一度だけ実行されるCONFIG.SYSに記述する以外の方法では直接読み込むことができない[注 4]

システムコール

システムコールは、ソフトウェア割り込みにより呼び出されるが、8080やZ80などの8ビットのコンピュータではメジャーな存在だったCP/Mとの互換性、特に8080用にアセンブリ言語で書かれたソースコードを8086にコンバートして用いる場合を想定し、call 5でも利用可能としてCP/M 80からの移行を促した[40]

メモリ管理

MS-DOSにおいて、DOS自身のカーネルを含むプログラムの実行に確保できるメモリ空間(ユーザーメモリ、コンベンショナル・メモリ)は、8086のアドレス空間の最大1MBである。ほとんどのコンピュータでは、この空間にBIOS ROMやメモリマップドI/OVRAMなどの空間も存在するため、バンク切替えや様々なメモリ拡張手段などを用いずに一時にアクセス可能なメモリ空間は最大でも640KBから768KB程度[注 5]であった。

日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、ユーザーはEMSやXMSHMAUMBなどの拡張メモリの管理機能を利用して、辞書や常駐部やMS-DOSシステムの一部をそれらへ配置し、コンベンショナルメモリの圧迫を少しでも避けることが重視されるようになった。

そのため、RAMディスクドライブやディスクキャッシュなどはバンクメモリEMSプロテクトメモリ80286/386以降)の機能を用いて、コンベンショナルメモリ以外の領域を使用するのが一般的であった。

これらのメモリ配分の設定はCONFIG.SYSAUTOEXEC.BATを記述することで行い、事実上ユーザーに一任されていた。

バージョン3まではメモリドライバやデバイスドライバはOSには付属せずサードパーティー製のメモリドライバ等を使用する必要があったが、バージョン5では標準機能としてOSに付属するようになった。また、これらの環境設定を半自動的に行う設定アプリケーションも添付された。

各種デバイスドライバには自動でインストールを行うスクリプトやプログラムが整備され、動く状態を作るだけであればエンドユーザーがこれらを直接操作する必要はなくなったが、全ての環境に対応するのは難しく最適な設定や問題発生時の対応など初心者にとっては設定のハードルは高かった。

Windows 9x

従来のWindows 3.xはMS-DOSから起動するアプリケーションであったが、Windows 9x系では互換性のためにMS-DOS相当の機能が一部内部に組み込まれているものの「MS-DOSを必要としないWindowsという単体のOS」となった。Windows 95・98などのWindows本体を起動している状態ではプロテクトモードの完全なマルチタスク(プリエンプティブマルチタスク)で稼働しているが、シングルタスクのMS-DOSモード(DOSプロンプトとは異なる)に切り替えることが可能である。Windows上で起動するDOSプロンプトもMS-DOSと互換性があるが一部動作しないアプリケーションがあり、この問題を解決するための機能がMS-DOSモードで、完全なCUI表示となり、MS-DOSアプリケーションのみが動作し、DOSプロンプト上ではロングファイルネームで表示されるVFATであっても8文字+拡張子3文字のショートファイルネーム形式のファイル名で表示され、MS-DOSとほぼ同じ状態になる。

バージョン

バージョン一覧

MS-DOSとPC DOSの主要なバージョンの一覧は以下の通り。

バージョン 出荷開始 IBM マイクロソフト 備考
1 1981年 PC DOS 1.0 (MS-DOS) 1.25 1981年 IBM PC用にPC DOSが登場。1982年 マイクロソフトがIBM以外に1.25以降のOEM供給を開始(名称は供給先により異なる)。
2 1983年 PC DOS 2.0 MS-DOS 2.0 PC/XT用に登場、階層ディレクトリなど。マイクロソフト版の名称が「MS-DOS」に一本化された。日本ではPC-9801などに日本語MS-DOSのOEM供給を開始。
3 1984年 PC DOS 3.0 MS-DOS 3.0 PC/AT用に登場、FAT16など。広く普及し事実上の標準に。同時期にDR DOS 4も出荷。
4 1988年 IBM DOS 4.0 MS-DOS 4.0 IBM版が名称変更。DOSシェルなど。IBM版4.05より日本でDOS/V(IBM DOS J4.05/V)も登場。
5 1991年 IBM DOS 5.0 MS-DOS 5.0 メモリ管理機能強化。IBMとマイクロソフトのOS共同開発の最終版。マイクロソフト版は初めて単体の直接販売が開始される。日本ではマイクロソフト版DOS/V(MS-DOS 5.0/V)も登場し、各社PC/AT互換機に広く採用される。同時期にDR DOS 6.0 出荷。
6 1993年 PC DOS 6.1
PC DOS 6.3
MS-DOS 6.0
MS-DOS 6.2
IBM版が名称再変更。PC DOSとMS-DOSは付属ユーティリティの違いが拡大。MS-DOSは単体販売の最終版。同時期にNovell DOS(DR DOS) 7出荷。
7 1995年 (なし) MS-DOS 7.0
MS-DOS 7.1
Windows 95/98/98SEの内部バージョン。PC DOS 7 とは全く別物。7.1はWindows 95 OSR2 以降で、FAT32に対応した。
1995年 PC DOS 7
PC DOS 2000
(なし) IBM版のみ。スクリプト言語のREXXをサポート。MS-DOS 7 とは全く別物。
8 2000年 (なし) MS-DOS 8 Windows Meの内部バージョン。MS-DOSの最終版。

バージョン1

コンパックOEMのMS-DOS 1.12

CP/M程度の機能しか持たない、基本的なディスクオペレーティングシステム。ファイルシステムは後のバージョンで実装された階層構造を持っておらず、ディレクトリが利用できない。CP/Mとの大きな違いは、汎用化の為などで、入出力デバイスなど、機種依存する部分を分離するという方向性である。MSDOS.SYSとIO.SYSという2つのファイルがあることにあらわれている(前者が非依存なモジュール、後者が依存が大きいモジュールである。なお、機種や機能によって、IO.SYSが機能を抱えるか、BIOSに依存するかは異なっており、例えばディスクIOは多くの機種でBIOS依存だが、文字表示位置の制御などはIBM PCではBIOSだが、PC-98ではIO.SYSが行っている)。

このバージョンが使われていた頃は、8086またはその互換プロセッサ(8088等)を利用したパーソナルコンピュータ市場もそれほど大きくなかった為、出荷本数の大半はIBM PCにバンドルされた分だった[41]

  • バージョン1.0(1981年8月)[42]- IBM PC(初代)出荷と同時にリリース。64KBのメモリ空間のうち約12KB(そのうちシェルが5KB)を占有した。また、160KBの5.25インチフロッピーディスク (1D) をサポートしていた。シアトル・コンピュータ・プロダクツの86-DOS 1.14と同等[43]。PC DOSのみ。
  • バージョン1.1(1982年5月)[44]- 360KB 5.25インチフロッピーディスク (2D) サポートの他、一部のバグフィクス。PC DOSのみ。
  • バージョン1.25(1982年5月)
    Leading Edge Model D用のMS-DOS 2.11起動ディスク

    IBM PC/XTの仕様に合わせ、HDDや360KB 5.25インチフロッピーディスク (2D) をサポートしている。階層構造ディレクトリ、CONFIG.SYSによるデバイスドライバの追加機能、UNIXライクなパイプ等の機能が追加された。アセンブラのMASMが付属していた。

    マイクロソフト版はこのバージョンより名称が「MS-DOS」に一本化された。

    • バージョン2.0(1983年3月)[47] - PC/XT 出荷と同時にリリースされた。
    • バージョン2.01(1983年5月) [43] - 日本では「日本語MS-DOS 2.0」としてリリースされ、パソピア16などに採用された[46][48]
    • バージョン2.1(1983年10月)[49] - IBM PCjr 向け。
    • バージョン2.11(1983年10月)[43] - バージョン2.01とバージョン2.1を統合。アジアやヨーロッパなど多言語市場を意識し、文字セットや日付表示のローカライズをサポート。各社のx86パーソナルコンピュータ向けに広く利用された他[50]、日本ではアスキーの市場戦略の関係で、市販ソフトウェアにサブセット版のバンドルが許されていた[51]
    • バージョン2.25(1985年10月)
      PC-9800シリーズ用MS-DOS 3.3C

      当初 IBM PC/AT 用に発売。主としてネットワーク対応と大容量HD対応の為の16ビットFATが追加された[注 6]。本来80286が標準のPC/AT向けだったが、互換性確保目的で80286のプロテクトモードを利用した新機軸は敢えて盛り込まれなかったためサードパーティー製の各種ユーティリティによって機能拡張するユーザが多かった。

      ベンダーによる独自拡張などで方言が多くバージョン番号の体系も大きく乱れている[注 7][52]。必要十分なスペックと安定性が評価され、またバージョン4以降の仕様変更の影響を避けるために一部ではかなりの長期間にわたって愛用されていた。

      • バージョン3.0(1984年8月)[53] - PC/ATの発売と同時にリリースされた。1.2MB 5.25インチフロッピーディスク (2HD) 及び32MBまでのHDをサポート。HDの論理ボリュームはひとつのみ。
      • バージョン3.1(1984年11月)[54] - 3.0のバグフィックス版。別売のPC Network英語版またはMS-Net英語版トークンリングに対応したネットワーク機能が供給された。但し、性能が低く専らノベルNetWareなどのNOSが一般的に用いられた[55]。日本ではマイクロソフトから日本語版が供給され、日本国内メーカーの多くのパソコンに採用された[52]。また、NECのPC-98LT、Handy98、富士通のFM TOWNS[要出典]にはROMで内蔵された。
      • バージョン3.20(1986年1月)[56] - 720KB 3.5インチフロッピーディスク (2DD) をサポート。フォーマットプログラムの機種依存ルーチンをIO.SYSに移したことで移植性を高めている。
      • バージョン3.21 - 3.20のアジアバージョン。2バイトコードに対応し、日本ではAXなどに採用された[52]
        • MS-DOS 3.3(PC-98版) - バージョン3.21を独自拡張[注 8][52]。マイナーバージョンに3.3A~3.3D[注 9]が存在。
      • バージョン3.22(1989年10月)[57] - ROM化に対応。同年8月にデジタルリサーチがROM化可能なDR DOSを開発している[58]
      • バージョン3.3(IBM PS/2版)(1987年4月)[59] - IBM主導で開発された。1.44MB 3.5インチディスク (2HD) をサポート。多言語対応の為、コードページが採用された。HDにおいて複数の論理ドライブを扱えるようになった。
      • バージョン3.3(OEM版)(1987年8月)

        バージョン3.20から派生し、8086上で限定的な擬似マルチタスク環境を実現したもの[61]。マイクロソフトが開発したが不十分であるとしてIBMには採用されず、アプリコットコンピューターズ英語版にネットワークOSとしてOEMされた他、僅かの用途に留まり絶滅亜種になってしまった[62][63]。非同期I/O対応やバックグラウンドタスク規約など資産の一部は Windows 2.x に流用され、また80286プロテクトモードを前提に並行開発されていたもの(当初バージョン5と呼ばれていた)はIBM主導で大幅に改訂され、世に出た時にはOS/2バージョン1.0になっていた[要出典]

        バージョン4

        IBM主導で開発されたバージョン[64]。OS/2色が濃くなり、IFSやラージバッファ等の追加のみならず管理セクタ数が増やされた事に伴いHDは理論上最大2GBの領域を扱うことができるようになった(実際にはBIOSの制限があった)他、添付ユーティリティを利用すると最大512MBのパーティションまで作成可能になったが[65]、その反面余りに多くの変更がファイルシステムに加えられたため非互換性の問題も生じてしまった。

        情報が全部公開されていなかったものの、2バイトコードによるユニバーサルランゲージ対応が内部的に完了したのも本バージョンからである[注 10][要出典]。従来のバンクメモリに代るEMSの標準サポートによって扱えるメモリ領域が1MB以上に拡張された[45]

        互換OSのDR DOSで好評を博していた「GEM」に類似のグラフィカルユーザインタフェース環境、「DOSシェル」が添付された[45]。これはマウスオペレーションやグラフィカルなメニューによる直感的な操作が行えるもので、依然シングルタスクながらも複数のアプリケーションを重複起動して切替動作させることができ(いわゆるタスクスイッチャ)、GUIもキャラクタベースによる簡易なものとグラフィック画面とテキスト画面を組み合わせたもの(表示が美しく、ポインタの動作もスムーズになる)とを選択できた。DOSシェルのデザインはIBM Systems Application Architecture Common User Accessに準拠していた[66]

        本バージョンには性急な複雑化に伴う非常に多くのバグが存在し、またOS自体が消費するメモリが過大だったため、メーカーによってDOS 3.30 を拡張した DOS 3.31 を採用するなどして4.0を採用しないところが有った[67]。特に日本ではコンベンショナルメモリの空き容量が日本語処理アプリケーションの稼動に大きく影響を与えるため、大手メーカーであるNEC、富士通などが3.21系の拡張版のみを販売し続けた。

        • MS-DOS 4.0(マイクロソフト版)(1988年7月)[64]
        • IBM DOS 4.0(IBM版、PC DOSより改称)(1988年7月)[68]
          • IBM DOS J4.05/V(1990年11月)(日本のみ)[69] - いわゆる「DOS/V」の最初のバージョン。末尾の「V」はVGAを意味し、漢字ROMがなくても日本語表示が出来るように拡張されたもので、専用ハードウェアを付加することなく日本語対応が可能になったため日本国内外のPC/AT互換機メーカーが日本市場に参入する契機になった[33]
        • MS-DOS 4.01(マイクロソフト版)(1988年12月)
          MS-DOS 5.0 セットアップディスク

          再びマイクロソフト主導で開発された[71]。バージョン4で付加された中途半端なユーティリティの多くが削除された一方、80386、80486等に備わる仮想86モードの活用と Windows 3.0 との親和性を主眼にほぼ全面的に再コードされたため、パソコン通信等を介した約1年にわたる大規模なベータテストを経て市販開始された。IBMの製品へのバンドルに限定せず、巷に溢れるPC/AT互換機へのフル対応を初めからうたいインストーラ込みで発売された最初のMS-DOS(PC DOS)でもある。[要出典]

          メモリ消費は少ないものの大容量ドライブが扱えないバージョン3、その逆で大容量ドライブが使えるがメモリ消費が大きいバージョン4というジレンマを抱えていたが、限りあるメモリ領域の消費を抑える機能を追加することでそれまでの問題を払拭するに至った。このバージョンによりDOSはほぼ完成を見たが8086~80286とその互換CPU上の動作には制約が強まり、結局のところ巧妙なアップグレード戦略の下でハードウエアの買い替え需要が喚起された。[要出典]

          XMSによってDOS本体の一部をHMAに、デバイスドライバやアプリケーションの一部をUMBに待避させることが可能で、コンベンショナルメモリが大きく取れるようになった。またタスクスイッチ規約が明確に定義され、DOSシェルの機能拡張(Windows 3.0 のサブセット化)が図られた。各種LAN対応も進められ、コマンドにヘルプが付されるなど利便性も向上した。

          テキストエディタは、過去のバージョンに標準添付されていたラインエディタEDLIN」に加えスクリーンエディタ「EDIT英語版」が添付された[注 11]。開発環境として、コマンドラインエディタに加え独自に拡張された構造化BASICコンパイラQuickBASICが標準添付されていた。

          それまで未公開だったファンクションの多くがユーザに解放されたためカスタマイズやデバイスドライバ開発が更に容易になった[要出典]。日本ではマイクロソフトがDOS/VのOEM供給を開始し、PC/AT互換機をベースに独自の拡張を行っていたAX陣営や東芝 (J-3100)もこの頃よりDOS/Vへのシフトを進めるようになった[72]。また、世界のデファクトスタンダードであるPC/AT互換機のハードウェアでそのまま日本語版OSを使えるようになった為に日本国外のメーカーが積極的に日本市場へ参入し始め、NECの独擅場であった日本市場は大きく変貌することとなった[33]

          • MS-DOS 5.0(1991年6月)[7]
          • IBM DOS 5.0(1991年6月)
            MS-DOS 6.2/V セットアップディスク

            ディスク最適化ディスク圧縮機能(後述)、コンピュータウイルス検出・除去など、CD-ROMアクセスに必要なMSCDEXの付属等付加機能の充実が主。MS-DOS単体としての最終版。

            デジタルリサーチからMS-DOS互換の DR-DOS 6.0 が発売された[74]。大きな特徴は補助ユーティリティの大幅な増強である。その為、IBMおよびマイクロソフトでも基本仕様はほとんど変えずに補助ユーティリティを追加する事でバージョン6を発売することになった。IBMは6.1、それに続くマイクロソフトは6.2と、先に出た競合相手よりバージョン番号はそれぞれ0.1だけ大きい。

            起動時に特定のキーを押すとCONFIG.SYSAUTOEXEC.BATの一部の行を実行したり、全てバイパスする機能があった。

            マイクロソフト版は同時期に発売された Windows 3.1 の普及を促すという販売戦略からDOSシェルを廃止したと見られた[注 12][34]。テキストエディタは日本語に対応して共通のEDITとなった(PC-98版はSEDITが付属[注 13][75])。

            • MS-DOS 6.0(1993年3月)[76]
            • PC DOS 6.1(IBM DOSより改称)(1993年6月)[77] - IBMの独自ビルド。初期のバージョンにはディスク圧縮ユーティリティは添付されておらず、後のPC DOS 6.1 with Compressionでアドスター社の「SuperStor/DS」が添付された(日本語版PC DOS J6.1/V は最初から圧縮ユーティリティ添付)。
            • MS-DOS 6.2(1993年11月)[78] - ディスク圧縮ユーティリティ「DoubleSpace」のバグフィクス等[79][80]。「DoubleSpace」は、ディスク容量を圧縮し、圧縮されたまま読み書きを可能にするもの。このユーティリティに用いられている技術の一部がスタック・エレクトロニクス社の特許を侵害しているものとして、訴訟を起こされた。 MS-DOS 6.0 のユーザはオンラインの無償アップデートパッケージを入手することで MS-DOS 6.2 にアップグレードできた。
              • MS-DOS 6.2/V(1993年12月) - 日本ではマイクロソフトが自社ブランドで発売した唯一の日本語版MS-DOS単体パッケージ[81]。IBM DOS J5.0/VまたはMS-DOS 5.0/Vからのアップグレードのみ。5.0/Vと同様にOEMでも供給。
            • MS-DOS 6.21(1994年2月)- マイクロソフトによるスタック・エレクトロニクス社の特許侵害が一部認められた為、「DoubleSpace」を除去したもの。[82][83]
            • PC DOS 6.3(1994年4月)[84] - IBMの独自ビルド。MS-DOS 6.2 同様、オンラインの無償アップデートパッケージを入手してPC DOS 6.1 から 6.3 にアップグレードできた。
            • MS-DOS 6.22(1994年6月) - スタック・エレクトロニクス社の特許を侵害しない形で作成されたものが「DriveSpace」として改めて添付された(但し、日本語版には関係ない)。なお、DoubleSpaceとDriveSpaceの圧縮機能には互換性がなく、そのままでは互いに圧縮されたパーティションにアクセスすることができない。

              Windows 95/98/98SE に含まれているバージョン。ファイルシステムでは長いファイル名がサポートされたのが最大の特徴。従来のMSDOS.SYSは名前こそ同じであるがプログラムではなく設定ファイルとなった。IO.SYSが実行する標準シェルはWindowsを起動するためのWIN.COMであるが、MSDOS.SYSを編集することでWindows 95/98ではWindowsを起動せずにMS-DOSモード(COMMMAND.COM)で起動することができた。Windows 95初期(OSR1)までのバージョンは7.0だが、Windows 95のOSR2以降ではFAT32にも対応しているバージョン7.1である[87]

              バージョン7(IBM版)

              1995年リリース。IBM版のみ。開発環境として「REXX」を標準添付。ディスク圧縮ユーティリティは「SuperStor/DS」から「Stacker4.0」に変更された[88]。MS-DOS 7(マイクロソフト版)とは異なりGUIとの融合はされなかったが、当時インターネットの普及が進んでいた中でPalm Top PC 110の人気を受けてPC DOS用ウェブブラウザWebBoy」が開発された[89]

              • PC DOS 7(1995年4月)[90]
              • PC DOS 2000(1998年5月)

                Windows Meに含まれているバージョン。IO.SYSHIMEM.SYSおよびSMARTDRV(ディスクキャッシュ)の機能を統合した最終版であり、MS-DOSモードでの起動も廃止されWindowsのブートローダの機能のみとなった[92]。Windows MeやWindows XP以降で起動ディスクを作成するとこのMS-DOSが書き込まれる。

MS-DOSとの互換性を持つオペレーティングシステム