• ベストアンサー

コマンドプロンプトとDOSプロンプトの違い

最近のOSにはDOSプロンプトがなくなり、コマンドプロンプトがふぞくしていますが、具体的にはどのような違いがあるのですか? 私はプロンプトにてプログラムのコンパイルから実行をしているだけなので、違いがよくわからないのです。よろしくお願いします。 そもそもDOSプロンプトとはどのような目的で作られたのでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
noname#3856
noname#3856
回答No.3

DOSは「Disc Operating System」の略で、FDやHDの操作などを直接行うようにプログラムされています。 PCのハード(機械)と密接につながっているわけです。 それをDOS上のWindows上に「仮装PC」環境を構築しているわけですから、一部のDOSプログラムでは正常に動作しないものもあります。 また、HDを直接いじることとなるfdiskやformatは当然使えないですね。 コマンドプロンプトもかなり互換性が高くなっていますし、たいていのソフトがWindowsへと移行していますので、今となってはそれほど問題はないのでしょうね。

sugoitensai
質問者

お礼

なるほど、Disc Operating Systemの略だったのですか。 HDの操作するコマンドはコマンドプロンプトではできなくなったのですね。 とてもわかりやすかったです。

その他の回答 (4)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.5

コンソールプログラミングをしておられるようなので、プログラミングの観点から。 単純な違いとしては16ビットMS-DOS機能のサポートがあります。 MS-DOSプロンプトは16ビットMS-DOSのエミュレーションなので、一部のBIOSコールやDOSサービスが利用可能です。 (Windowsが32ビットなので使えないものもあります) コマンドプロンプトは「見た目をMS-DOSに似せているだけ」の32ビットコンソールなので、16ビット系のサービスやBIOSコールを利用することは出来ません。 たとえば、MS-DOSプロンプトではANSIエスケープシーケンスが利用可能ですが、コマンドプロンプトでは利用できません。

sugoitensai
質問者

お礼

16ビット系のサービスが使えなくなっているのですか。 なんとなく違いがわかりました。ありがとうございます。

  • parts
  • ベストアンサー率62% (6364/10149)
回答No.4

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エミュレートとしてコマンドプロンプトを装備したのです。 いかがでしょう。

sugoitensai
質問者

お礼

詳しく説明が欲しいといいながらここまで書かれるとわからなすぎて申し訳ないです。ですが、windowsの歴史は知ることができました。Meのクイックスタートっていうのもあるのですね。調べてみたいと思います。

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.2

No.1 の回答に補足します。 Win98 は確かに DOS の下で動いていますが、WinMe は違います。 シャットダウンメニューに“MS-DOS モードで再起動する”という項目が無くなったことでもわかるように、純粋な DOS モードというのは WinMe にはありません。 動作上も、CONFIG.SYS に相当する機能は別な方法で実現されていますが、AUTOEXEC.BAT については、環境変数の設定(SET コマンド)しかできなくなりました。 そのため、従来 AUTOEXEC.BAT で常駐プログラムを起動させていたようなことができなくなり、DOS 使いにとっては大変使いづらい OS になってしまいました。

sugoitensai
質問者

お礼

確かに最近のOSでは『MS-DOSモードで…』がないですね。意外なところでも変化が見られるのですね。AUTOEXECは僕も一度使ったことがありました。非常に便利なシステムでした。それが使えなくなっているのですか、それでは使いづらくなっているのかもしれませんね。ありがとうございます。

noname#3856
noname#3856
回答No.1

もともと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独自の制限事項がなく、安定した動作が可能となっています。

sugoitensai
質問者

補足

以前のOSがDOSというものだったのですね。 ですが、孫ガメのコマンドプロンプトになって他に違いはあるのでしょうか?

