Пользовательская среда UNIX: командный процессор shell и графическая система X Window (4 глава дипломной работы), страница 3

          ...

          ;;

     *)

          echo ”В командной строке должен быть указан”

          echo ”параметр start или stop”

          ;;

     esac

            Большинство вариантов shell позволяют создавать модульные программы с использованием процедур, функций и внешних программных модулей. Синтаксис этих расширений, как и синтаксис основных управляющих конструкций, зависит от типа shell. В частности, правила Си-shell во многом напоминают синтаксис языка программирования Си.

4.3 Графическая среда X Window System.

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

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

-  активное использование манипулятора «мышь», наряду с клавиатурой;

-  активное использование системных и контекстных меню;

-  интерфейс Drag-and-Drop, позволяющий управлять графически представленными объектами путем переноса по рабочей области экрана;

-  общие визуальные компоненты – пиктограммы, кнопки, области ввода, выпадающие списки и т.п.

В UNIX указанные принципы реализуются на основе системы X Window System; графическую среду UNIX называют средой X Window или X-интерфейсом. Существуют принципиальные отличия программной реализации X Window от GUI других операционных систем, в частности, Windows 95/98/МЕ, Windows NT или классической MacOS.

X Window проектировалась как распределенная сетевая графическая среда; графическое отображение программ реализовано в виде сетевого клиент-серверного обмена. Приложение, выполняющееся на процессоре и в памяти одной ЭВМ, может отображаться в виде окна на дисплее другой ЭВМ или специализированного устройства – Х-терминала (рис. 4.1). Обмен ведется по протоколу прикладного уровня X Window на основе TCP/IP.


Рисунок 4.1 – Клиент-серверное взаимодействие в среде X Window

При запуске графическая программа устанавливает TCP-соединение с X-сервером – приложением, предназначенным для графического отображения информации и обработки действий пользователя (мышь, клавиатура). В процессе работы программа передает Х-серверу команды на прорисовку графических примитивов (линий, геометрических фигур, растровых изображений); в свою очередь, Х-сервер сообщает программе о событиях (действиях пользователя – перемещениях мыши, нажатиях клавиш); программа обрабатывает эти события и корректирует изображение путем выдачи команд. Графические программы, пользующиеся средствами Х-сервера, называются Х-клиентами. В частном случае Х-сервер и Х-клиент могут выполняться на одной машине; при этом взаимодействие ведется по петлевому сетевому интерфейсу.

Х-сервер может выполняться как в среде UNIX, так и в среде любой другой ОС, поддерживающей графический режим и стек TCP/IP. При этом компьютер с ОС MS-DOS, Windows, MacOS и т.п. может исполнять роль графического терминала, подключенного к UNIX-машине.

В настоящее время последней версией Х Windows является версия 11 Release 6 (X11R6), отличающаяся эффективными методами сжатия передаваемой по сети информации. Большинство вариантов UNIX содержат собственные реализации системы X Window в рамках действующего стандарта; эти реализации включают Х-сервер, загружаемые библиотеки, средства конфигурирования, шрифты и т.п. Широко известна также свободно распространяемая реализация X Window – XFree86, поддерживающая ряд операционных систем и аппаратных платформ. Графический интерфейс таких популярных ОС, как Linux и FreeBSD построен именно на XFree86.

Система X Window ориентирована на оконный интерфейс, однако не имеет встроенных сервисных средств управления окнами. В частности, окна, отображенные без привлечения дополнительных средств, не имеют рамок и заголовков, не могут быть перенесены мышью. Для реализации этих функций используются специализированные программы, называемые менеджерами окон. Менеджер окон запускается в начале работы Х-сервера и берет на себя функции по отображению оконных рамок, управлению переносом окон, управлению фоном экрана и т.п. Именно менеджер окон определяет особенности внешнего вида графической среды на конкретной машине. Наибольшее распространение в коммерческих версиях UNIX получил менеджер окон, входящий в состав пакета Motif.

Расширением понятия менеджера окон является понятие среды рабочего стола (desktop environment), или desktop. Desktop является комплексным программным средством, включающим как менеджер окон, так и дополнительные средства общего пользовательского интерфейса – меню запуска приложений, средства просмотра папок и файлов и т.п. Большинство коммерческих вариантов UNIX поставляется со стандартным desktop CDE (Common Desktop Environment), включающим в себя пакет Motif. Среди свободно распространяемых вариантов среды рабочего стола широко распространены такие продукты, как KDE и Gnome, заимствующие наиболее удобные элементы пользовательского интерфейса MS Windows.

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

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

-display компьютер:рабочий_стол

где компьютер – IP-адрес или символическое имя компьютера, на котором работает Х-сервер, а рабочий стол – двухцифровой номер рабочего стола, на котором создается окно.

Пример. Запустить программу xterm (графический эмулятор алфавитно-цифровой консоли UNIX) на основном рабочем столе компьютера с адресом 192.168.50.201:

            xterm –display 192.168.50.201:0.0

Вместо указания параметра –display может использоваться установка переменной окружения DISPLAY.

В некоторых системах Х-сервер по умолчанию не позволяет программам с удаленных машин выводить на экран свои окна. Для настройки прав доступа к Х-серверу служит команда xhost; в простейшем случае оператор может разрешить полный доступ к данному Х-серверу командой

            xhost +