Опубликован: 04.07.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 12:

Графические среды в Solaris

< Лекция 11 || Лекция 12: 12 || Лекция 13 >

Как устроена графическая среда под UNIX

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

Графическая среда представляет собой большой набор программ, объединенных общим названием X-Window и делящихся на две неравных части: X-клиенты и X-серверы. X-Window не имеет ничего общего с системами Windows, за исключением того, что в ней тоже используется оконный графический интерфейс.

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

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

Когда мы видим на экране нашего компьютера, работающего под управлением Solaris, некую графическую картинку, мы не можем сразу сказать, относится ли она к программе, запущенной непосредственно на этом же компьютере, или эта программа работает на другой машине, а к нам лишь транслирует запросы на вывод изображения. Зато мы можем однозначно утверждать, что на нашем компьютере запущен X-сервер, коль скоро именно на этом компьютере мы видим картинку.

Итак, запомним: X-сервер – это программа, работающая на машине, где мы видим какие-то окна и прочую графику. X-клиент – это приложение, которое где-то работает и передает команды на вывод графики, связанной с этим приложением, некоему X-серверу.

Протокол X-Window весьма популярен, и на его основе создано много графических сред, отличающихся друг от друга прежде всего внешним видом и программным интерфейсом высокого уровня (API). Это значит, что обычному пользователю почти все равно, в какой графической среде работать, хотя в новой для него среде придется выучить, как выглядят всякие нужные элементы управления типа "закрыть окно" или "переместить окно", а также изучить ряд нетривиальных действий. Например, в одних графических средах принято выполнять операцию Copy-and-Paste последством выделения нужного фрагмена мышью и нажатия средней клавиши мыши в том месте, куда надо перенести текст. В других эта же операция требует выделения текста, нажатия Ctrl-Ins и затем нажатия Shift-Ins там, где надо вставить текст. В Solaris, к сожалению, по умолчанию используется второй, намного менее производительный способ.

Графической средой по умолчанию в Solaris является CDE (Common Desktop Environment), являющаяся отраслевым стандартом и использующаяся также в HP-UX. Впрочем, начиная с Solaris 8 Sun предоставляет для загрузки со своего веб-сайта также среду GNOME, которая выросла в Linux-системах. В настоящее время вы можете загрузить и установить GNOME 2.0, надо лишь посетить страницу http://wwws.sun.com/software/star/gnome/. По адресу http://www.sugoi.org/bits/index.php?bit_id=11 доступна довольно забавная страница с независимым рассказом о доступных в Solaris графичесикх интерфейсах.

Самое важное в X-Window: X-server всегда работает на том компьютере, на экране которого пользователь видит окна запущенных им программ. Даже если это обычный персональный компьютер под управлением Microsoft Windows, на нем может работать X server. Лучший X server под все системы Microsoft Windows – это Exceed (http://www.hummingbird.com/products/nc/exceed/index.html). Также есть менее удобный, но кое-где популярный X-сервер MIX.

X-клиент – это программа, как правило, работающая под UNIX. Она может выполняться на том же компьютере, где запущен X-сервер, показывающий графическую картинку пользователю, а может работать сколь угодно далеко от него. X-сервер и X-клиент легко взаимодействуют через любую IP-сеть, например, через Интернет.

Чтобы рассказать программе – X-клиенту, куда ей следует направлять команды для X-сервера, установите переменную среды окружения DISLPAY. В ней указывается адрес компьютера, на котором запущен X-сервер, и номер (обычно 0), идентифицирующий сеанс этого X-сервера:

export DISPLAY="my.home.computer.com:0"

X-серверы

Здесь мы будем говорить об X-серверах под UNIX. Наиболее распространены X-серверы из пакета программ X 11 Release 6. Это – свободно распространяемое программное обеспечение, встроенное в Solaris. Для видеоадаптеров разных типов используют разные X-серверы, потому что каждый X-сервер оптимизирован для работы с конкретными типами видеоадаптеров. При компиляции X-серверов также учитываются особенности каждой операционной системы. Поэтому X-серверы от X11R6 в Solaris и Linux одинаковы по значительной части исходного кода, но их исполняемый код различен.

Перед тем, как на экране появится хоть какая-нибудь графическая картинка, в Solaris запускается X-сервер. Помните, что X-сервер всегда запускается на том компьютере, где пользователь наблюдает некий графический вывод, генерируемый запущенной им системой или программой.

Для среды CDE X-сервером является программа XSun.

Настройки X-сервера не хранятся в едином файле, а распределены по разным местам. На работу Х-сервера в Solaris влияют следующие файлы (но не только эти):

/etc/X11/xorg.conf
$HOME/.Xdefaults
$HOME/.OWdefaults
/usr/lib/X11/Xdefaults
$HOME/.openwin-init
/usr/openwin/lib/openwin-init

X-клиенты

Первым X-клиентом, с которым сталкивается пользователь Solaris, является dtlogin. Вообще, многие программы, работающие в Solaris с X-Window, называются dt что-то, где dt – это производное от DeskTop (рабочий стол).

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

-display display

этот параметр задает активный дисплей, т.е. адрес и экземпляр X-сервера, например,

-display host.my.domain.com:0
-geometry

этот параметр задает начальный размер и положение окна на экране, например, можно запустить программу xterm (X-терминал) следующим образом:

xterm -geometry 80x25+5+5

что будет означать запустить ее в окне размеров в 80 столбцов по горизонтали, 25 строк по вертикали, с отступом в 5 строк и 5 столбцов от верхнего левого угла экрана (формат WxH+X+Y, где W – ширина, Hвысота, Xотступ по горизонтали, Yотступ по вертикали).

-bg color

обозначает цвет фона окна, например:

-bg yellow
-bd color
-bordercolor color

являются синонимами и задают цвет рамки окна приложения

-bw number
-borderwidth number

задают ширину рамки в пикселах

-fg color,
-foreground color

задают цвет текста или выводимой в окне графики (по умолчанию)

-fn font,
-font font

указывает шрифт, который будет использован для отображения текста в окне. Подробнее о шрифтах рассказано в man xfn, программа xfn используется для управления шрифтами в графической подсистеме X-Window.

-rv, -reverse

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

+rv

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

Кроме этого, есть еще ряд общих ключей, которые употребляются реже.

< Лекция 11 || Лекция 12: 12 || Лекция 13 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993