DOSは、インテルの8086/8088プロセッサ用のシングルタスクOSとして、1981年にIBM PCとともに登場しました。IBMが出荷した製品をPC DOS、マイクロソフトが出荷した製品をMS-DOSと呼び分けていましたが、両者は1993年まで同じ内容であり、それ以降、異なる製品として競合関係に入りました(これ以降の解説では、特に区別の必要がない限り、単にDOSと表記する)。 DOS 1.0は、当時主流のパソコン用OSであったCP/M(Control Program for Microcomputers)とよく似たOSで、デバイス非依存の入出力、再配置可能な(relocatable、実行中のプログラムをメモリ内で移動することができる)実行ファイルなどを実現していました。 DOS 2.xは、現在のDOSの基本的な機能の大半を実現し、IBM PC/XTと同時に出荷されました。DOS 2.xは、ハードディスクをサポートするとともに、UNIXにならって階層化ディレクトリ、リダイレクト(入出力先の変更)、パイプ(コマンドの結合)などの機能が組み込れました。 DOSは、msdos.sysとio.sysで構成されるカーネルと、ユーザー・インタフェースを受けもつシェル(コマンド・インタープリタ)であるcommand.comで構成されます。command.comがユーザーのコマンド入力を受け付け、内部コマンド(command.comに備わっているコマンド)や外部コマンド(command.comとは別に用意されたDOSのプログラム)のロード(メモリへの読み込み)と実行を行います。ロードされたプログラムは、ファイル入出力やメモリの割り当てなどを、DOSのファンクション・コール(API)を使って行います。 APIの処理を受けもつのがmsdos.sysで、ハードウェア非依存です。実際の入出力要求はio.sysに渡され、ハードウェアに応じてBIOS(Basic Input Output System、基本入出力システム)コールなどを用いて実現されます。