Шелл (вычисления)
В вычислительной технике оболочка — это компьютерная программа, которая предоставляет услуги операционной системы пользователю или другим программам. Как правило, оболочки операционной системы используют либо интерфейс командной строки (CLI), либо графический интерфейс пользователя (GUI), в зависимости от роли компьютера и конкретной операции. Он называется оболочкой, потому что это самый внешний слой операционной системы. [1] [2]
Обзор
[ редактировать ]Операционные системы предоставляют своим пользователям различные услуги, включая управление файлами , управление процессами (запуск и завершение приложений ), пакетную обработку , а также мониторинг и настройку операционной системы.
Большинство оболочек операционной системы не являются прямыми интерфейсами к базовому ядру , даже если оболочка взаимодействует с пользователем через периферийные устройства, подключенные к компьютеру напрямую. ядра На самом деле оболочки — это специальные приложения, которые используют API точно так же, как и другие прикладные программы. Оболочка управляет взаимодействием пользователя и системы, запрашивая у пользователей ввод данных, интерпретируя их ввод, а затем обрабатывая выходные данные базовой операционной системы (очень похоже на цикл чтения-оценки-печати, REPL ). [3] Поскольку оболочка операционной системы на самом деле является приложением, для большинства операционных систем ее можно легко заменить другим аналогичным приложением.
Помимо оболочек, работающих в локальных системах, существуют различные способы сделать удаленные системы доступными для локальных пользователей; такие подходы обычно называются удаленным доступом или удаленным администрированием. Первоначально доступный на многопользовательских мэйнфреймах , которые предоставляли текстовые пользовательские интерфейсы для каждого активного пользователя одновременно с помощью текстового терминала, подключенного к мэйнфрейму через последовательную линию или модем , удаленный доступ распространился на Unix-подобные системы и Microsoft Windows. В Unix-подобных системах протокол Secure Shell (SSH) обычно используется для текстовых оболочек, а туннелирование SSH можно использовать для системы X Window графических пользовательских интерфейсов (GUI) на основе . В Microsoft Windows протокол удаленного рабочего стола можно использовать для обеспечения удаленного доступа к графическому интерфейсу, а начиная с Windows Vista PowerShell Remote можно использовать для текстового удаленного доступа через WMI, RPC и WS-Management. [4]
Большинство оболочек операционной системы относятся к одной из двух категорий: командной строки и графической. Оболочки командной строки предоставляют интерфейс командной строки (CLI) для операционной системы, а графические оболочки предоставляют графический интерфейс пользователя (GUI). Другие возможности, хотя и не столь распространены, включают голосовой пользовательский интерфейс и различные реализации текстового пользовательского интерфейса (TUI), которые не являются CLI, например системы текстовых меню. Относительные преимущества оболочек на основе CLI и GUI часто обсуждаются. Многие пользователи компьютеров используют оба варианта в зависимости от выполняемой задачи.
История
[ редактировать ]Ранние интерактивные системы предоставляли простой интерпретатор командной строки как часть резидентного монитора . Этот интерпретатор может называться по-разному, например COMCON
на системах DEC TOPS-10 . [5] Интерпретатор будет выполнять одну из нескольких предопределенных команд, одна из которых будет запускать пользовательскую программу. Общие команды будут регистрировать пользователя в системе и выходить из нее, выделять, освобождать и манипулировать устройствами и файлами, а также запрашивать различные фрагменты информации о системе или пользовательском процессе. [6]
Цель такой процедуры — создать среду обмена, в которую можно было бы активировать любую процедуру, как если бы она была вызвана изнутри другой программы . В дальнейшем для упрощения мы будем называть эту процедуру «ОБОЛОЧКА».
Луи Пузен, SHELL: глобальный инструмент для вызова и объединения процедур в системе [7]
придумал для Multics операционной системы В 1964 году Луи Пузен идею «использовать команды как язык программирования» и ввёл термин «оболочка ». для её описания [8] В документе 1965 года оболочка определяется как «общая процедура, автоматически вызываемая супервизором всякий раз, когда пользователь вводит какое-либо сообщение на своей консоли, в то время, когда у него нет другого активного процесса, выполняющегося под управлением консоли. Эта процедура действует как интерфейс между сообщениями консоли и подпрограммой [в супервизоре]». [9] Эту систему впервые внедрили Гленда Шредер и неназванный человек из General Electric . [10]
Multics также представила активную функцию — ключевую концепцию во всех более поздних оболочках. Это определяется как
строка... которая заменяется возвращаемым значением строки символов перед выполнением содержащей ее командной строки. Активные функции часто используются... для реализации макросов командного языка. [11]
В 1971 году Кен Томпсон разработал оболочку Thompson для первой версии Unix. Хотя он и проще, чем оболочка Multics, он содержит некоторые инновационные функции, которые были перенесены в современные оболочки, включая использование < и > для перенаправления ввода и вывода .
Графическая оболочка впервые появилась в Дугласа Энгельбарта , системе NLS продемонстрированной в декабре 1968 года на осенней совместной компьютерной конференции в Сан-Франциско, в так называемой «Матери всех демонстраций» . Коллеги Энгельбарта из Стэнфордского исследовательского института Xerox принесли эту концепцию в Исследовательский центр в Пало-Альто (PARC), где она появилась на Alto , представленном в 1973 году. Оттуда идея распространилась на Никлауса Вирта в «Лилит» 1980 году и на « Яблочную Лизу» в 1980 году. 1983 г., затем стал повсеместным.
Оболочки командной строки
[ редактировать ]Интерфейс командной строки (CLI) — это оболочка операционной системы, которая использует буквенно-цифровые символы, набираемые на клавиатуре, для интерактивного предоставления инструкций и данных операционной системе. Например, телетайп может отправлять коды, представляющие нажатия клавиш, в программу-интерпретатор команд, работающую на компьютере; командный интерпретатор анализирует последовательность нажатий клавиш и отвечает сообщением об ошибке, если он не может распознать последовательность символов или может выполнить какое-либо другое действие программы, такое как загрузка прикладной программы, вывод списка файлов, вход в систему пользователя и многие другие. Операционные системы, такие как UNIX, имеют большое разнообразие программ- оболочек с различными командами, синтаксисом и возможностями, при этом оболочка POSIX является базовой. Некоторые операционные системы имели только один стиль командного интерфейса; обычные операционные системы, такие как MS-DOS, поставлялись со стандартным командным интерфейсом ( COMMAND.COM ), но часто были доступны и сторонние интерфейсы, предоставляющие дополнительные функции или возможности, такие как меню или удаленное выполнение программ.
Прикладные программы также могут реализовывать интерфейс командной строки. Например, в Unix-подобных системах программа telnet имеет ряд команд для управления связью с удаленной компьютерной системой. Поскольку команды программе выполняются с помощью тех же нажатий клавиш, что и данные, отправляемые на удаленный компьютер, необходимы некоторые средства их различения. может Escape-последовательность быть определена с использованием специального локального нажатия клавиши, которое никогда не передается, но всегда интерпретируется локальной системой. Программа становится модальной, переключаясь между интерпретацией команд с клавиатуры или передачей нажатий клавиш в качестве данных для обработки.
Особенностью многих оболочек командной строки является возможность сохранять последовательности команд для повторного использования. Файл данных может содержать последовательности команд, которым CLI может следовать, как если бы они были введены пользователем. При выполнении этих сохраненных инструкций могут применяться специальные функции CLI. Такие пакетные файлы (файлы сценариев) можно использовать неоднократно для автоматизации рутинных операций, таких как инициализация набора программ при перезапуске системы. Использование оболочек в пакетном режиме обычно включает структуры, условные выражения, переменные и другие элементы языков программирования; у некоторых есть самое необходимое для этой цели, другие сами по себе являются очень сложными языками программирования. И наоборот, некоторые языки программирования можно использовать в интерактивном режиме из оболочки операционной системы или в специально созданной программе.
Некоторые оболочки командной строки, такие как Xonsh, Bash (оболочка Unix) и Z-оболочка , предлагают завершение командной строки , позволяя интерпретатору расширять команды на основе нескольких символов, введенных пользователем. [12]
Интерпретатор командной строки может предлагать функцию истории, чтобы пользователь мог вспомнить ранее введенные в систему команды и повторить их, возможно, с некоторым редактированием. Поскольку все команды операционной системе должен был вводить пользователь, короткие имена команд и компактные системы представления параметров программы были обычным явлением. Пользователю иногда было трудно вспомнить короткие имена, а ранним системам не хватало ресурсов хранения для предоставления подробного онлайн-руководства пользователя.
Графические оболочки
[ редактировать ]Графический интерфейс пользователя (GUI) предоставляет средства для графического управления программами, позволяя выполнять такие операции, как открытие, закрытие, перемещение и изменение размера окон , а также переключение фокуса между окнами. Графические оболочки могут быть включены в среду рабочего стола или поставляться отдельно, даже в виде набора слабосвязанных утилит.
Большинство графических пользовательских интерфейсов развивают метафору «электронного рабочего стола» , где файлы данных представлены так, как если бы они были бумажными документами на столе, а прикладные программы аналогичным образом имеют графическое представление, а не вызываются по имени команды.
Unix-подобные системы
[ редактировать ]Графические оболочки обычно создаются поверх оконной системы . В случае X Window System или Wayland оболочка состоит из оконного менеджера X или композитора Wayland соответственно, а также из одной или нескольких программ, обеспечивающих функциональность для запуска установленных приложений, управления открытыми окнами и виртуальными рабочими столами и часто для поддержки движка виджетов.
В случае с macOS , в качестве оконной системы выступает Quartz Compositor а оболочка состоит из Finder , [13] Док , [13] СистемуИсервер, [13] и Центр управления полетами . [14]
Microsoft Windows
[ редактировать ]Современные версии операционной системы Microsoft Windows используют в качестве своей оболочки оболочку Windows . Windows Shell предоставляет среду рабочего стола , меню «Пуск » и панель задач , а также графический интерфейс пользователя для доступа к функциям управления файлами операционной системы. Более старые версии также включают Program Manager , который был оболочкой для серии 3.x Microsoft Windows и который фактически поставлялся с более поздними версиями 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.
Другое использование
[ редактировать ]«Оболочка» также широко используется для описания прикладного программного обеспечения, «построенного вокруг» определенного компонента, такого как веб-браузеры и почтовые клиенты, по аналогии с оболочками, встречающимися в природе. Действительно, оболочка (командной строки) инкапсулирует ядро операционной системы . Их также иногда называют «обертками». [2]
В экспертных системах оболочка — это часть программного обеспечения, представляющая собой «пустую» экспертную систему без базы знаний для какого-либо конкретного приложения. [15]
См. также
[ редактировать ]- Сравнение командных оболочек
- Взаимодействие человека и компьютера
- оболочка Internet Explorer
- Шелл-аккаунт
- Встроенный в оболочку
- Суперпользователь
- оболочка Unix
- Диспетчер окон – предоставляет элементарный интерфейс управления процессами.
- Цикл чтения-оценки-печати, также называемый языковой оболочкой , CLI для интерпретируемого языка программирования.
Ссылки
[ редактировать ]- ^ «Пятый человек Интернета» , сканирование мозга, The Economist , Лондон: Economist Group , 13 декабря 2013 г.
г-н Пузен создал программу под названием RUNCOM, которая помогала пользователям автоматизировать утомительные и повторяющиеся команды. Эта программа, которую он описал как «оболочку» вокруг жужжащих внутренностей компьютера, дала вдохновение — и название — целому классу программных инструментов, называемых оболочками командной строки, которые до сих пор скрываются под поверхностью современных операционных систем.
- ^ Jump up to: а б Раймонд, Эрик С. (ред.). "оболочка" . Файл жаргона .
- ^ «Оболочки операционной системы» . Информационный центр AIX 6.1 . IBM Корпорация . Проверено 16 сентября 2012 г.
- ^ Уиллер, Шон (14 октября 2018 г.). «Выполнение удаленных команд» . Документы Майкрософт . Майкрософт . Проверено 30 июня 2019 г.
Вы можете запускать команды на одном или сотнях компьютеров с помощью одной команды PowerShell. Windows PowerShell поддерживает удаленные вычисления с помощью различных технологий, включая WMI, RPC и WS-Management.
- ^ Корпорация цифрового оборудования (ноябрь 1980 г.). ВНУТРЕННИЕ МОНИТОРЫ TOPS-10 (PDF) . стр. CMND-1–CMND-16 . Проверено 29 марта 2022 г.
- ^ Корпорация цифрового оборудования (август 1977 г.). Руководство по командам операционной системы DECSystem 10 (PDF) . Проверено 29 марта 2022 г.
- ^ Пуазен, Луи. «SHELL: глобальный инструмент для вызова и объединения процедур в системе» (PDF) .
- ^ Пузен, Луи. «Происхождение ракушки» . multicians.org . Проверено 29 марта 2022 г.
- ^ Пузен, Луи. «SHELL: глобальный инструмент для вызова и объединения процедур в системе» (PDF) . MIT.edi . Проверено 29 марта 2022 г.
- ^ Пузен, Луи. «Происхождение ракушки» . multicians.org . Проверено 12 февраля 2024 г.
- ^ Компания Honeywell, Inc. (февраль 1983 г.). Общие команды Multics (PDF) . стр. 1-1–1-2 . Проверено 29 марта 2022 г.
- ^ Официальный сайт Ксонша
- ^ Jump up to: а б с «Жизненный цикл демона» . Apple Инк.
- ^ «Перезапустите Mission Control в OS X Lion» . OSXDaily. 23 ноября 2011 г.
- ^ Британское компьютерное общество: глоссарий терминов в области ИКТ и вычислительной техники BCS . Пирсон Образование. 2005. с. 135. ИСБН 978-0-13-147957-9 .