В computing оболочка оболочка представляет собой интерпретатор командной строки, который предоставляет доступ к службы операционной системы. Как правило, оболочки операционной системы используют либо интерфейс командной строки (CLI), либо графический пользовательский интерфейс (GUI), в зависимости от роли компьютера и конкретной операции. Он назван оболочкой, потому что это самый внешний уровень операционной системы.
Оболочки командной строки требуют, чтобы пользователь был знаком с командами и их синтаксисом вызова , а также понимал концепции специфичный для оболочки язык сценариев (например, bash ).
Графические оболочки не представляют большой нагрузки для начинающих пользователей компьютеров и отличаются простотой использования. Поскольку они также имеют определенные недостатки, большинство операционных систем с графическим интерфейсом пользователя также предоставляют оболочки командной строки.
Операционные системы предоставляют своим пользователям различные услуги, включая управление файлами, управление процессами (запуск и завершение приложений ), пакетная обработка, а также мониторинг и настройка операционной системы.
Большинство оболочек операционной системы не являются прямыми интерфейсами с базовым ядром, даже если оболочка взаимодействует с пользователем через периферийные устройства, напрямую подключенные к компьютеру. Оболочки на самом деле являются специальными приложениями, которые используют ядро API точно так же, как оно используется другими прикладными программами. Оболочка управляет взаимодействием пользователя с системой, предлагая пользователям вводить данные, интерпретируя их ввод, а затем обрабатывая вывод из базовой операционной системы (во многом как цикл чтения-оценки-печати, REPL). Поскольку оболочка операционной системы на самом деле является приложением, ее можно легко заменить другим аналогичным приложением для большинства операционных систем.
Помимо оболочек, работающих в локальных системах, существуют различные способы сделать удаленные системы доступными для локальных пользователей; такие подходы обычно называют удаленным доступом или удаленным администрированием. Первоначально доступно на многопользовательских мэйнфреймах, которые обеспечивали текстовые пользовательские интерфейсы для каждого активного пользователя одновременно с помощью текстового терминала, подключенного к мэйнфрейму через последовательную линию или модем, удаленный доступ распространился на Unix-подобные системы и Microsoft Windows. В Unix-подобных системах протокол Secure Shell обычно используется для текстовых оболочек, а SSH-туннелирование может использоваться для графических интерфейсов пользователя (GUI) на основе X Window System. В Microsoft Windows протокол удаленного рабочего стола может использоваться для обеспечения удаленного доступа с графическим интерфейсом пользователя, а поскольку Windows Vista, PowerShell Remote может использоваться для удаленного доступа на основе текста через WMI, RPC и WS-Management.
Большинство оболочек операционных систем делятся на две категории - командную строку и графические. Оболочки командной строки предоставляют интерфейс командной строки (CLI) для операционной системы, а графические оболочки предоставляют графический интерфейс пользователя (GUI). Другие возможности, хотя и не столь распространенные, включают голосовой пользовательский интерфейс и различные реализации текстового пользовательского интерфейса (TUI), которые не являются CLI. Относительные достоинства оболочек на основе CLI и GUI часто обсуждаются.
A интерфейс командной строки (CLI) - это оболочка операционной системы, в которой используются буквенно-цифровые символы, вводимые на клавиатуре для предоставления инструкций и данных операционной системе в интерактивном режиме. Например, телетайп может посылать коды, представляющие нажатия клавиш, программе интерпретатора команд, запущенной на компьютере; интерпретатор команд анализирует последовательность нажатий клавиш и отвечает сообщением об ошибке, если он не может распознать последовательность символов или может выполнить какое-либо другое действие программы, такое как загрузка прикладной программы, перечисление файлов, вход пользователя в систему и многие другие. Операционные системы, такие как UNIX, имеют большое количество программ оболочки с различными командами, синтаксисом и возможностями, при этом оболочка POSIX является базовой. Некоторые операционные системы имели только один стиль командного интерфейса; стандартные операционные системы, такие как MS-DOS, поставлялись со стандартным командным интерфейсом (COMMAND.COM ), но также часто были доступны сторонние интерфейсы, предоставляющие дополнительные возможности или функции, такие как меню или удаленное выполнение программы.
Прикладные программы также могут реализовывать интерфейс командной строки. Например, в Unix-подобных системах программа telnet имеет ряд команд для управления каналом связи с удаленной компьютерной системой. Поскольку команды для программы состоят из тех же нажатий клавиш, что и данные, отправляемые на удаленный компьютер, требуются некоторые средства их различения. Управляющая последовательность может быть определена с помощью специального локального нажатия клавиши, которое никогда не передается, но всегда интерпретируется локальной системой. Программа становится модальной, переключаясь между интерпретацией команд с клавиатуры или передачей нажатий клавиш в качестве данных для обработки.
Особенностью многих оболочек командной строки является возможность сохранять последовательности команд для повторного использования. Файл данных может содержать последовательности команд, которым CLI может следовать, как если бы они были введены пользователем. При выполнении этих сохраненных инструкций могут применяться специальные функции интерфейса командной строки. Такие командные файлы (файлы сценариев) можно многократно использовать для автоматизации рутинных операций, таких как инициализация набора программ при перезапуске системы. Использование оболочек в пакетном режиме обычно включает структуры, условные выражения, переменные и другие элементы языков программирования; некоторые из них имеют самое необходимое для этой цели, другие являются очень сложными языками программирования сами по себе. И наоборот, некоторые языки программирования можно использовать в интерактивном режиме из оболочки операционной системы или в специальной программе.
Оболочка командной строки может предлагать такие функции, как завершение командной строки, когда интерпретатор расширяет команды на основе нескольких символов, введенных пользователем. Интерпретатор командной строки может предлагать функцию истории, чтобы пользователь мог вспомнить предыдущие команды, выданные системе, и повторить их, возможно, с некоторым редактированием. Поскольку все команды операционной системы должны были вводиться пользователем, короткие имена команд и компактные системы для представления параметров программы были обычным явлением. Краткие имена иногда было трудно вспомнить пользователю, а ранним системам не хватало ресурсов хранения для предоставления подробного интерактивного руководства пользователя.
A графический интерфейс пользователя (GUI) предоставляет средства для графического управления программами, а также позволяет выполнять такие операции, как открытие, закрытие, перемещение и изменение размера окон как переключение фокуса между окнами. Графические оболочки могут быть включены в среду рабочего стола или поставляться отдельно, даже как набор слабо связанных утилит.
Большинство графических пользовательских интерфейсов развивают метафору «электронного рабочего стола», где файлы данных представлены, как если бы они были бумажными документами на столе, а прикладные программы аналогичным образом имеют графическое представление вместо вызывается по именам команд.
Графические оболочки обычно строятся поверх оконной системы . В случае X Window System или Wayland оболочка состоит из X Window Manager или композитора Wayland соответственно, как а также одной или нескольких программ, обеспечивающих функциональность для запуска установленных приложений, для управления открытыми окнами и виртуальными рабочими столами и часто для поддержки механизма виджетов.
В случае macOS, Quartz можно рассматривать как оконную систему, а оболочка состоит из Finder, Dock, SystemUIServer и Mission Control.
Современные версии операционной системы Microsoft Windows используют оболочку Windows как их оболочка. Оболочка Windows предоставляет среду рабочего стола, меню «Пуск» и панель задач, а также графический интерфейс пользователя для доступа к функциям управления файлами. операционной системы. Более старые версии также включают Program Manager, который был оболочкой для Microsoft Windows серии 3.x и фактически поставлялся с более поздними версиями Windows как 95, так и NT, по крайней мере, через Windows XP. Интерфейсы Windows версий 1 и 2 заметно отличались.
Настольные приложения также считаются оболочками, если они используют сторонний движок. Точно так же многие люди и разработчики, недовольные интерфейсом Windows Explorer, разработали программное обеспечение, которое либо изменяет функционирование и внешний вид оболочки, либо полностью ее заменяет. WindowBlinds от StarDock - хороший пример приложения первого типа. LiteStep и Emerge Desktop - хорошие примеры последнего.
Программы взаимодействия и специализированное программное обеспечение позволяют пользователям Windows использовать эквиваленты многих из различных графических интерфейсов пользователя на основе Unix, обсуждаемых ниже, а также Macintosh. Эквивалент OS / 2 Presentation Manager для версии 3.0 может запускать некоторые программы OS / 2 при определенных условиях, используя подсистему среды OS / 2 в версиях Windows NT.
«Оболочка» также используется в широком смысле для описания прикладного программного обеспечения, которое «построено вокруг» определенного компонента, такого как веб-браузеры и почтовые клиенты, по аналогии с оболочками, найденными в природа. Их также иногда называют «оболочками».
В экспертных системах оболочка - это часть программного обеспечения, которая является «пустой» экспертной системой без базы знаний для какого-либо конкретного приложения..