WindowsはまだMS-DOSに依存していますか?


71

OSコースを開始しようとしていますが、Appleユーザーとして、Windows OSの基本的な詳細にあまり詳しくありません。私は疑問に思っていました、MS DOSはWindows上で実行されたままでまだ使用されていますか、それともWindowsのみがOSとして使用されていますか?MS-DOSが起動に使用されているが、Windowsには他のすべてのOS機能が組み込まれており、したがって他のすべてのOS操作に使用されていることを読んだため、少し混乱しました...


この議論の終わりは面白そうです。
user2284570

いいえ、違います。MS-DOSに依存した最後のコンシューマOSはWindows Meでした。Windows XP、Vista、7以降はすべてWindows NTアーキテクチャに基づいています。
bwDraco

回答:


140

Microsoft Windowsに関しては、2つの明確な系統がありますが、一方の系統について学んだことを他の系統について書いた場合には役に立ちません。

  • DOS +、Windowsの系統は、DOS +のWindowsにバージョン3.11までのすべてのバージョン、DOS +のWindows 95、DOS + Windows 98、およびDOS + Windows Millennium Editionのを備えています。WindowsがDOSの上に階層化されています。1990年代前半から中期にかけて、多くの人々がDOSがなくなってWindowsがなくなったことを世界に信じさせたいと思っていたので、オペレーティングシステム。

    これは、DOS + Windowsブートストラッププロセスです。

  • Windows NTの系譜は、Windows NT 3.xのはWindows NT 4.0、Windows NTの5.0( "Windows 2000の")、のWindows NT 5.1( "Windows XPの")、Windows NTの5.2のWindows XPおよび"Windows Server 2003の"の(一部のエディションを含み、 )、Windows NT 6.0(「Windows Vista」)、およびWindows NT 6.1(「Windows 7」)。これは、DOSへの完全に異なる方法で動作し、DOSの上に階層化されていない、とNT仮想DOSマシンである(NTVDM)のくぼみでDOSアプリケーションを実行することができ、仮想マシンで実行さのWindows NTの上に他のではなく、道の周りに。

    これは、Windows NT 6.xブートストラッププロセスです。

また、Windows NTで誤って "DOSプロンプト"と言われたときも、ここでの回答で起こったように、役に立ちません。オペレーティングシステムはなくコマンドインタープリターであるという事実は別として、これは「DOS」を「テキストユーザーインターフェイス」と「コマンドインタープリター」でまとめます。どちらも実際にはDOSと同義ではありません。DOSは、MS-DOS、PC-DOS、DR-DOS、FreeDOS、OpenDOSなどのオペレーティングシステムのファミリです。

Windows NTでコマンドプロンプトウィンドウを開いている場合CMD、ほとんどの場合、ボックスで提供されるMicrosoftのデフォルトのコマンドインタープリターであり、通常のテキストユーザーインターフェイスであるWin32プログラムです。「DOS」もNTVDMもありません。Win32コンソールオブジェクトと通信するWin32プログラムがあります。そして、実際には、マイクロソフトのさまざまなリソースキット内のツールのすべてを含む1は、Windows NT上で実行することができ、多くのTUIプログラムのために、ありませんまだ、これらはWin32コンソールを実行するすべての普通のWin32プログラムであるため、DOSのないっぽさが私は、どこでも絵で/ Oも。

皮肉なことに、1993年にWindows NT 3.1がリリースされたことを考えると、Windows NTの系統実際には 1990年代半ばのすべての人々がDOSベースではないWindowsがオペレーティングシステムであり、 DOS + Windows 95があった世界。

そして、18年後も、Windows NTはDOSのように機能せず、のように機能しないことを一部の人々に伝えようとしています。☺

参考文献


11
良くなるだけです。アプリケーション間でAlt-Tabキーを使用できることを今でも教えています。。。
surfasb

2
Windows 95以降では、DOSがオペレーティングシステム層ではなくブートローダーとして使用されているのは事実ではありません。つまり、Windows 95以降は、ブートプロセス中を除いてDOSサービスを呼び出しません。
ウィンストンイーバート

3
@Winston Ewert、私の知る限り、WindowsプログラムはWindows 95のdos INT 21hに依存していました。たとえば、初期化のためのINT 21h関数55hおよび終了のためのINT 21h関数4Ch。98とMEには答えられません。しかし、95はそうでした。
-artifex

6
しかし、あなたはまだ explorer.exeの下のWindows 7の予約DOSデバイス名を使用することはできません!
ローレンス

