1982年5月1日土曜日

MS-DOS

MS-DOS
出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索
MS-DOS 開発元企業 / 開発者 マイクロソフト
OSの系統 DOS
開発状況 終了
ソースコード クローズドソース
最新安定版リリース 6.22 (単体販売最終版)/ 1994年
カーネル種別 モノリシックカーネル
既定のUI DOS CLI、TUI
ライセンス プロプライエタリ
PC DOS (IBM DOS) 開発元企業 / 開発者 IBM
OSの系統 DOS
開発状況 終了
ソースコード クローズドソース
最新安定版リリース
PC DOS 2000
/ 1998年
カーネル種別 モノリシックカーネル
既定のUI DOS CLI、TUI
ライセンス プロプライエタリ
MS-DOS(エムエス-ディーオーエス、えむえすどす)とは、マイクロソフトが開発・販売していたパーソナルコンピュータ向けの16ビットのオペレーティングシステム(OS)である。IBMのPC DOS (IBM DOS)のOEM供給版として誕生し、バージョン6より分化したため、本稿では両者を説明する。
名称
MS-DOS
正式名称が「MS-DOS」で、「マイクロソフトのDOS(ディスクオペレーティングシステム)」(Microsoft Disk Operating System)の意味である。
単に「DOS」と呼ぶ場合は、本来はディスク管理中心のオペレーティングシステムの総称だが、現在はMS-DOSを指す場合が多い。また厳密には、MS-DOSもバージョン1では複数のOEM供給先メーカーが複数の名称を付け、正式に「MS-DOS」名称に一本化されたのはバージョン2からである(従って「MS-DOSバージョン1」は後の呼称であり、当時はその名称の製品は存在しなかった)。OEM供給版の日本語版は、多くの場合「日本語MS-DOS」名称である。
なお、MS-DOSという名称の影響で、他のマイクロソフト製品も「MS-Windows」、「MS-Office」、「MS-Basic」など「MS-」を付けた略称が使用される場合があるが、いずれもMicrosoftを略した俗称であり、正式名称に「MS-」が付くのはMS-DOSだけである。
PC DOS / IBM DOS
正式名称はバージョンにより異なるが、総称して「PC DOS」または「IBM DOS」と呼ばれる場合も多い。
バージョン 英語版 日本語版 備考
正式名称 略称
1 IBM Personal Computer
Disk Operating System
(IBM PC用) PC DOS (なし) 略称がPC DOS
2 日本語DOS K2.x(5550用)
日本語DOS 2.0(JX用) 日本語版が登場。Kは「漢字」の意味。
3 日本語DOS K3.x(5550用)
4 IBM DOS 4.0 IBM DOS IBM DOS J4.0 (PS/55用)
IBM DOS J4.0/V (DOS/V) 名称変更。日本語版はDOS/V版が登場。
5 IBM DOS 5.0 IBM DOS J5.0 (PS/55用)
IBM DOS J5.0/V (DOS/V)
6.1, 6.3 PC DOS 6.x PC DOS PC DOS J6.x/V (DOS/V) 名称変更(元の略称が正式名称に)。日本語版はDOS/V版のみに。
7 PC DOS 7.0 PC DOS J7.0/V (DOS/V)
2000 PC DOS 2000 PC DOS 2000日本語版 (DOS/V) 日本語版の表記変更
なお「PC-DOS」との表記は正式ではない。また「IBM MS-DOS」や「MS-DOS IBM版」は存在しない(歴史的にはPC DOSのOEM版がMS-DOSであり、法的にはIBMはOS共同開発契約とその清算によりPC DOSの権利を最初から所有しており、マイクロソフトからライセンス供与を受けたのでは無い)。
概要
MS-DOSとPC DOS(IBM DOS)は、パーソナルコンピュータ向けの16ビットのディスク・オペレーティング・システム(DOS)で、その名前の通り主にディスクの管理を行うシングルタスクのオペレーティングシステムOSである。
基本的なユーザーインターフェースはキャラクタユーザインタフェース(CUI)で、コマンドラインインタプリタCOMMAND.COMの表示するコマンドプロンプトにコマンドを与えて操作を行う。一部のメーカーが独自に追加したり、後のバージョンで搭載されたグラフィカルなツールもある。UNIXを参考にした階層型のファイルシステムを持つが、ファイル名の制約などが厳しく機能は低い。
歴史的には1981年にIBMが初代IBM PC用に発売したDOSが「PC DOS」で、1982年よりマイクロソフトがIBM以外のメーカーにOEM提供を開始したものが「MS-DOS」であったが、マイクロソフトは後に1981年から「MS-DOS」と呼んでいる。
両社はバージョン5まではOS共同開発契約(OSクロスライセンス契約)を結んでおり互換性が保たれた。当時は8ビット市場ではCP/Mが事実上の標準であったが、16ビット市場ではPC DOSならびにMS-DOSが主流となった。
特にMS-DOSはインテルのx86系マイクロプロセッサを搭載した各社・各機種のパーソナルコンピュータに移植され、世界的にはPC/AT互換機、日本ではNECのPC-9800シリーズ、富士通のFMRシリーズ、東芝のダイナブックなど各社独自仕様のアーキテクチャに移殖された。後にはAXのベースとなったし、更には組み込み機器などに、広く普及し主流となった。
しかしMS-DOS (PC DOS)を搭載しているPCであっても、アーキテクチャが異なる機種間ではアプリケーションソフトウェアの互換性はほとんど無かった。MS-DOSは画面描画に関わるAPIを持たないため、グラフィックメモリを操作して画面描画を行うアプリケーションはハードウェアを直接操作せざるを得ず機種依存となったためである。

