¿El símbolo del sistema y MS-DOS son lo mismo?

12

Discutí con mi amigo que el símbolo del sistema es solo una versión GUI de MS-DOS que funciona en el entorno de formularios de Windows. Él está totalmente en desacuerdo conmigo.

¿Quién tiene la razón?

usuario978733
fuente
2
¿Qué te ha dicho tu investigación hasta ahora?
slhck
44
cmd.exees una bestia completamente diferente de MS-DOS.
Sathyajith Bhat
77
MS-DOS es un sistema operativo. El símbolo del sistema de Windows es una interfaz que se ve como MS-DOS.
Der Hochstapler

Respuestas:

20

Esto fue cierto una vez, pero ya no lo es.

Desde la interfaz de línea de comandos de Windows # MS-DOS - Wikipedia :

Todas las versiones de Microsoft Windows han tenido una interfaz de línea de comandos (CLI) como MS-DOS. Esto podría ejecutar muchas utilidades de línea de comandos de DOS y de Win32, OS / 2 1.xy Posix en la misma sesión de línea de comandos, permitiendo la conexión entre comandos. La interfaz de usuario y el icono hasta Windows 2000, siguieron la interfaz nativa de MS-DOS.

Windows de consumo (hasta 3.11, Win9x, WinME) se ejecutó como una interfaz gráfica de usuario (GUI) que se ejecuta sobre MS-DOS. Con Windows 95, 98 y ME, la parte de MS-DOS se integró, tratando ambos sistemas operativos como un paquete completo. La línea de comando accedió a la línea de comando de DOS (generalmente command.com), a través de un módulo de Windows (winoldap.mod).

Una nueva línea de Windows (Windows NT) arranca a través de un núcleo cuyo único propósito es cargar Windows. No se pueden ejecutar aplicaciones Win32 en el sistema de carga de la manera en que OS / 2, UNIX o Consumer Windows pueden iniciar sesiones en modo de caracteres.

Entonces, no, en cada Windows de la familia NT (por ejemplo, XP, Vista, 7, 8), el símbolo del sistema y MS-DOS son visualmente similares, pero bastante diferentes.

Dennis
fuente
En realidad, diría que nunca fue cierto. El equivalente a cmd.exehabría sido command.com, una parte bastante pequeña de MSDOS.
9

Son cosas diferentes: el símbolo del sistema no es MS-DOS , pero en lo que respecta al usuario, podrían ser lo mismo que hacer las mismas cosas.

Entonces depende de tu punto de vista. Desde el punto de vista técnico, su amigo lo corrige, pero desde la perspectiva del usuario usted es correcto (algo así como las diferencias que un experto detectaría).

ChrisF
fuente
Creo que te refieres a lo contrario, ¿verdad? Él es el que técnicamente es correcto porque no son literalmente lo mismo, el amigo es el que prácticamente corrige porque son lo mismo para el usuario.
Brad
@Brad: la forma en que leí la pregunta fue que el OP dijo que eran iguales pero su amigo dijo que no lo eran.
ChrisF
8

No.

(A menos que su definición de igualdad no se extienda más allá » Es una interfaz de texto y puedo ejecutar programas desde ella. « )

Lo que se ejecuta al hacer clic en Símbolo del sistema en el menú Inicio es el Procesador de comandos de Windows, también conocido como cmd.exe. Sus comandos incorporados y su sintaxis de secuencias de comandos (incluidas muchas peculiaridades) se basan en el antiguo command.comde CP / M y MS-DOS posterior, pero aparte de eso, son cosas completamente separadas. Además, command.comes un programa de 16 bits, mientras que cmd.exees una aplicación de consola nativa de Windows.

Las cosas eran diferentes en Windows 95, 98 y ME, donde command.com se ejecutaría en una VM de MS-DOS con Windows actuando como hipervisor (sí, ya tenían ese tipo de cosas en ese momento). Allí tenía una máquina virtual completa con DOS. Pero en Windows NT, 2000, XP, Vista y 7, no. DOS solo vive allí, en el ntvdm.exeque se encuentra la máquina NT Virtual DOS, que es solo una capa delgada de emulación que captura llamadas que la CPU no puede ejecutar directamente (por lo que funciona más rápido pero peor que DOSBox).

En cualquier caso, incluso command.comera solo un shell para DOS. No era el sistema operativo.

Por dentro, realmente me encojo cada vez que veo personas que se refieren a una ventana con texto gris sobre negro como MS-DOS. En la gran mayoría de los casos, en realidad no saben a qué se refieren.

