MS-DOS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
MS-DOS(エムエス-ドス、Microsoft Disk Operating System)は、マイクロソフトが開発・販売した、8086系パーソナルコンピュータ向けのオペレーティングシステム(OS)である。
本来はIBM-PCファミリー向けであるが、日本国内で各メーカーが製造販売していた、独自仕様のIntel 8086系16/32ビットパソコン(NECのPC-9800シリーズや、富士通のFM-R等が代表的)にも移植され、標準搭載または別売りされた。
目次 |
[編集] 開発の経緯
当時のマイクロソフトは、BASICインタプリタやアセンブラ、各種言語のコンパイラを開発しており、その製品のほとんどがデジタル・リサーチ社のCP/M上で動くものであった。
1980年7月ごろ、IBMは後にIBM-PCとなるパーソナルコンピュータの開発に着手した。その際、開発を迅速に行うためにIBM-PC上のすべてのソフトウェアを外部から調達することを決定した。
IBMは、最初マイクロソフトとはBASICなどの言語製品のみについて交渉を開始した。その後、オペレーティングシステムについても8086対応版のCP/Mをマイクロソフトに開発してもらおうとしたが、彼らがCP/Mのソースの権利を持っていないと分かったため、ビル・ゲイツのアドバイスに従ってデジタル・リサーチ社と交渉することになった。しかしデジタル・リサーチ社との交渉はうまくいかず、結局マイクロソフト自身がOSを開発する事となった。
とは言うものの、マイクロソフトはOSの開発は手がけていなかったため、同じ頃、同じようにCP/Mが8086に移植されない事に業を煮やして独自に移植作業を行っていたシアトルコンピュータプロダクツ社の「86DOS」を開発者込みで買収し、IBM-PC用に改修しPC DOSに仕立て上げた。
当初、IBM-PCで動作するOSだったのでPC DOSと言っていたが、マイクロソフトが他社にOEM供給する際には自社の商標 (MS) をつけ、MS-DOSとした。当初、各OEM先が勝手な名前をつけていたため、混乱を避けるために整理したものである(「MS-DOSエンサイクロペディア」による)。ソフトウェアを作ってIBMに販売してしまうという方法ではなく、IBM-PCの出荷台数に対して使用料を取ると言うライセンス契約をしたのがマイクロソフトの成功の秘訣とも言えた。
[編集] 概要
DOSと名付けられているように、汎用機などのOSとは違い、主にディスクの管理を行うシングルタスクOSであった。マルチタスク機能・メモリ保護機能などはOS内部には持っていなかった。また、グラフィック画面やサウンドの操作・ネットワーク機能などはデバイスドライバやMicrosoft Windowsなどで提供されていた。
ファイルの管理はFATとクラスタにより構成され、ファイル名は8.3ネーム、つまり、8文字までのベース名と3文字までの拡張子の合計11文字まで(拡張子の前の「.」は数えない)で表す。アルファベットの大文字と小文字は区別しない(全て大文字と見なされる)。さらにバージョン2以降ではディレクトリやファイル属性が使用できた。
起動順序はバージョンによって若干違うが、コンピュータのBIOSやディスクのマスターブートレコードからディスクのセクタ0にあるブートセクタを読み込んで実行するとIO.SYSを起動し、その後MSDOS.SYSに制御を移行してCONFIG.SYSがあれば記述されたデバイスドライバを読みこみ、さらにバッチ処理のためのコマンドインタプリタである標準シェルCOMMAND.COMを起動する。このときAUTOEXEC.BATがあればその内容を実行する。
COMMAND.COMでは各ドライブをA:からZ:(環境変数LASTDRIVEで変更可)までのドライブレターで管理し、内部コマンドではファイル・ディレクトリ一覧の参照、ファイルとディレクトリの作成・コピー・名前変更、コンピュータの時刻や環境変数およびパスの設定参照などができるほか、外部コマンドやアプリケーションなどの実行形式のファイルの起動が行えた。またコマンドラインにはUNIXのようにリダイレクトやパイプなどが使えた。(Ver.2以降)
実行ファイルの形式には固定したセグメントを使う場合(コード・データ・スタックの合計が64KB以内)の拡張子.COMファイル、複数のセグメントを利用する場合の.EXEファイル、コマンドのバッチ処理を記述する.BATファイルがある。デバイスドライバは.SYSファイルであるが、起動時のCONFIG.SYS以外からは直接読み込めない。このため、NECのPC-9801版の一部からADDDRV.EXEと登録を記述したファイルの組み合わせにより登録し、DELDRV.EXEで外せるようになった(キャラクタデバイスのみであり、CONFIG.SYSで一度登録したデバイスドライバは外せない。IBM PC用では何種類かサードパーティで同様のプログラムが作成されている)。
システムコールは、通常、INT21hにより呼び出されるが、Intel 8080やZ80などの8ビットのコンピュータではメジャーな存在だったCP/Mとの互換性を意識し、call 5でも利用可能となっていた。
[編集] メモリ管理
プログラムの実行に確保できるメモリ空間(ユーザーメモリ、コンベンショナル・メモリ)は、8086のアドレス空間の最大1MBである。ほとんどのパソコンではVRAMなどがあるため、メイン・メモリの空間は最大でも640KB(PC-H98やFMR・FM TOWNSなどでは768KB)程度だった。
日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、ユーザーはEMSやXMS、HMAやUMBなどの拡張メモリの管理機能を利用して辞書や常駐部やMS-DOSシステムの一部をそれらへ配置し、使用できるユーザーメモリを少しでも稼ぐこととなった。これらのメモリへの細かい配分設定は大抵はCONFIG.SYSやAUTOEXEC.BATを変更することでユーザーに一任されていたが、複数のドライバを同時に置く場合に最適な設定をするのは難しかった。
なおこれらのメモリを設定するにはバージョン3などではサードパーティー製のものを使用する必要があったが、バージョン5では標準機能としてOSに組み込み、またはデバイスドライバが付属した。
[編集] Windows 9x
Windows 9x系のOSは、OSとしてはWindowsという形で提供されているが、実際には、MS-DOSの上でGUIの処理を行なう形で動いていた(ただし、Windowsが使用するMS-DOSシステムコールはごく一部に限られる)。こちらではVFATなどによりファイル管理方法が拡張されている。なおWindows本体を起動していない場合はVFAT上のロングファイルネームでも8文字+拡張子3文字のショートファイルネーム形式のファイル名で表示された。
[編集] バージョン
MS-DOSは、バージョンによってかなりの機能差があった。
- バージョン1(1,1.1,1.25)
- CP/M程度の機能しか持たない、基本的なディスクオペレーティングシステム。CP/Mとの大きな違いは、汎用化の為に入出力デバイスの機種依存が無くなっている点であった。ほとんど市場にでておらず、日本ではPC-8801用16bitCPUボードに付属して販売された他、PC-9800シリーズ用に1.25が販売された。
- バージョン2(2.0,2.01,2.1,2.11など 1983年-)
- PC/XT用として発売。階層構造ディレクトリ、config.sysによるデバイスドライバの追加機能、UNIXライクなパイプ等の機能が追加された。
- Ver.2.11は、日本市場(PC-9800シリーズ)においては当時マイクロソフトの代理店であったアスキーの市場戦略の関係で、市販ソフトウェアにサブセット版のバンドル(添付)が許されていた。
- アセンブラのMASMが付属していた。
- バージョン3(3.0,3.1,3.21,3.3,3.31 1984年-)
- PC/AT用として発売。主としてネットワーク対応と大容量ハードディスク対応の為の16bitFATが追加された。もっとも、管理できるセクタ数が65535個であったため、32M以上のパーティションを切ることは出来なかった。
- NEC版はVer.3.1・3.3(内容的には3.21を元に改変している。3.3A以降がMicrosoft版3.3を元にしている)が、富士通版はVer3.1が発売された。NEC版のVer.3.3Dでは、見かけ上のセクタサイズを1Kbytes若しくは2Kbytesとすることで最大128Mのパーティションを管理することが出来た。
- NECのPC-98LT・Handy98、富士通のFM TOWNSにROMで内蔵されていたのはVer.3.1だった。
- 各社ごとに表記が必要であるが、NECについては次の通り。
- Ver 3.0
- Ver 3.1
- Ver 3.10.
- Ver 3.3
- Ver 3.3A
- Ver 3.3B
- Ver 3.3C
- Ver 3.3D
- バージョン4(4.0,4.01 1988年-)
- IBM主導で開発されたバージョン。IFSやラージバッファ等の追加が行われ、OS/2色が濃くなっていた。管理できるセクタ数が増やされ、最大512Mbytesのパーティションが作成できるようになっていた(但し特定のユーティリティを起動することが条件)。
- 複雑化に伴い非常に多くのバグが存在し、OS自体が消費するメモリが大きすぎたため、メーカーによってDOS 3.30を拡張したDOS 3.31を採用するなどして4.0を採用しないところが有った。
- コンベンショナルメモリの空き容量が日本語処理アプリケーションの稼動に直接影響する日本では大手メーカーであるNEC、富士通などが3.3系の拡張版のみを販売していたためユーザー数はそれほど多くはなかった。
- EPSONからPC-9801互換機用としてリリースされていた。
- PC/AT互換機用に、DOS/V(IBM DOS バージョン J4.0/V)という、漢字ROMが不要なものがつくられたのはこの版が最初。(1990年)
- MS-DOS 3.21からの後継としてバックグラウンドマルチタスクを可能にしたMS-DOS 4.0が存在していたが、これとは全くの別物である。
- バージョン5(5.0 1991年-)
- 再びマイクロソフト主導で開発されたバージョンで、バージョン4で追加された機能の殆どが削除された。メモリ消費は少ないが大容量ドライブが扱えないバージョン3、その逆で大容量ドライブが使えるがメモリ消費が大きいバージョン4というジレンマを抱えていたが、限りあるメモリ領域の消費を抑える機能を追加することで、今までの問題を解決するに至ったバージョン。このバージョンによりDOSはほぼ完成に至る。
- DOS-Shellという、キャラクタベースでの対話的な処理機能が追加。テキストエディタは対話的なものが添付された(PC/AT互換機用はEDITだったが、NEC版はSEDIT(ちなみにこちらはメガソフト社のMIFESのサブセット版)、富士通版(FMR、FM TOWNS用)はEDIASとそれぞれ各社ばらばらだった)。
- バージョン6(6.0,6.2,6.21,6.22,PC DOS6.1,PC DOS 6.3 1993年-)
- MS-DOS単体としての最終版。ディスク最適化やディスク圧縮機能、コンピュータウイルス検出・除去など、おまけの充実が主。マイクロソフトからはVer.6.0・6.2、IBMからはVer.6.1・6.3がリリースされた。
- Digital Research社からMS-DOS互換のDR-DOS 6.0が発売された。大きな特徴は補助ユーティリティの大幅な増強である。その為、IBMおよびMicrosoftでも基本仕様はほとんど変えずに補助ユーティリティを追加する事でバージョン6を発売することになった。IBMは6.1、それに続くMicrosoftは6.2と先に出た競合相手よりバージョン番号はそれぞれ0.1だけ大きい。
- 起動時に特定のキーを押すとCONFIG.SYSなどをバイパスする機能があった。
- DOS-Shellは廃止された(別途サプリメンタルディスクを入手する必要があった。NEC版には従来どおり付属)。テキストエディタも共通のEDITとなった(NEC版のみ従来どおりSEDITが付属)。
- ディスク圧縮機能は英語版では6.0,6.2に搭載されていたDoubleSpaceが特許侵害と認定され、6.22でDriveSpaceに変えられている。(日本語版には関係ない)
- バージョン7(7.0,7.1 1995年-)
- Windows 95とWindows 98に搭載されているバージョン。従来のMSDOS.SYSはIO.SYSにその機能を統合されて設定ファイルとなり、IO.SYSが起動する標準シェルがcommand.comではなくwin.comであるなど、MS-DOSを極力見せない工夫がされていた。しかし、起動中にテキストモードのカーソルが見える。Windows95のOSR2以降ではFAT32にも対応しているバージョン7.1である。
- バージョン8(8.0 1999年-)
- Windows Meに搭載されているバージョン。IO.SYSにHIMEM.SYS,EMM386.EXEの機能をも統合した最終版であり、もはやWindowsのローダでしかなくなった。Windows XPで起動ディスクを作成すると、このMS-DOSが書き込まれる。
なお、PC DOSはバージョン7、ユーロ記号の表示や西暦2000年問題に対応したPC DOS 2000まで作られた。
[編集] MS-DOS系のフリーではないOS
NEC PC-98シリーズ全盛期には、ゲームソフトの組み込み用として、下位互換の「MEG-DOS」などがあった。
[編集] MS-DOS系のフリーなOS
- FreeDOS
- PTS-DOS(試用版)
- RxDOS
[編集] 関連項目
- EMS:8086のメモリ空間をハード的に(または80386の仮想86モードで)バンク切り替えしてメモリを増設するための規格。利用するためにはデバイスドライバのEMM.SYSやEMM386.SYS、または市販のMELWARE、VMM386などのメモリマネージャーの登録が必要だった。
- XMS:HIMEM.SYSなどのデバイスドライバの登録が必要。
- VCPI:EMSを80386の仮想86モードでソフト的に実現するための規格。
- DPMI:80286以上のCPUのネイティブモードでプログラムを動作させるための規格で、VCPIの代替ともなった。
- 2000年問題
カテゴリ: オペレーティングシステム | マイクロソフト | パソコンの歴史