stringtranslate.com

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

Графический интерфейс конца 1980-х годов, включающий окно TUI для справочной страницы , фигурное окно (часы), а также несколько окон с пиктограммами . В правом нижнем углу мы видим эмулятор терминала, запускающий оболочку Unix , в которой пользователь может вводить команды, как если бы он находился за терминалом .

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

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

Обзор

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

Большинство оболочек операционной системы не являются прямыми интерфейсами к базовому ядру , даже если оболочка взаимодействует с пользователем через периферийные устройства, подключенные непосредственно к компьютеру. На самом деле оболочки — это специальные приложения, которые используют 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]

В 1964 году Луи Пузен придумал для операционной системы Multics идею «использовать команды как язык программирования» и ввёл для её описания термин «оболочка» . [7] В документе 1965 года оболочка определяется как «обычная процедура, автоматически вызываемая супервизором всякий раз, когда пользователь вводит какое-либо сообщение на своей консоли, в то время, когда у него нет другого активного процесса, находящегося под управлением консоли. Это Процедура действует как интерфейс между сообщениями консоли и подпрограммой [в супервизоре]». [8]

Multics также представила активную функцию — ключевую концепцию во всех более поздних оболочках. Это определяется как

строка... которая заменяется возвращаемым значением символьной строки перед выполнением содержащей ее командной строки. Активные функции часто используются... для реализации макросов командного языка. [9]

В 1971 году Кен Томпсон разработал оболочку Thompson для первой версии Unix. Хотя он и проще, чем оболочка Multics, он содержит некоторые инновационные функции, которые были перенесены в современные оболочки, включая использование < и > для перенаправления ввода и вывода .

Графическая оболочка впервые появилась в системе NLS Дугласа Энгельбарта , продемонстрированной в декабре 1968 года на осенней совместной компьютерной конференции в Сан-Франциско, в так называемой «Матери всех демонстраций ». Коллеги Энгельбарта из Стэнфордского исследовательского института принесли эту концепцию в Исследовательский центр Xerox в Пало-Альто (PARC), где она появилась на Alto , представленном в 1973 году. Оттуда идея распространилась на « Лилит » Никлауса Вирта в 1980 году и на « Яблочную Лизу » в 1980 году. 1983 г., затем стал повсеместным.

Оболочки командной строки

Командная строка , оболочка CLI в Windows
Bash — широко распространенная оболочка Unix.

Интерфейс командной строки (CLI) — это оболочка операционной системы, которая использует буквенно-цифровые символы, набираемые на клавиатуре, для интерактивного предоставления инструкций и данных операционной системе. Например, телетайп может отправлять коды, представляющие нажатия клавиш, в программу-интерпретатор команд, работающую на компьютере; командный интерпретатор анализирует последовательность нажатий клавиш и отвечает сообщением об ошибке, если он не может распознать последовательность символов или может выполнить какое-либо другое действие программы, такое как загрузка прикладной программы, вывод списка файлов, вход в систему пользователя и многие другие. Операционные системы, такие как UNIX, имеют большое разнообразие программ- оболочек с различными командами, синтаксисом и возможностями, при этом оболочка POSIX является базовой. Некоторые операционные системы имели только один стиль командного интерфейса; обычные операционные системы, такие как MS-DOS, поставлялись со стандартным командным интерфейсом ( COMMAND.COM ), но часто были доступны и сторонние интерфейсы, предоставляющие дополнительные функции или возможности, такие как меню или удаленное выполнение программ.

Прикладные программы также могут реализовывать интерфейс командной строки. Например, в Unix-подобных системах программа telnet имеет ряд команд для управления связью с удаленной компьютерной системой. Поскольку команды программе выполняются с помощью тех же нажатий клавиш, что и данные, отправляемые на удаленный компьютер, необходимы некоторые средства их различения. Escape- последовательность может быть определена с использованием специального локального нажатия клавиши, которое никогда не передается, но всегда интерпретируется локальной системой. Программа становится модальной, переключаясь между интерпретацией команд с клавиатуры или передачей нажатий клавиш в качестве данных для обработки.

Особенностью многих оболочек командной строки является возможность сохранять последовательности команд для повторного использования. Файл данных может содержать последовательности команд, которым CLI может следовать, как если бы они были введены пользователем. При выполнении этих сохраненных инструкций могут применяться специальные функции CLI. Такие пакетные файлы (файлы сценариев) можно использовать неоднократно для автоматизации рутинных операций, таких как инициализация набора программ при перезапуске системы. Использование оболочек в пакетном режиме обычно включает в себя структуры, условные выражения, переменные и другие элементы языков программирования; некоторые из них имеют самое необходимое для этой цели, другие сами по себе являются очень сложными языками программирования. И наоборот, некоторые языки программирования можно использовать в интерактивном режиме из оболочки операционной системы или в специально созданной программе.

Некоторые оболочки командной строки, такие как Xonsh, Bash (оболочка Unix) и Z-оболочка , предлагают завершение командной строки , позволяя интерпретатору расширять команды на основе нескольких символов, введенных пользователем. [10]

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

Графические оболочки

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

Большинство графических пользовательских интерфейсов развивают метафору «электронного рабочего стола» , где файлы данных представлены так, как если бы они были бумажными документами на столе, а прикладные программы аналогичным образом имеют графическое представление, а не вызываются по имени команды.

Unix-подобные системы

Операция перетаскивания группы файлов между KDesktop и Konqueror в KDE