5
人!あなたはこのサイトがどのように機能するか知っています。DOSモード、msdos.sysオプションの意味、およびWin32でファイル名として複数の名前を使用できない理由について質問したい場合は、このページの上部にある質問のハイパーリンクを使用してください。さらに、すでに 持っている人からの質問を読むことから始めます
JdeBP

23

さらに、Windows 95はDOS上のGUIだけではありませんでした。詳細はこちら:

http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx


1
これは、VxDインターフェイス全体とVMMスイッチャーのことです。これは、OS上でいくらか前進し、依然として多くの後方互換性を維持する興味深い方法でした。
リッチHomolka

Windows 95にはMS-DOS 7が付属していましたが、DOS部分のみを使用してDOSのみのブートディスクを作成し、MS-DOS 6のわずかに壊れたエディションのように感じることができました(さらに、特徴)。
ランドルフリチャードソン

4
最も正しい答えは次のとおりです。WindowsはWindows 95以降、DOSに依存していません。厳密に言えば、Windows 3.11は32ビットドライバーが引き継いだ後はDOSを必要としませんでした。しかし、3.11にはブートローダーが付属していませんでした。そのため、開始点に到達するにはDOSが必要でした。
イアン・ボイド

1
そのブログは、リンクのおかげでかなり良い読み物です
クレイジー

20

いいえ。 「NTカーネル」を使用する前のすべてのWindowsバージョンは、DOS上のGUIに似ていました。Windows XPの導入で特に一般的になったNT(およびWindows VistaとWindows 7は両方ともNTカーネルを使用します)では、基盤となるOSとしてDOSを使用する必要がなくなりました

32ビットバージョンのWindowsにはDOSプロンプトがまだあり、これcommand.comは実行ダイアログに入力することで実行でき、ほとんどの古いDOSプログラムを実行できます。Windowsのすべてのバージョンには、バッチファイルとDOSに似たコマンド(通常はDOSスタイルのコンソールと対話するように設計されたネイティブWindowsアプリケーション)を実行するために使用できるコマンドプロンプトがあります。64ビットWindowsは16ビットプロセスをサポートしていないため、DOSアプリケーションを実行できません。

コマンドプロンプトは、DOSプログラムを実行したり、コマンドラインからWindowsプログラムを起動したりするために使用できる特殊なアプリケーションのようなものとして表示するのが最善でしょう。

注:「DOSプロンプト」という用語は、NTカーネルが導入される前の「コマンドプロンプト」を説明するためによく使用されていました。今日でも多くの人が「DOSプロンプト」という用語を使用していますが(通常はDOS環境で使用できる「DOSコマンド」と呼ばれていた同じコマンドの多くを実行するため)、「コマンドWindowsのNTバリアントでは、「プロンプト」は技術的に正しいです。


13
レガシー(古代、16ビット)DOSアプリケーションは、コマンドプロンプトサブシステム内でエミュレートされるNTVDMで実行されます。NTVDMは64ビットWindowsシステムでは使用できないため、DOSBoxやVirtualBoxなどの16ビットDOSアプリを実行するには、サードパーティのエミュレーターが必要です。
afrazier

11
NTVDMが64ビットWindowsで使用できない理由は、コードを実行する前にCPUを16ビットモードに切り替える単なる薄いラッパーであるためです。64ビットモードでは、CPUは一時的に32ビットモードに切り替えて32ビットコードを実行できます。コールドリブートなしでは16ビットコードを実行できません。
Hello71

2
すべてへの注意:この投稿からコメントを削除しました。関係者の皆様へ:控えめに保ち、可能な限りいつでも拡張ディスカッションをチャットに移動する必要があることを覚えておいてください。
DMA57361

人々はこの投稿について激しく議論し続けたため、今のところそれをロックしています。再びコメントが削除されました。
ヒンクル

@ Hello71間違っています。たとえば、Linuxでは可能です。また、64ビットLinuxで16ビットDOSおよびWin 3.1アプリを実行できます。
Anixx

5

ランドルフへの不安としてより多く、しかし彼だけではなく、コマンドラインインターフェースDOSを繰り返し混乱させます

[DOS] タグと[MS-DOS] タグの多くは同じ間違いに悩まされていることに注意してください。MS-DOSには当初、テキストモード、command.com私たちの多くにとって+ノートンコマンダーと呼ばれるコマンドラインインターフェイス、 、ansi.sysで描画されますが、キーボードだけでなくマウスでも制御できますが、矢印キーとホットキーでも簡単に制御できます。