関連するQ&A

  • DOSプロンプトとコマンドプロンプトの違いを簡単に教えてください

    私自身が素人なのですが、DOSプロンプトとコマンドプロンプトの違いを素人に教えなければなりません。 DOSプロンプトとコマンドプロンプトの違いについて過去にも質問がありますが、更に簡単に、より決定的な違いはあるのでしょうか? 宜しくお願い致します。

  • DOSプロンプトとコマンドプロンプトの違い

    DOSプロンプトとコマンドプロンプトって何が違うんですか?

  • DOSプロンプトのコマンドが動作しません。教えてください。

    DOSプロンプトのコマンドが動作しません。教えてください。 o.5975247の続きの者ですが、DOSプロンプトからあらゆる種類のコマンドが使えない状態になっています(自分自身で知っている限りのDOSコマンドを打ちこんでみた)。 DOSコマンドを入力した結果は、以下のような表示が出ます。 `コマンド名`は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。 何とか対応の仕方をアドバイス願います。

  • DOSプロンプトでコマンドが動作しない

    batファイルを作るためにとりあえずwindows端末のDOSプロンプト を立ち上げ、コマンドをたたいてみようとしています 端末はwindows7なのですが、DOSプロンプトに対して openコマンドをたたいたら 'open'は内部コマンドまたは外部コマンド、操作可能なプログラム またはバッチファイルとして認識されていません とのメッセージがでます Webで調べるとパスが通ってない?とのことのようですが このopenコマンドがwindows7のどこにあるか あるいはそれがわかった時、どこにどのように記載したらいいか 等、記載のサイトとか方法について教えていただけないでしようか よろしくお願いします。

  • dos.hについて

    いま「Windowsコマンドプロンプトでマスター 書く!動かす!覚える! C言語100本勝負」というタイトルの本をサンプルプログラム集として使っているのですが、そのサンプルの中にdos.hを使ったプログラムが結構な数あります。コンパイルしたプログラムは正常に動くのですが、コンパイル時に次のような警告が出ます。 警告 W8053 hoge.c 18: '_dos_findfirst' は古い形式です(関数 main ) 警告 W8053 hoge.c 22: '_dos_findnext' は古い形式です(関数 main ) (コンパイラ:bcc32、OS:Windows XP SP2、コマンドプロンプトで実行した) ネットで調べたところ_dosで始まるような関数は現在ではほとんど使われていないようです。 そこで質問なのですが、MS-DOSの時代に使われていたような関数はWindows XPや2000等のコマンドプロンプトでも問題なく実行できるのでしょうか(自分の場合は実行できたが、警告が出た。)? 自分の推測ではコマンドプロンプト用の新しい関数が用意されているのではないかと思うのですが・・・ 詳しい方、できれば教えてください。 (正直、「コマンドプロンプトでマスター」とタイトルで謳っているのに内容が「MS-DOS」での説明とは少しだまされた気分です。)

  • コマンドプロンプトについて

    javaの入門書を読みながらjavaの学習をしています。 コマンドプロンプトのウィンドウについて質問致します。 最初にコマンドプロンプトにて以下のコマンドを実行しコンパイルします。 javac Helloworld.java 次に以下のコマンドで実行します。 java Helloworld すると実行結果が表示されず新しいウィンドウが開いてしまいます。 最初のウィンドウには「続行するには何かキーを押してください . . .」 と表示されています。 これはコマンドプロンプトの設定がおかしいのでしょうか? コンパイルは通っているので実行後、HelloWorldと表示されるはずなのですが・・・。 何卒、御教授願います。

  • VBSでDOSプロンプト

    諸事情がありVBSでDOSプロンプトの制御をしたいのです。 スクリプトを実行したらいくつかのDOSコマンドを処理して結果を表示する よくあると思うんですがYes/Noで聞かれるような処理もつけたいのです。 プロンプト起動まではできたのですがコマンドをどのように渡せばいいのかが わかりません。 いろいろ調べては見たのですが・・・ よろしくお願いいたします。

  • コマンドプロンプトの「%1」と「%~1」の違いがわからない

    コマンドプロンプトの「%1」と「%~1」の違いがわからない このサイトにhttp://ykr414.com/dos/bat.html %~1は「全ての引用句(")を削除して%1を展開する。」とありますがよくわかりません。 %1は入力されたファイルのフルパスだと思っているのですけど。 "%1"=%~1ということでしょうか。

  • コマンドプロンプトからファイル実行について

    コマンドプロンプト初心者です。 説明が下手で申し訳ありませんが、コマンドプロンプトを起動し、C:\Program Filesから辿ってファイルを実行させようとすると、 C:\Programは、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され、できなくて困っております。 パスがないのかなと思い、試行錯誤してみましたがダメでした。 あとDOS窓はコマンドプロンプトのことですよね?

  • DOSプロンプトの動作が変

    F-BASICと言うソフトで、DOSコマンドを実行しています。 「MD」・「COPY」等なんですが、1台のPCが変な動作をするようになりました。 現象 PCで実行すると、タスクバーに「DOSプロンプト」が表示になります。 普通なら、影で実行し終了したら消えるのですが、実行している様子がありません(実際に動いていません) タスクバーの「DOSプロンプト」をクリックすると、画面にDOSの画面が出て動き出します。 他のPCでは問題はありません スキャンディスクの完全は実行しましたが、改善されません OSは98SEです。 よろしくお願いいたします。