Joey
fuente
4

Por lo que entiendo, MS-DOS es el sistema operativo de disco que lanzó Microsoft. El símbolo del sistema es una interfaz no gráfica que le permite interactuar con su sistema operativo.

Command Prompt es una aplicación de intérprete de línea de comandos disponible en la mayoría de los sistemas operativos de Windows, oficialmente llamada Windows Command Processor pero a veces llamada command shell. Símbolo del sistema es un programa de Windows que emula muchas de las capacidades de línea de comandos disponibles en MS-DOS, pero en realidad no es MS-DOS.

Símbolo del sistema es una versión GUI de command.com en MS-DOS. cmd.exe es una aplicación nativa de Windows que generalmente se ejecuta en una consola Win32. Esto le permite aprovechar las funciones disponibles para los programas nativos en la plataforma que de otro modo no estarían disponibles para los programas de DOS.

Por ejemplo, dado que cmd.exe es una aplicación nativa en modo de texto en OS / 2, puede usar tuberías reales en las tuberías de comandos, permitiendo que ambos lados de la tubería se ejecuten simultáneamente. Como resultado, es posible redirigir el error estándar en cmd.exe, a diferencia de COMMAND.COM. (COMMAND.COM usa archivos temporales y ejecuta los dos lados en serie, uno tras otro).

En realidad, cmd.exe es un programa de Windows que actúa como un intérprete de línea de comandos similar a DOS. Generalmente es compatible, pero proporciona extensiones que abordan algunas de las limitaciones de COMMAND.COM (Wikipedia explica las explicaciones anteriores).

Thu Yein Tun
fuente
2

Tu amigo tiene razón. MS-DOS es / era un sistema operativo (el sistema operativo de disco de Microsoft es lo que significa el acrónimo). La interfaz de usuario para DOS se denomina ( el ) símbolo del sistema.

Las primeras versiones de Windows se ejecutaron sobre DOS (haciéndolos técnicamente entornos operativos, aunque ya no estoy seguro de que alguien haga esa distinción), pero los sistemas operativos posteriores, comenzando con el Kernel NT, no lo hicieron: DOS desapareció.

Sin embargo, las personas aún necesitaban la funcionalidad proporcionada por el símbolo del sistema, y ​​en lugar de command.com obtuvimos command.exe (y actualmente cmd.exe), que cuando se ejecuta nos da un símbolo del sistema.

Pero, ese no es el único símbolo del sistema (ni cerca del primero) que la gente ha usado. Las indicaciones de comando también se llaman shells, y Unix tiene muchas, y los comandos son diferentes y, a menudo, muy potentes. Hablando de Power, Microsoft ha creado un nuevo símbolo del sistema para Windows llamado PowerShell que es increíblemente poderoso e interesante. Ver Wikipedia para más información: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces

Mark Allen
fuente
> La IU para DOS se llama (el) símbolo del sistema. También "línea de comandos".
Synetech
y CLI o interfaz de línea de comando.
Mark Allen
Técnicamente, CLI es un tipo de interfaz, no una instancia particular de una. Sería como llamar a una GUI de Windows (por ejemplo, utilicé la GUI de Windows ). Usted puede decir que, y es técnicamente cierto / precisa, pero que sólo sería raro.
Synetech
Solo lo llamo un símbolo del sistema. :)
Mark Allen
Simplemente lo llamo DOS (al menos solía hacerlo, desde hace algún tiempo, lo he estado llamando a regañadientes DOS puro ).
Synetech
1

¡No son lo mismo!

Aparentemente, muchas personas no se dan cuenta de que el símbolo del sistema de DOS y el símbolo del sistema de Windows no son lo mismo. En realidad, son dos programas diferentes: COMMAND.COM y CMD.EXE respectivamente.

Conozca sus indicaciones de comando

En primer lugar debido a las diferencias en la plataforma (DOS vs Windows) y el intérprete (command.com vs cmd.exe), habrá diferencias obvias como

  • DOS se ejecuta en pantalla completa sin un modo de ventana, por lo que no hay mode con:cols=COL lines=ROWcomando para cambiar el tamaño de la consola, y no hay titlecomando
  • DOS no es compatible con multitarea, multiusuario, registro, permisos, nombres largos de archivos, enlaces simbólicos / enlaces duros, red, Unicode, discos dinámicos y soporte avanzado de volúmenes ... así que no hay herramientas para administrar esos

