Операционная оболочка

ОПЕРАЦИОННАЯ ОБОЛОЧКА

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



       Операционные системы корпорации Microsoft  под названием MS-DOS и их аналоги других корпораций были разработаны для персональных компьютеров клона IBM PC. Управление компьютером при помощи команд DOS требует определенных знаний, большой аккуратности и внимания. Для того, чтобы сделать общение  с компьютером более простым, были разработаны специальные программы-оболочки. Операционная оболочка – это такая программа, которая позволяет пользователю осуществлять действия по управлению ресурсами компьютера в рамках более развитого (более удобного и интуитивно понятного) интерфейса, чем командная строка. Начиная с версии 4.0 в MS-DOS входила собственная псевдографическая оболочка SHELL, однако  наибольшую популярность среди оболочек DOS завоевал пакет программ Norton Commander фирмы Symantec. Использование операционной оболочки Norton Commander значительно yпростило управление компьютером, позволило в наглядном виде получать информацию о его основных ресурсах (и их загруженности), осуществлять все основные процедуры управления компьютером (выбор диска и каталога; создание каталога; создание, просмотр и редактирование текстовых файлов; копирование, перемещение, удаление файлов и каталогов; поиск файлов и каталогов; работа с архивными файлами  и т. п.).

       Также необходимо отметить, что Norton Commander явился не единственным шагом фирмы Symantec по расширению функциональных возможностей служебного и системного программного обеспечения, работающего в среде DOS. Другой ее известный продукт – Norton Utilities – объединил в себе большое количество утилит, реализующих многие важные и полезные функции, которые затруднительно или даже невозможно осуществить с помощью штатных средств операционной системы.

       Следующим шагом в развитии оболочек операционных систем стало появление в 1986 г. графической многооконной операционной оболочки Windows от корпорации Microsoft, которая работала на базе MS-DOS. В последующие годы она претерпела ряд модификаций и в 1991 г. вышла вepcия Windows 3.1, а несколько позже – сетевой вариант Windows 3.11 (Windows 3.11 For WorkGroups), очень быстро завоевавшие широкое признание пользователей. Windows 3.1 запускалась на выполнение как обычная программа MS-DOS и работала на базе MS-DOS, используя на нижнем уровне внутренние функции и процедуры этой операционной системы. Приципиальным условием для программных приложений, предназначенных для работы в среде Windows, являлось то, что они должны работать с внешними устройствами (монитором, принтером, плоттером и т. п.) не напрямую, а через универсальную систему команд. Управляющая система транслировала вызовы (обращения к тому или иному физическому устройству) и передавала их соответствующему Windows-драйверу данного устройства, который непосредственно отвечал за работу с ним с учетом конкретных особенностей его функционирования. Почти все драйверы устройств Windows 3.1 фактически выполняли функции базовой системы ввода-вывода  и работали с устройствами напрямую. 



Оболочка и утилиты системы UNIX





       Операционную систему UNIX можно рассматривать в виде некоторой пирамиды. У основания пирамиды располагается аппаратное обеспечение, состоящее из центрального процессора, памяти, дисков, терминалов и других устройств. Выше над аппаратным обеспечением работает операционная система UNIX. Ее функции заключаются в управлении аппаратным обеспечением и предоставлении всем программам интерфейса системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы, а также управлять ими.

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

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



       У многих версий системы UNIX имеется графический интерфейс пользователя, схожий с популярными интерфейсами, примененными на компьютере Macintosh и впоследствии в системе Windows. Однако истинные программисты до сих пор предпочитают интерфейс командной строки, называемый оболочкой (shell). Подобный интерфейс значительно быстрее в использовании, существенно мощнее и проще расширяется. Ниже будет кратко описана так называемая оболочка Бурна (sh).

       Когда оболочка запускается, она инициализируется, а затем печатает на экране символ приглашения к вводу (обычно это знак доллара или процента) и ждет, когда пользователь введет командную строку. После того как пользователь введет командную строку, оболочка извлекает из нее первое слово и ищет файл с таким именем. Если такой файл удается найти, оболочка запускает его. При этом работа оболочки приостанавливается на время работы запущенной программы. По завершении работы программы оболочка снова печатает приглашение и ждет ввода следующей строки. Здесь важно подчеркнуть, что оболочка представляет собой обычную пользовательскую программу. Все, что ей нужно, – это способность ввода с терминала и вывода на терминал, а также возможность запускать другие программы.

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

       Программа вроде оболочки не должна открывать терминал, чтобы прочитать с него или вывести на него строку. Вместо этого запускаемые программы автоматически получают доступ к файлу, называемому стандартным устройством ввода (standard input), и к файлу, называемому стандартным устройством вывода (standard output), а также к файлу, называемому стандартным устройство для вывода сообщений об ошибках (standard error). По умолчанию всем трем устройствам соответствует терминал, то есть клавиатура для ввода и экран для вывода. Многие программы в системе UNIX читают данные со стандартного устройства ввода и пишут на стандартное устройство вывода. Стандартные ввод и вывод также можно перенаправить, что является очень полезным свойством. Для этого используются символы «<» и «>» соответственно. Разрешается их одновременное использование в одной командной строке. Программа, считывающая данные со стандартного устройства ввода, выполняющая определенную обработку этих данных и записывающая результат в поток стандартного вывода, называется фильтром.

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

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



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

       Пользовательский интерфейс UNIX состоит не только из оболочки, но также из большого числа стандартных обслуживающих программ, называемых также утилитами. К ним относятся команды управления файлами и каталогами, фильтры, средства разработки программ (такие как текстовые редакторы и компиляторы), текстовые процессоры, программы системного администрирования и другие программы. Стандарт POSIX 1003.2 определяет синтаксис и семантику менее 100 из этих программ, в основном относящихся к первым трем категориям. Идея стандартизации данных программ заключается в том, чтобы можно было писать сценарии оболочки, которые работали бы на всех системах UNIX. Помимо этих стандартных утилит, существует множество других прикладных программ, таких как web-браузеры, программы просмотра изображений и т. д.