Шелл (вычисления)


В вычислительной технике оболочка — это компьютерная программа, которая предоставляет услуги операционной системы пользователю или другим программам. Как правило, оболочки операционной системы используют либо интерфейс командной строки (CLI), либо графический интерфейс пользователя (GUI), в зависимости от роли компьютера и конкретной операции. Он называется оболочкой, потому что это самый внешний слой операционной системы. [1] [2]

Операционные системы предоставляют своим пользователям различные услуги, включая управление файлами , управление процессами (запуск и завершение приложений ), пакетную обработку , а также мониторинг и настройку операционной системы.

Большинство оболочек операционной системы не являются прямыми интерфейсами к базовому ядру , даже если оболочка взаимодействует с пользователем через периферийные устройства, подключенные непосредственно к компьютеру. На самом деле оболочки — это специальные приложения, которые используют API ядра точно так же, как и другие прикладные программы. Оболочка управляет взаимодействием пользователя и системы, запрашивая у пользователей ввод данных, интерпретируя их ввод, а затем обрабатывая выходные данные базовой операционной системы (очень похоже на цикл чтения-оценки-печати, REPL ). [3] Поскольку оболочка операционной системы на самом деле является приложением, для большинства операционных систем ее можно легко заменить другим аналогичным приложением.

Помимо оболочек, работающих в локальных системах, существуют различные способы сделать удаленные системы доступными для локальных пользователей; такие подходы обычно называются удаленным доступом или удаленным администрированием. Первоначально доступный на многопользовательских мэйнфреймах , которые предоставляли текстовые пользовательские интерфейсы для каждого активного пользователя одновременно с помощью текстового терминала , подключенного к мэйнфрейму через последовательную линию или модем , удаленный доступ распространился на Unix-подобные системы и Microsoft Windows. В Unix-подобных системах протокол Secure Shell (SSH) обычно используется для текстовых оболочек, а туннелирование SSH можно использовать для графических пользовательских интерфейсов (GUI) на основе системы X Window . В Microsoft Windows протокол удаленного рабочего стола можно использовать для обеспечения удаленного доступа к графическому интерфейсу, а начиная с Windows Vista PowerShell Remote можно использовать для текстового удаленного доступа через WMI, RPC и WS-Management. [4]

Большинство оболочек операционной системы относятся к одной из двух категорий: командной строки и графической. Оболочки командной строки предоставляют интерфейс командной строки (CLI) для операционной системы, а графические оболочки предоставляют графический интерфейс пользователя (GUI). Другие возможности, хотя и не столь распространены, включают голосовой пользовательский интерфейс и различные реализации текстового пользовательского интерфейса (TUI), которые не являются CLI, например системы текстовых меню. Относительные преимущества оболочек на основе CLI и GUI часто обсуждаются. Многие пользователи компьютеров используют оба варианта в зависимости от выполняемой задачи.

Ранние интерактивные системы предоставляли простой интерпретатор командной строки как часть резидентного монитора . Этот интерпретатор может называться по-разному, например, COMCONв системах DEC TOPS-10 . [5] Интерпретатор будет выполнять одну из нескольких предопределенных команд, одна из которых будет запускать пользовательскую программу. Общие команды будут регистрировать пользователя в системе и выходить из нее, выделять, освобождать и манипулировать устройствами и файлами, а также запрашивать различные фрагменты информации о системе или пользовательском процессе. [6]