MS-DOS
DOSシェルのデザインはIBM Systems Application Architecture Common User Accessに準拠していた。
本バージョンには性急な複雑化に伴う非常に多くのバグが存在し、またOS自体が消費するメモリが過大だったため、メーカーによってDOS 3.30 を拡張した DOS 3.31 を採用するなどして4.0を採用しないところが有った。特に日本ではコンベンショナルメモリの空き容量が日本語処理アプリケーションの稼動に大きく影響を与えるため、大手メーカーであるNEC、富士通などが3.21系の拡張版のみを販売し続けた。
MS-DOS 4.0(マイクロソフト版)(1988年7月)
IBM DOS 4.0(IBM版、PC DOSより改称)(1988年7月) IBM DOS J4.05/V(1990年11月)(日本のみ) - いわゆる「DOS/V」の最初のバージョン。末尾の「V」はVGAを意味し、漢字ROMがなくても日本語表示が出来るように拡張されたもので、専用ハードウェアを付加することなく日本語対応が可能になったため日本国内外のPC/AT互換機メーカーが日本市場に参入する契機になった。
MS-DOS 4.01(マイクロソフト版)(1988年12月) - バグフィクス。
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がどの会社のパソコンでも動作するようになった。
そのため、RAMディスクドライブやディスクキャッシュなどはバンクメモリやEMS、プロテクトメモリ(80286/386以降)の機能を用いて、コンベンショナルメモリ以外の領域を使用するのが一般的であった。
これらのメモリ配分の設定はCONFIG.SYSやAUTOEXEC.BATを記述することで行い、事実上ユーザーに一任されていた。
バージョン3まではメモリドライバやデバイスドライバはOSには付属せずサードパーティー製のメモリドライバ等を使用する必要があったが、バージョン5では標準機能としてOSに付属するようになった。また、これらの環境設定を半自動的に行う設定アプリケーションも添付された。
各種デバイスドライバには自動でインストールを行うスクリプトやプログラムが整備され、動く状態を作るだけであればエンドユーザーがこれらを直接操作する必要はなくなったが、全ての環境に対応するのは難しく最適な設定や問題発生時の対応など初心者にとっては設定のハードルは高かった。