Графические оболочки обычно создаются поверх оконной системы . В случае X Window System или Wayland оболочка состоит из оконного менеджера X или композитора Wayland соответственно, а также из одной или нескольких программ, обеспечивающих функциональность для запуска установленных приложений, управления открытыми окнами и виртуальными рабочими столами и часто для поддержки движка виджетов.

В случае с macOS в качестве оконной системы выступает Quartz Compositor , а оболочка состоит из Finder , [11] Dock , [11] SystemUIServer, [11] и Mission Control . [12]

ДОС и MS-DOS

DOS не имеет собственной графической оболочки, но эту ситуацию изменили многие сторонние разработчики, разработавшие десятки графических оболочек. Некоторые из таких графических оболочек были разработаны как коммерческое программное обеспечение , некоторые — как бесплатное программное обеспечение , а некоторые — как бесплатные и с открытым исходным кодом . [13]

В 1988 году Microsoft разработала DOS Shell , который стал одним из первых успешных файловых менеджеров с графическим интерфейсом для MS-DOS и PC DOS .

Скриншот графической оболочки «Полит»

Полит ОС  [uk] или графическая оболочка «Полит» (ук: Політ , букв. «Полет») была одной из последних попыток создать современно выглядящую графическую оболочку для DOS с украинским интерфейсом, написанную на языке Паскаль с использованием Borland Pascal 7 и более поздних версий. с виртуальным паскалем . Он был разработан как проект с открытым исходным кодом с 1999 по 2005 год и был вдохновлен ранними версиями Microsoft Windows , такими как Windows 3.1 и Windows 95 , которые сами по себе представляли собой коммерческие графические оболочки для MS-DOS, а также Windows XP. По сравнению с Windows 3.1, Полит ОС не имеет возможности запуска других DOS-приложений, вместо этого она распространяется с собственным набором программ (в том числе файловым менеджером) и играми, а также для нее разрабатываются сторонние приложения и игры, в том числе специально разработанные. IDE Polit Pascal для объектно-ориентированного программирования, позволяющая создавать программное обеспечение для Polit непосредственно под Polit.

Другие подобные графические оболочки для DOS, с большим или меньшим количеством возможностей: GEOS , FreeGEOS , GEM , FreeGEM , OpenGEM, oZone GUI, SEAL, SWORD и т. д. [13] [14] [15]

Майкрософт Виндоус

Современные версии операционной системы 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]

В экспертных системах оболочка — это часть программного обеспечения, представляющая собой «пустую» экспертную систему без базы знаний для какого-либо конкретного приложения. [16]

Смотрите также

Рекомендации

  1. ^ «Пятый человек Интернета», сканирование мозга, The Economist , Лондон: Economist Group , 13 декабря 2013 г., г-н Пузен создал программу под названием RUNCOM, которая помогала пользователям автоматизировать утомительные и повторяющиеся команды. Эта программа, которую он описал как «оболочку» вокруг жужжащих внутренностей компьютера, дала вдохновение — и название — целому классу программных инструментов, называемых оболочками командной строки, которые до сих пор скрываются под поверхностью современных операционных систем.
  2. ^ Аб Рэймонд, Эрик С. (ред.). "оболочка". Файл жаргона .
  3. ^ «Оболочки операционной системы» . Информационный центр AIX 6.1 . Корпорация IBM . Проверено 16 сентября 2012 г.
  4. Уиллер, Шон (14 октября 2018 г.). «Выполнение удаленных команд». Документы Майкрософт . Майкрософт . Проверено 30 июня 2019 г. Вы можете запускать команды на одном или сотнях компьютеров с помощью одной команды PowerShell. Windows PowerShell поддерживает удаленные вычисления с помощью различных технологий, включая WMI, RPC и WS-Management.
  5. ^ Digital Equipment Corporation (ноябрь 1980 г.). ВНУТРЕННИЕ МОНИТОРЫ TOPS-10 (PDF) . стр. CMND-1–CMND-16 . Проверено 29 марта 2022 г.
  6. ^ Digital Equipment Corporation (август 1977 г.). Руководство по командам операционной системы DECSystem 10 (PDF) . Проверено 29 марта 2022 г.
  7. ^ Пузен, Луи. «Происхождение ракушки». multicians.org . Проверено 29 марта 2022 г.
  8. ^ Пузен, Луи. «SHELL: глобальный инструмент для вызова и объединения процедур в системе» (PDF) . MIT.edi . Проверено 29 марта 2022 г.
  9. ^ Honeywell, Inc. (февраль 1983 г.). Общие команды Multics (PDF) . стр. 1-1–1-2 . Проверено 29 марта 2022 г.
  10. ^ Официальный сайт Ксонша
  11. ^ abc «Жизненный цикл демона». Apple Инк.
  12. ^ «Перезапустите Mission Control в OS X Lion». OSXDaily. 23 ноября 2011 г.
  13. ^ ab "dos:gui_shells [Vintage2000]". old.vintage2000.org . Проверено 29 декабря 2023 г.
  14. ^ Грин, Ричард Л. «БЕСПЛАТНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ DOS — рабочие столы, оболочки, графические интерфейсы». bttr-software.de .
  15. ^ shotter_nail (18 декабря 2022 г.), 22 GUI DOS, которые стоит попробовать — Vbox VHD + установочные файлы , получено 29 декабря 2023 г.
  16. ^ Британское компьютерное общество: Глоссарий BCS по ИКТ и компьютерным терминам. Пирсон Образование. 2005. с. 135. ИСБН 978-0-13-147957-9.