Я исследовал различные интерпретаторы командной строки и заметил, что интерпретатор Windows по умолчанию cmd.exe
не упоминается как оболочка вСтраница Википедии. Практически все интерпретаторы командной строки Unix-подобных систем называются оболочками, но не cmd.exe
большинство других интерпретаторов.
Есть ли для этого причина или «shell» — это просто обозначение интерпретаторов, принадлежащих Unix-подобным системам?
решение1
Оболочка - этоосновнойпользовательский интерфейс операционной системы. В Windows этот интерфейс GUI. Он используется explorer.exe
как "файловый менеджер", создает "нижнее меню", "окно папки" и управляет процессом открытия файла: при щелчке по файлу вызывается ShellExecute
функция.
Итак, "shell" в Windows — это UI, а "cmd" — только для некоторых устаревших или специальных команд. В течение многих лет Microsoft считала, что GUI — лучший способ что-либо сделать.
В 2006 году они обнаружили, что оболочки Unix (bash, ksh, zsh) очень популярны среди системных администраторов, поэтому они изобрелиPowerShell: замена cmd на основе .net, которая очень крутая, особенно если использовать с последней версией Powershell ISE. Она называетсяоболочкапотому что его главная цель — стать «гражданином первого класса» для многих задач системного администратора. Любой современный серверный продукт Microsoft имеет командлеты, поэтому вы можете сделать почти все из PowerShell (без MMC).
Я не знаю, почему в эпоху MS-DOS они не использовали слово "Shell" для "command.com". Возможно, они позаимствовали терминологию из CP/M и назвали его "командным процессором".
Забавно: был недолговечный файловый менеджер с графическим интерфейсом "DOS Shell" для DOS. Он был снят с производства в версии 6.22, и большинство людей в то время использовали Norton Commander.