Q/具体的にはどのような違いがあるのですか?
A/DOSプロンプトは16BitのDOS-VMという機能を利用した物で、OS自体が16ビットベースに互換して、命令を処理します。
DOS命令は元々16ビットですから、互換性も高く古いDOSソフトのほとんどが動作します。
VMはVirtual Machine(バーチャルマシーン)の略で、Windows9x(95からMeまでのwin、2000を除く)では、システムVM(win32VMとwin16VMがその中にある)とDOS-VMで構成され、すべてのソフトウェアがVM上で駆動します。
さらに、DOS機能をほとんど継承しており、その限界から安定性が低いという点があります。
そこで、NT系のOSでは、時代遅れとなり既に安定性を下げてしまうDOSと16ビット命令系をなくしています。
その代わり、DOSエミュレートとしてコマンドプロンプトを搭載しています。
コマンドプロンプトでは、NTVDMという変換回路で16ビット命令を32ビット化して処理します。
そのため、一部の複雑なネイティブ16ビット命令は処理できないと可能性があるのです。
わかりにくいですからまとめると、DOSプロンプトはOSレベルでDOSに互換するのに対し、コマンドプロンプトは実行するソフト命令を変換してDOSに互換するというのが違います。前者は構造上互換性が高いです。
後者は一部命令がエミュレーターになければ処理できません。
Q/DOSプロンプトとはどのような目的で作られたのでしょう?
A/Windowsは元々DOSベースとOS/xベースの2つからなります。前者がDOS→win3,x→win9xという発達をたどったのに対し、
後者は、OS/x互換プログラムからNTへと進化しているとされます。
DOSプロンプトは元々、MS-DOS(MS-DOS/V)及びIBM-DOS(PC-DOS)をWindowsで使うために残った技術です。
Windows3,xはDOS上で動作し、GUI(グラフィカルユーザーインターフェース)とマルチタスク(同時に複数のプログラムを実行する)を実現するためのソフトとして開発された物です。
Windows9xではさらに、その精度を引き上げ、初心者への使い勝手を大幅に向上するために分離したDOS(MS-DOS)を表面上から消しました。これによって、DOSプロンプトが本格的にDOS互換モード(VM)になりました。
ただし、起動時はMS-DOS(リアルモード)をベースにした16ビットコアを読み込み、その後32ビットに移行する形を取っています。
その後、DOSプロンプトはMeでクイックスタートを利用するため内的の見かけ上でも削除されました。ただし、読み込みは、やはり16ビットコードから32ビットを読み込みます。(純粋な内部DOSモードが100%排除されているのではなく、DOSプロンプトオンリー実行するための初期プログラムが排除されています)
そして、WindowsNT系ではコア自体はDOSには無縁ですが、ソフトの関係や今まで使ったユーザーが移ることが多いなどからDOSエミュレートとしてコマンドプロンプトを装備したのです。
いかがでしょう。
お礼
なるほど、Disc Operating Systemの略だったのですか。 HDの操作するコマンドはコマンドプロンプトではできなくなったのですね。 とてもわかりやすかったです。