husan schrieb: gandro schrieb: Zu cmd.exe vs. DOS: Die cmd.exe hat mit DOS eigentlich nichts zu tun. Die Wikipedia erzählt da Mist.
Sie benutzt lediglich die gleiche Ausgabe wie die DOS-Emulation.
Mich würde jetzt mal interessieren, was den die cmd.exe genau ist. Ich möchte nicht damit sagen, das deine Aussage falsch ist...nur so aus reiner Interesse.
Vielleicht hab ich mich etwas weit aus dem Fenster gelehnt, aber soweit ich das sehe, findet die DOS-Emulation nicht in der cmd.exe statt.
Meine Theorie (wie gesagt, ohne Garantie):
Nur schon um z.B. ANSI-C und dessen stdio zu unterstützen, braucht Windows eine Terminal-Emulation. Diese hat an sich keinen Namen, sondern ist eben dieses schwarze Fenster in dem die cmd.exe läuft. Diese Terminal-Emulation emuliert eben ein Terminal, ist also nichts weiter als eine Textausgabe.
Die DOS-Emulation von Windows baut auf dieser Textausgabe auf, gibt also die Ausgabe von DOS-Anwendungen dort aus. So z.B. die bei Windows mitgelieferte COMMAND.COM (die offenbar aus MS-DOS 5.0 stammt).
Die cmd.exe hingegen ist nichts weiter als ein Kommandozeilen-Interpreter, der ebenfalls in dieser Terminal-Emulation läuft.
Verwirrenderweise ist der Befehlssatz der cmd.exe stark an die COMMAND.COM angelehnt. Schlimmer noch, praktisch immer wenn man eine Terminal-Emulation braucht (sei es für DOS-Anwendungen oder für Anwendungen die stdout verwenden), startet man dafür in der Regel die cmd.exe.
Drum werden cmd.exe und die Terminal-Emulation oftmals als das gleiche angesehen, was sie aber imho nicht sind.