- ベストアンサー
コマンドプロンプトとDOSプロンプトの違い
最近のOSにはDOSプロンプトがなくなり、コマンドプロンプトがふぞくしていますが、具体的にはどのような違いがあるのですか? 私はプロンプトにてプログラムのコンパイルから実行をしているだけなので、違いがよくわからないのです。よろしくお願いします。 そもそもDOSプロンプトとはどのような目的で作られたのでしょう?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
DOSは「Disc Operating System」の略で、FDやHDの操作などを直接行うようにプログラムされています。 PCのハード(機械)と密接につながっているわけです。 それをDOS上のWindows上に「仮装PC」環境を構築しているわけですから、一部のDOSプログラムでは正常に動作しないものもあります。 また、HDを直接いじることとなるfdiskやformatは当然使えないですね。 コマンドプロンプトもかなり互換性が高くなっていますし、たいていのソフトがWindowsへと移行していますので、今となってはそれほど問題はないのでしょうね。
その他の回答 (4)
- toysmith
- ベストアンサー率37% (570/1525)
コンソールプログラミングをしておられるようなので、プログラミングの観点から。 単純な違いとしては16ビットMS-DOS機能のサポートがあります。 MS-DOSプロンプトは16ビットMS-DOSのエミュレーションなので、一部のBIOSコールやDOSサービスが利用可能です。 (Windowsが32ビットなので使えないものもあります) コマンドプロンプトは「見た目をMS-DOSに似せているだけ」の32ビットコンソールなので、16ビット系のサービスやBIOSコールを利用することは出来ません。 たとえば、MS-DOSプロンプトではANSIエスケープシーケンスが利用可能ですが、コマンドプロンプトでは利用できません。
お礼
16ビット系のサービスが使えなくなっているのですか。 なんとなく違いがわかりました。ありがとうございます。
- parts
- ベストアンサー率62% (6366/10151)
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エミュレートとしてコマンドプロンプトを装備したのです。 いかがでしょう。
お礼
詳しく説明が欲しいといいながらここまで書かれるとわからなすぎて申し訳ないです。ですが、windowsの歴史は知ることができました。Meのクイックスタートっていうのもあるのですね。調べてみたいと思います。
- ysk6406
- ベストアンサー率40% (237/589)
No.1 の回答に補足します。 Win98 は確かに DOS の下で動いていますが、WinMe は違います。 シャットダウンメニューに“MS-DOS モードで再起動する”という項目が無くなったことでもわかるように、純粋な DOS モードというのは WinMe にはありません。 動作上も、CONFIG.SYS に相当する機能は別な方法で実現されていますが、AUTOEXEC.BAT については、環境変数の設定(SET コマンド)しかできなくなりました。 そのため、従来 AUTOEXEC.BAT で常駐プログラムを起動させていたようなことができなくなり、DOS 使いにとっては大変使いづらい OS になってしまいました。
お礼
確かに最近のOSでは『MS-DOSモードで…』がないですね。意外なところでも変化が見られるのですね。AUTOEXECは僕も一度使ったことがありました。非常に便利なシステムでした。それが使えなくなっているのですか、それでは使いづらくなっているのかもしれませんね。ありがとうございます。
もともとPCはDOSという基本ソフトで動いていました。 Windowsも3.0、3.1の頃はDOSとは別に購入する必要がありました。 Win95になるとWindowsのベースとしてDOSが組み込まれ、表面上はDOSを意識しなくてもよくなりましたが、Win98やWinMeも基本にはDOSが動いていたのです。 当然ながらDOSで動いていたソフトやプログラムの資産が数多く存在するため、これらを動作させるためにDOS互換の環境をWindows上で作るようになったのです。 これがコマンドプロンプトですね。 Win98などで、PC起動時の選択メニューで表示されるDOSプロンプトは、Windowsを起動させる前の純粋なDOSの状態です。 親ガメがDOSプロンプト 子ガメがWindows 孫ガメがコマンドプロンプトというわけです。 なお、WinNT、Win2000、WinXpはWin9X系とは異なりベースにDOSが組み込まれていませんので、DOS独自の制限事項がなく、安定した動作が可能となっています。
補足
以前のOSがDOSというものだったのですね。 ですが、孫ガメのコマンドプロンプトになって他に違いはあるのでしょうか?
お礼
なるほど、Disc Operating Systemの略だったのですか。 HDの操作するコマンドはコマンドプロンプトではできなくなったのですね。 とてもわかりやすかったです。