Pero también hay diferencias importantes en las capacidades y la sintaxis de los comandos internos entre command.com y cmd.exe, así como algunas herramientas externas en los dos entornos. En MS-DOS hay

  • Sin funciones, bloques de código ()y ámbitos locales, lo que significa

    • for, if... debe ir seguido de un solo comando en la misma línea
    • no exit /bogoto :eof
    • no setlocalyendlocal
    • gotosolo puede saltar a una etiqueta, callsolo puede iniciar otro archivo por lotes
    • los comandos no se pueden agrupar como

      (
      command1
      command2
      ) >output.txt
      
  • Sin personaje de escape ^. Imprimir caracteres especiales sería una molestia, y no hay posibilidad de ejecutar comandos multilínea

  • No hay formatos especiales de if
    • no if cmdextversionyif defined
    • sin comparación de cadenas numéricas y sin distinción entre mayúsculas y minúsculas if [/i] string1 compare-op string2
  • Sin historial de comando y finalización de argumento de comando
  • Sin expansión indirecta (por ejemplo call set %%var%suffix%=string) de variables y sin expansión retardada (por ejemplo echo !var%suffix%!)
  • Sin manipulación avanzada de cuerdas
    • sin ~xxxVsoporte variable
    • sin %variable:~num1,num2%soporte de subcadena o reemplazo de cadena%variable:str=newstr%
  • No hay coincidencias parciales de nombres de variables para sety
    • no, set /aasí que no puedes hacer aritmética
    • no, lo set /pque significa que leer la entrada del usuario es una molestia
    • sin set "var=value"sintaxis
  • No %*para toda la línea de comando
  • No hay for /d, for /ro for /l. No, for /fasí que leer la entrada de los archivos también es difícil. La única forma de foren DOS esFOR %variable IN (set) DO command [command-parameters]
  • No findstr, y findno es compatible con Unicode
  • No hay variables de entorno especiales como%CD% %DATE% %TIME% %RANDOM% %ERRORLEVEL% %CMDEXTVERSION% %CMDCMDLINE% %HIGHESTNUMANODENUMBER%
  • Capacidad limitada de cambio de directorio
    • No pushd/popd
    • No se cd /d. Además, no, cd path with spacesy cd "path with spaces"debido a la falta de soporte para nombres largos
  • No color
  • No forfiles
  • No assoc(porque no hay GUI y los archivos deben abrirse manualmente desde la línea de comandos, por lo que no se necesita asociación de archivos)

Muchos comandos externos útiles en Windows como dónde, ordenar, más (en algunas versiones de DOS), elección ... también faltan en DOS


Y esto es lo que dijo Rich Turner de MS

Además, Cmd! = MS-DOS!

También quiero señalar una idea errónea común perpetuada por artículos como los anteriores: Cmd <> MS-DOS!

De hecho:

  • ¡Microsoft lanzó por última vez una versión "nueva" de MS-DOS (v8.0 en Windows ME), el 16 de septiembre de 2000, hace 16 años (a partir de este escrito)!
  • MS-DOS era un sistema operativo (aunque un sistema operativo relativamente simple para los estándares actuales) cuya interfaz de usuario principal era un shell de línea de comandos, hasta que Windows 3.xy 9.x llegó y ejecutó MS-DOS
  • El lenguaje de secuencias de comandos del shell de línea de comandos de MS-DOS era relativamente breve y moderadamente poderoso, pero carecía de muchas de las características más avanzadas y ricas que disfrutamos en PowerShell, Bash, etc.
  • Mientras que las versiones posteriores de MS-DOS crecieron en sofisticación y agregaron / reemplazaron algunos ensamblajes antiguos con nuevos códigos escritos en 'C', gran parte de MS-DOS permaneció escrita en ensamblajes x86 para mayor eficiencia y porque era la única forma en ese momento de obtener acceso a muchos dispositivos de hardware y periféricos. Esto hizo que MS-DOS no fuera portátil a CPUs no x86. Si está tan inclinado, puede descargar el código fuente de MS-DOS v1.1 y v2.0 para ver cuánto de las versiones anteriores de MS-DOS se escribieron en el ensamblado x86 (pista: casi todas eso)!

https://devblogs.microsoft.com/commandline/rumors-of-cmds-death-have-been-greatly-exaggerated/


Otras lecturas

En conclusión, en cuanto a funcionalidad, pueden ser un poco similares, pero por lo demás muy diferentes.

phuclv
fuente
1
Wow, esto parece una gran respuesta para ¿Cuál es la diferencia entre CMD y el símbolo del sistema en Windows? también
SamB