Я спорил с моим другом, что командная строка - это просто версия MS-DOS с графическим интерфейсом, которая работает в среде форм Windows. Он полностью не согласен со мной.
Кто прав?
Я спорил с моим другом, что командная строка - это просто версия MS-DOS с графическим интерфейсом, которая работает в среде форм Windows. Он полностью не согласен со мной.
Кто прав?
Когда-то это было правдой, но больше нет.
Из интерфейса командной строки 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 визуально похожи, но совершенно разные.
Это разные вещи - командная строка - это не MS-DOS, но для пользователя это может быть то же самое, что и для одних и тех же вещей.
Так что это зависит от вашей точки зрения. С технической точки зрения ваш друг это правильно, но с точки зрения пользователя вы правы (вроде как есть различия, которые заметит эксперт).
(Если ваше определение равенства не распространяется на прошлое ». Это текстовый интерфейс, и я могу запускать программы из него. « )
Когда вы нажимаете Командная строка в меню Пуск, запускается командный процессор 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. В подавляющем большинстве случаев они на самом деле не знают, что имеют в виду.
Насколько я понимаю, 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 (приведенные выше пояснения приведены в Википедии).
Твой друг прав. 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