日本ではソフトウェアのみで日本語表示を可能としたDOS/Vが発売され、漢字V-RAM機能を持たないPC/AT互換機が普及した。
バージョン6からはIBMとマイクロソフトのOS共同開発契約が終了し、後にMS-DOSとPC DOSの単体販売やサポートも終了したため、現在はオープンソースを含めた互換DOSの他、Microsoft Windowsのコマンドプロンプト環境などのDOS互換環境が存在する。
MS-DOSは1995年時点で全世界で1億本を出荷した[1]。
歴史
開発の経緯
詳細は「シアトル・コンピュータ・プロダクツ」および「QDOS」を参照
1980年7月頃、IBMは後にIBM PCとなるパーソナルコンピュータの開発に着手した。しかし、IBMの主力商品である汎用コンピュータに比べるとごく少数のスタッフとわずかな予算しか与えられなかった。プロジェクトリーダーのフィリップ・ドン・エストリッジは、可及的速やかに商品化にこぎ着けるためにソフトウェアは自社開発せずすべて外部から調達する方針を立てた。
当時のマイクロソフトはBASICインタプリタやアセンブラならびに各種言語のコンパイラ等を開発しており、それらの製品のほとんどが当時のパーソナルコンピュータ市場におけるデファクトスタンダードOSであるデジタルリサーチのCP/M上で動作するものであった。
IBMはマイクロソフトに対し当初はBASICなどの言語製品の開発を依頼していた。OSについても8086対応版のCP/Mをマイクロソフトに開発してもらおうとした。しかし彼らはCP/Mのソースの権利を持っていなかった為、ビル・ゲイツのアドバイスに従ってデジタルリサーチ社と交渉することにした。しかしデジタルリサーチとの交渉はうまくいかず、結局マイクロソフト自身がOSを開発する事となった。
とは言うもののマイクロソフトにはOSの開発経験は無かったため、同じ頃CP/Mが8086に移植されない事に業を煮やして独自に移植作業を行っていたシアトル・コンピュータ・プロダクツ社の86DOS(QDOS)を開発者込みで買収しIBM PC用に改修した[2]。
各メーカーへのOEM供給
IBMは当初は「PC DOS」名称でIBMのみへの供給を主張し、マイクロソフトはIBM以外のメーカーへのOEM供給を主張した結果、「IBM用はPC DOS名称。マイクロソフトによる各メーカーへのOEM供給も認めて普及を図る」という役割分担となったと言われる。(この役割分担は後のOS/2 1.xでも同様となる。)
リスクを軽減化するために買い取りを避けIBM PCの出荷台数に対して使用料を支払うというライセンス契約をしたこと、そしてマイクロソフトから各メーカーへの自由なOEM供給を認めた事が後のマイクロソフトの躍進の原動力と言え、また見方を変えれば、最終的に「軒先を貸して母屋を取られた」IBMの大失策であるとも言えるが、MS-DOS(およびPC DOS)の普及(デファクトスタンダード化)を決定づけたとも言える。
マイクロソフトからのOEM版の最初は1982年のバージョン1.25でZenith Data SystemsのZDOSと言われる。供給先メーカも名称も複数あったと言われる。1983年のバージョン2.0より「MS-DOS」名称に一本化された。ただし複数のバージョン1も後に「MS-DOS 1.0」などと総称される場合が多い。「MS-DOSエンサイクロペディア」によると、IBM以外の各メーカーへのOEM供給版に自社の商標(MS)をつけ「MS-DOS」名称としたのは、OEM先メーカーが独自の名前をつけたため混乱を避けるために整理したものとされている。
その後も富士通FM TOWNSのTownsOSや各種の制御機器など、内部的にMS-DOSがOEM提供されている場合には「MS-DOS」の名称はユーザーに見えない場合が多い。
DOSの限界と終息
DOSは標準でグラフィカルユーザインターフェースやマルチタスク機能や仮想記憶を持たず、80386などの32ビット環境でも「高速な8086」としか使用できなかったため、DOSの拡張や次世代OSが待望された。
1985年にはDOSエクステンダーであるDESQviewや、DOS上で稼働する「オペレーティング環境」としてMicrosoft Windowsが登場した。
更に1987年には本格的なDOSの後継OSとしてIBMとマイクロソフトからOS/2 1.0が登場した。OS/2はDOSと同様に、IBMからはOS/2 IBM版が、IBM以外のメーカーへのOEM版としてはOS/2 マイクロソフト版が提供されたが、性能やDOS互換環境の問題もあり広く普及しなかったためDOSは継続して使われた。
1990年に日本ではIBM DOSバージョン4からDOS/Vが生まれ、マイクロソフトもバージョン5からDOS/Vを採用して単体での直販も開始したため、日本市場でもPC/AT互換機が普及した。
1993年のバージョン6からは、IBMとマイクロソフトのOS共同開発契約(OSクロスライセンス契約)が終了したため以後はIBMまたはマイクロソフトの単独開発となり、基本部分の互換性は保たれているが付属ユーティリティの相違などが広がった。マイクロソフトはこのMS-DOS 6を単体販売の最終バージョンとし、1995年のMicrosoft Windows 95以降は単体のDOSも不要となった(技術的にはDOSは内部的に存在しているが、製品としてバンドルされている)。IBMはDOSの改良を続けたが、1998年のPC DOS 2000が最終バージョンであり2002年にはサポートも終了した。
機能
MS-DOSと名付けられているように、マイクロソフトのパーソナルコンピュータ向けのDOS(ディスク・オペレーティング・システム)であり、主にディスクの管理を行うシングルタスクOSであった。マルチタスク機能・メモリ保護機能などはOS内部には持っていなかった。またグラフィック画面やサウンドの操作・ネットワーク機能などは、Microsoft WindowsやLAN Managerのほかアプリケーションが直接I/Oを操作するかデバイスドライバなどで提供されていた。
ファイル管理
ファイルの管理は、FATとクラスタにより構成され、ファイル名は8.3形式(8文字までのベース名と3文字までの拡張子の合計11文字まで(拡張子の前の「.」は数えない))で表す。アルファベットの大文字と小文字は区別しない(全て大文字と見なされる)。さらにバージョン2以降では、ディレクトリやファイル属性の与奪が使用できた。
起動順序
起動順序はバージョンによって若干違うが、概ね以下の通りである。
1. コンピュータのBIOSやディスクのマスターブートレコードからディスクのセクタ0にあるブートセクタを読み込んで実行。
2. IO.SYSを起動し、その後MSDOS.SYSに制御を移行する。
3. CONFIG.SYSが起動ドライブのルートディレクトリにあれば、記述されたデバイスドライバを読みこむ。
4. バッチ処理のためのコマンドインタプリタでもある標準シェルのCOMMAND.COMを起動する。
5. AUTOEXEC.BATが起動ドライブのルートディレクトリにあれば、その内容を実行し、環境変数の設定や起動時に実行すべきコマンド等の呼び出し、場合によってはアプリケーションの起動なども行う。
COMMAND.COMでは、各ドライブをA:から最大Z:(これは環境変数LASTDRIVEで変更可)までのドライブレターで管理し、内部コマンドではファイル・ディレクトリ一覧の参照、ファイルとディレクトリの作成・コピー・名前変更、コンピュータの時刻や環境変数およびパスの設定参照などができるほか、外部コマンドやアプリケーションなどの実行形式のファイルの起動が行えた。またVer.2以降ではUNIXを意識したリダイレクトやパイプなども利用できたが、MS-DOS上のパイプやリダイレクトはいずれもテンポラリファイルを介した擬似的な実装に留まっていた。
実行ファイル
MS-DOSにおける実行ファイルの形式は、現在のUNIX系環境で言うシェルスクリプトに類似したコマンドのバッチ処理を記述するBATファイルと、CPUが直接実行するバイナリファイルに大別することができる。
このうちバイナリファイルには、単一のセグメントを使うCOM形式、各セグメントが異なるアドレスに設定される場合のEXE形式、さらにデバイスドライバとしてSYS形式が存在し、それぞれ同名の拡張子を持つ。
COM形式の実行ファイルは、バイナリ読み込み時に設定されるコード・データ・スタックの各セグメントが同一アドレスに設定され、プログラム内部でセグメントを操作しない場合は単一セグメント、最大64KBのメモリ空間を操作する。CP/M80用に書かれた8080用のアセンブリ言語のソースコードを8086へコンバートした場合を想定したメモリモデルであるが、COM形式のバイナリであってもプログラム側で適切にセグメントを操作することで64KB以上の空間へのアクセスが可能である。
このうち.SYS形式のバイナリは、原則的に起動時に一度だけ実行されるCONFIG.SYSに記述する以外の方法では直接読み込むことができない。ただし、NECのPC-9800シリーズ版の一部からADDDRV.EXEと登録を記述したファイルの組み合わせにより登録しDELDRV.EXEで外せるようになった(キャラクタデバイスのみであり、CONFIG.SYSで一度登録したデバイスドライバは外せない。IBM PC用では何種類かサードパーティで同様のプログラムが作成されている)。
システムコール

システムコールは、通常INT21hにより呼び出されるが、8080やZ80などの8ビットのコンピュータではメジャーな存在だったCP/Mとの互換性、特に8080用にアセンブリ言語で書かれたソースコードを8086にコンバートして用いる場合を想定し、call 5でも利用可能としてCP/M 80からの移行を促した。
メモリ管理
MS-DOSにおいて、DOS自身のカーネルを含むプログラムの実行に確保できるメモリ空間(ユーザーメモリ、コンベンショナル・メモリ)は、8086のアドレス空間の最大1MBである。ほとんどのコンピュータでは、この空間にBIOS ROMやメモリマップドI/O、VRAMなどの空間も存在するため、バンク切替えや様々なメモリ拡張手段などを用いずに一時にアクセス可能なメモリ空間は最大でも640KB(IBM PC互換機およびPC-9800シリーズ等)から768KB(PC-H98やFMRシリーズ・FM TOWNSなど)程度であった。
ただし、RAMディスクドライブやディスクキャッシュなどはバンクメモリやEMS、プロテクトメモリ(80286/386以降)等のコンベンショナルメモリ以外の領域・手段の利用が一般化していたため、「貴重な」コンベンショナルメモリがこれらの領域によって圧迫されることはなかった。
日本語入力用のFEPなどの常駐型のデバイスドライバを使用すると一度に使用できるユーザーメモリはさらに減少するため、ユーザーはEMSやXMS、HMAやUMBなどの拡張メモリの管理機能を利用して、辞書や常駐部やMS-DOSシステムの一部をそれらへ配置し、コンベンショナルメモリの圧迫を少しでも避けることが重視されるようになった。
これらのメモリへの配分設定はCONFIG.SYSやAUTOEXEC.BATを記述することで行い、事実上ユーザーに一任されていた。
バージョン3まではこれらの設定を行うためにはサードパーティー製のメモリドライバ等を使用する必要があったが、バージョン5では標準機能としてOSに組み込みメモリドライバやデバイスドライバも付属するようになった。また、これらの環境設定を半自動的に行う設定アプリケーションも添付された。
メモリドライバや各種デバイスドライバには組み込み用のバッチやスクリプト、設定アプリケーション等が整備され、「とりあえず動く」という状態を作るだけであればエンドユーザーがこれらを直接操作する必要はほぼ無かったが、千差万別なユーザーの環境にこれらが対応することもまた困難であり、ひとたびイレギュラーが発生した場合それらのお仕着せの環境に頼り切ったユーザーには事態収拾のハードルが高かったのも事実である。また「とりあえず」に飽き足らず無駄を省き最適な設定をするためには知見と試行錯誤が要求されるある種の職人芸的な資質が要求されたため、これらの事情が「MS-DOSの環境設定は非人間的で困難なものであった」とする後世の評価を招く原因ともなった。
Windows 9x
Windows 9x系のOSは製品としては「DOSを必要としない、Windowsという単体のOS」と称しているが、内部的には従来のWindows 3.xと同様MS-DOSモジュールから起動してプロテクトモードで稼働しGUIや擬似マルチタスクを提供する構造(一種のDOSエクステンダー)をしていた。ただし、Windowsが使用するMS-DOSシステムコールはごく一部に限られ、VFATなどによりファイル管理方法が拡張されている。なお、Windows 95・98などのWindows本体を起動していないMS-DOSモードの場合はVFAT上のロングファイルネームでも8文字+拡張子3文字のショートファイルネーム形式のファイル名で表示された。
バージョン

ウィキペディア(Wikipedia)
http://ja.wikipedia.org/wiki/MS-DOS



0 件のコメント:

コメントを投稿