その後、WindowsはDOS(2.0、3.0、3.1、3.11)のに構築され、DOSウィンドウのアイコンがウィンドウ内のコマンドインターフェイスの名前としてウィンドウ内に再表示されました。

しかし、Windows-NTおよびWindows-95または-98ではMS-DOSは放棄されましたが、コマンドインタープリターcmd.exe(cmd32.exe)は依然として存在し、同じまたはほぼ同じ構文とキーワードが使用されていました。しかし、これは、BASIC、irb(Ruby)、scala-repl、psql(Postgresql)、sqlplus(oracle)、bc、R、rhinoなどのような他のテキスト形式のコマンドインタープリターとして、Windows内で実行されるプログラムでした。など、いくつかのプラットフォームで実行されます。

DOSまたはMS-DOSが最初に思いついたものではないため、このMS-DOSスタイルを呼び出すことは誤解を招きます。ずっと古いです。

Windowsでさえ、DOSコマンドの実行に制限されていません- バッチファイルの書き込みの一般的なプラクティスは、Windowsプログラムを起動する前にいくつかのパラメーターを指定することでした。たとえば、CLASSPATH、JAVA_HOME、Javaプログラムの-Xmxなどのjavaパラメータの設定。

多くの人々は、コマンドラインインターフェースは以前の遺物だと考えています-数回のキーストロークで何千ものファイルを処理する力を知らない人たちです。彼らはwshやモナドのことも知りません。しかし、専門家にとっては、コマンドインタープリターはUnixやLinuxとほぼ同じくらい便利なWindows上にあります。あまり知られていませんが、多くの管理者にとって不可欠です。

sh.exeとsed、awk、bc、tail、rev、catなどのgnu-toolchainの移植版もあり、これらはすべてネイティブwin32アプリとして使用できます。

おそらくcmd.exeの下で古いDOSプログラムを実行できますが、DOSモードでWindowsプログラムを実行することはできません。したがって、cmd.exe DOS であると人々に伝えないでください-そうではありません。そして、それはDOSのようなものではありません。あなたが何を意味するか、ですinteractive command-line programcommand-line interface

  • DOSプロンプト
  • DOSバッチファイル
  • DOSのようなコマンド
  • DOSスタイルのコンソール
  • DOSアプリケーション

はほとんど常に誤解を招く用語です。アマチュアにとっては適切かもしれませんが、聴衆にあなたが話していることを理解してもらいたいなら、あなたは自分自身に尋ねるべきです:特別なOS、DOSに制限されていますか?CLIスタイルの名前は「DOSスタイル」と呼ばれますか?これは歴史的に正しいですか?あなたの聴衆はDOSをまったく知っていますか?理解に役立ちますか?これらのプログラムは本当にDOSで実行されますか?

複雑なことを説明するには、外科医のナイフのように鋭い正しい表現が必要です。誤った表現は、視聴者の脳に間違った印象を与えます。ずさんな表現は何もないよりも悪い。それらを避けてください。CLIコマンドラインインターフェイスで入力するのが難しい場合に使用します。

SU、SE、およびその他の側の誤解を招くタグを修正します。


よく言った。悪い用語がたくさんあります。
本部Milind R

Win95およびWin98では、cmd.exeはありませんでした。
Anixx

2

Windows NTファミリ(NT、2000、XP、2003、Vista、2008、7)では、DOSに依存しません。下位互換性のために、DOSエミュレーターのみがあります。

ただし、NT初期のDOSとの互換性の結果であるいくつかの制限がまだあります。たとえば、「CON」または「PRN」という名前のファイルまたはディレクトリは、DOSでデバイスを表すために予約されているため、作成できません。


1

実際、WindowsはDOSを使用しなくなりました。DOS(またはcmd)へのプロンプトは、Windows XP、Vista、またはSevenでエミュレートされます。Windowsは独自のリソースから起動します。


9
-1:間違っています。そうではありませんto DOS (or cmd)。コマンドインタープリターcmd.exeがありますが、それはDOSではありません。DOSには、コマンドインタープリターcommand.comもありました。これは、構文、キーワード、および使用法が非常に似ていますが、コマンドインターフェイスはDOSの一部にすぎません。DOSではありません。
ユーザー不明

はいconsole、PEヘッダーの型はWin32 / Win64サブシステムの一部です。16ビットではありません。
user2284570
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.