10

Я спорил с моим другом, что командная строка - это просто версия MS-DOS с графическим интерфейсом, которая работает в среде форм Windows. Он полностью не согласен со мной.

Кто прав?

5 ответов5

17

Когда-то это было правдой, но больше нет.

Из интерфейса командной строки MS-DOS # Windows - Википедия:

Все версии Microsoft Windows имели интерфейс командной строки (CLI), подобный MS-DOS. Это может запускать многие DOS и различные утилиты командной строки Win32, OS/2 1.x и Posix в одном сеансе командной строки, позволяя передавать по трубам между командами. Пользовательский интерфейс и значок до Windows 2000 следовали стандартному интерфейсу MS-DOS.

Потребительская Windows (до 3.11, Win9x, WinME) работала как графический интерфейс пользователя (GUI), работающий поверх MS-DOS. С Windows 95, 98 и ME часть MS-DOS была интегрирована, рассматривая обе операционные системы как полный пакет. Командная строка обращалась к командной строке DOS (обычно command.com) через модуль Windows (winoldap.mod).

Новая линейка Windows (Windows NT) загружается через ядро, единственной целью которого является загрузка Windows. Нельзя запускать приложения Win32 в системе загрузчика так, как OS/2, UNIX или Consumer Windows могут запускать сеансы в символьном режиме.

Так что нет, в каждой Windows из семейства NT (например, XP, Vista, 7, 8) командная строка и MS-DOS визуально похожи, но совершенно разные.

8

Это разные вещи - командная строка - это не MS-DOS, но для пользователя это может быть то же самое, что и для одних и тех же вещей.

Так что это зависит от вашей точки зрения. С технической точки зрения ваш друг это правильно, но с точки зрения пользователя вы правы (вроде как есть различия, которые заметит эксперт).

7

Нет.

(Если ваше определение равенства не распространяется на прошлое ». Это текстовый интерфейс, и я могу запускать программы из него. « )

Когда вы нажимаете Командная строка в меню Пуск, запускается командный процессор Windows, также известный как cmd.exe . Его встроенные команды и синтаксис сценариев (включая многие причуды) основаны на древнем command.com из CP/M и более поздних MS-DOS, но, кроме того, они совершенно разные вещи. Кроме того, command.com - это 16-разрядная программа, а cmd.exe - это собственное консольное приложение Windows.

Все было по-другому в Windows 95, 98 и ME, где command.com запускался на виртуальной машине MS-DOS с Windows, действующей как гипервизор (да, у них уже было такое). Там у вас была целая виртуальная машина под DOS. Но на Windows NT, 2000, XP, Vista и 7 - нет. DOS живет там только в ntvdm.exe который является виртуальной машиной DOS NT, представляющей собой тонкий слой эмуляции, фиксирующий вызовы, которые ЦП не может выполнять напрямую (именно поэтому он работает быстрее, но хуже, чем DOSBox).

В любом случае, даже command.com был просто оболочкой для DOS. Это была не операционная система.

Внутри я на самом деле съеживаюсь каждый раз, когда вижу людей, обращающихся к окну с серым на черном текстом как MS-DOS. В подавляющем большинстве случаев они на самом деле не знают, что имеют в виду.

4

Насколько я понимаю, MS-DOS - это дисковая операционная система, выпущенная Microsoft. Командная строка - это неграфический интерфейс, который позволяет вам взаимодействовать с вашей операционной системой.

Командная строка - это приложение интерпретатора командной строки, доступное в большинстве операционных систем Windows, официально называемое Windows Command Processor, но иногда называемое командной оболочкой. Командная строка - это программа для Windows, которая эмулирует многие возможности командной строки, доступные в MS-DOS, но на самом деле это не MS-DOS.

Командная строка - это версия command.com для MS-DOS с графическим интерфейсом. cmd.exe является родным приложением Windows, обычно работающим в консоли Win32. Это позволяет ему использовать функции, доступные для собственных программ на платформе, которые в противном случае недоступны для программ DOS.

Например, поскольку cmd.exe является приложением в текстовом режиме в OS/2, он может использовать реальные конвейеры в командных конвейерах, позволяя обеим сторонам конвейера работать одновременно. В результате можно перенаправить стандартную ошибку в cmd.exe, в отличие от COMMAND.COM. (COMMAND.COM использует временные файлы и запускает две стороны последовательно, одну за другой.)

На самом деле cmd.exe - это программа для Windows, которая работает как DOS-подобный интерпретатор командной строки. Как правило, он совместим, но предоставляет расширения, которые касаются некоторых ограничений COMMAND.COM (приведенные выше пояснения приведены в Википедии).

2

Твой друг прав. MS-DOS является / была операционной системой (акроним расшифровывается как дисковая операционная система Microsoft). Пользовательский интерфейс для DOS называется а () командной строки.

Первые несколько версий Windows работали поверх DOS (что делало их технически работающими средами, хотя я не уверен, что кто-то больше делает это различие), но более поздние ОС, начиная с ядра NT, этого не сделали - DOS исчезла.

Тем не менее, люди все еще нуждались в функциональности, предоставляемой командной строкой, и вместо command.com мы получили command.exe (и в наши дни cmd.exe), который при запуске выдает нам командную строку.

Но это не единственная (и нигде рядом с первой) командная строка, которую использовали люди. Командные строки также называются оболочками, и в Unix их много, а команды разные и часто очень мощные. Говоря о Power, Microsoft создала новую командную строку для Windows под названием PowerShell, которая является невероятно мощной и интересной. См. Википедию для получения дополнительной информации: http://en.wikipedia.org/wiki/Command-line_interface#Operating_System_Command-Line_Interfaces

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .