|
нормальном
функционировании системы остается для пользователя "вещью в
себе", которую непосредственно не видно и не слышно. В то же время,
только ядро, имея доступ к оборудованию, способно оперировать файлами
и процессами, т.е. осуществлять "деятельность" с некоторым
объективным результатом.
Пользователю
эта функциональность доступна только опосредованно,
через особую программу, которая "общается" с
ним посредством терминала и вполне логично называется "оболочкой". Теоретически
оболочка могла бы реализовать замкнутый язык диалога (и ранние
архитектуры ОС носят следы таких попыток), но в открытых системах
принята другая философия -- разделения, специализации и минимизации
программ. Поэтому на практике оболочка используется вместе
с утилитами -- набором самых часто употребляемых программ --
и лишь синтаксис и семантика оболочки вкупе с синтаксисом и семантикой
используемых утилит и образуют полноценный формальный язык диалога
пользователя с системой. В июне стандартизован
Международной организацией стандартизации (документ ISO/IEK
IS 9945-2:1993), но известен он больше под своим "отраслевым" названием
POSIX.2.
Существует
множество реализаций стандартного языка оболочки
и утилит, восходящих к системам Unix, BSD, проекту GNU и некоторым
другим проектам. Наиболее популярной на сегодня является bash
в составе GNU Tools, разработанных частично в Фонде свободного программного
обеспечения и частично при его поддержке. GNU Tools являются,
наряду с ядром Linux, основой операционных систем на этом ядре,
но доступны и для других ОС, включая альтернативные архитектуры.
В
техническом аспекте оболочка представляет собой построчный
интерпретатор простого языка сентенционального (директивного)
программирования, в качестве операторов которого могут использоваться
утилиты, как, впрочем, и любые другие программы, включая,
в частности, написанные самим пользователем, и, в еще большей
частности, написанные на языке самой оболочки, ибо, будучи интерпретатором,
она может читать команды как интерактивно (с терминала),
так и из файла.
6.3
Командная оболочка как инструмент
Пользование
оболочкой очень просто: в ответ на приглашение
("подсказку"), выдаваемое находящейся в ожидании
оболочкой, пользователь вводит команду и, после ее выполнения
(возможно, сопровождающееся выводом на экран некоторой информации),
оболочка снова выводит приглашение и ожидает следующей команды.
И так -- пока пользователь не введет символ конца файла (или
команду exit), после чего сеанс работы закончится. Подобным образом
(с некоторыми нюансами) оболочка интерпретирует и файл "сценария"
(программы) с записанными в нем командами (возможно,
с использованием управляющих конструкций; общую характеристику
оболочки как языка программирования см. ниже).
|