учебники, программирование, основы, введение в,

 

Common Desktop Environment

Как устроена графическая среда под 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 предоставляет для загрузки со своего web-сайта также среду 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-сервера, установите переменную среды окружения DISLPLAY. В ней указывается адрес компьютера, на котором запущен X-сервер, и номер (обычно 0), идентифицирующий сеанс этого X-сервера:
export DISPLAY="my.home.computer.com:0"

X-серверы

Здесь мы будем говорить об X-серверах под UNIX. Наиболее распространены X-серверы из пакета программ X 11 Release 6. Это свободно распространяемое программное обеспечение, встроенное в Solaris 9. Для видеоадаптеров разных типов используют разные X-серверы, потому что каждый X-сервер оптимизирован для работы с конкретными типами видеоадаптеров. При компиляции X-серверов также учитываются особенности каждой операционной системы. Поэтому X-серверы от X11R6 в Solaris и Linux одинаковы по значительной части исходного кода, но их исполняемый код различен.
Перед тем как на экране появится хоть какая-нибудь графическая картинка, в Solaris запускается X-сервер. Помните, что X-сервер всегда запускается на том компьютере, где пользователь наблюдает некий графический вывод, генерируемый запущенной им системой или программой.
Для среды CDE X-сервером является программа XSun.
Настройки X-сервера не хранятся в едином файле, а распределены по разным местам. На работу Х-сервера в Solaris влияют следующие файлы (но не только эти):
$HOME/.Xdefaults
$HOME/.OWdefaults
/usr/lib/X11/Xdefaults
$HOME/.openwin-init
/usr/openwin/lib/openwin-init

X-клиенты

Первым X-клиентом, с которым сталкивается пользователь Solaris, является dtlogin. Вообще, многие программы, работающие в Solaris с XWindow, называются 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
    

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

Настройка графической среды

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


Таблица 25.1. Соответствие версий Solaris, SunOS и графической среды в Solaris

Solaris

SunOS

Window Manager

Solaris 10

SunOS 5.10

Solaris 9

SunOS 5.9

Solaris 8

SunOS 5.8

OpenWindows 3.6.2 / CDE 1.4

Solaris 7

SunOS 5.7

OpenWindows 3.6.1 / CDE 1.3

Solaris 2.7

SunOS 5.7

OpenWindows 3.6.1 / CDE 1.3

Solaris 2.6

SunOS 5.6

OpenWindows 3.6 / CDE 1.2

Solaris 2.5.1

SunOS 5.5.1

OpenWindows 3.5.1

Solaris 2.5

SunOS 5.5

OpenWindows 3.5

Solaris 2.4

SunOS 5.4

OpenWindows 3.4

Solaris 2.3

SunOS 5.3

OpenWindows 3.3

Solaris 2.2

SunOS 5.2

OpenWindows 3.2

Solaris 2.1

SunOS 5.1

OpenWindows 3.1

Solaris 1.1.2

SunOS 4.1.4

Solaris 1.1.1B

SunOS 4.1.3_U1

 

Настройки X-сервера

Для каждого типа видеоплаты требуется свой X-сервер, так как в него встроен драйвер, умеющий обращаться только со "своей" видеоплатой. Это кажется не слишком эффективным, но имеет несколько объяснений.

  1. Позволяет оптимизировать X-сервер по скорости вывода графики, что бывает очень важно.
  2. Не влияет существенно на переносимость системы, так как сама операционная система превосходно может работать без X-сервера и без графики вообще.
  3. Только в последнее время системы UNIX (в том числе и Solaris) стали устанавливаться на компьютеры с непредсказуемой конфигурацией, причем возможное количество сочетаний в конфигурации выросло в тысячи раз, как только системы UNIX шагнули в мир персональных компьютеров архитектуры x86.

Действительно, представьте себе продукцию компании Sun: несмотря на широкий ассортимент, компания устанавливает в свои серверы и рабочие станции всего несколько модификаций видеоплат. Естественно, заранее никто не побеспокоился о том, что X-серверу лучше быть совместимым со всем миром и любым производителем видеоплат вообще. Нам остается только принять это как данность и внимательно изучать Hardware Compatibility List, если мы не желаем в одночасье остаться у пустого экрана из-за того, что система не поддерживает нашу замечательную видеоплату.
Там, где Х-сервер не удается запустить из /etc/init, для запуска сервера используется программа xinit. Для нее важен файл $HOME/.xinitrc.
Для более подробного изучения возможных настроек своего X-сервера или X-клиентов следует обратиться к man X и man X11.

Настройки среды CDE

Настройки среды включают состав меню рабочей панели, количество рабочих столов (workspaces), запускающиеся в начале и конце сессии программы и различные параметры сессии (например, время простоя, через которое экран автоматически блокируется и требует пароля для разблокирования).
Среда CDE фактически является набором X-клиентов и библиотек. В каждой среде есть специализированный клиент, который называется оконным менеджером (window manager). Это программа, обеспечивающая переключение между окнами различных программ, работу с несколькими рабочими областями (это описано в лекции 2) и т.п. В среде CDE эту роль играет программа dtwm, а в среде GNOME - sawfish.
Файлом настроек dtwm является файл /etc/dt, в домашнем каталоге пользователя также могут храниться файлы типа .dt, о содержании которых можно узнать с помощью man dtwm.

Настройки X-клиентов

Если дать команду

ps -ef | grep dt
        

можно увидеть значительное количество программ, являющихся X-клиентами и работающих в стандартной среде Solaris 9 CDE:

  root 832 831 0 23:37:58 ?? 0:00 /usr/dt/bin/dtterm -C -ls
  root 831 435 0 23:37:57 ? 0:00 /usr/dt/bin/dtexec -open 0
-ttprocid 2.10xPgI 01 427 1289637086 1 1 0 192.168.5
  root 348 314 0 23:03:25 ? 0:00 /usr/dt/bin/dtlogin -daemon
  root 314 1 0 23:03:20 ? 0:00 /usr/dt/bin/dtlogin -daemon
  root 346 314 1 23:03:22 ? 0:44 /usr/openwin/bin/Xsun :0 -
nobanner -auth /var/dt/A:0-tMaqNa
  root 369 348 0 23:03:44 ? 0:00 /bin/ksh
/usr/dt/bin/Xsession
  root 427 1 0 23:03:47 pts/3 0:00 /usr/dt/bin/ttsession
  root 436 428 0 23:03:53 ? 0:01 dtfile -session dtPBay3a
  root 415 412 0 23:03:45 pts/3 0:00 -sh -c unset DT;
DISPLAY=:0; /usr/dt/bin/dtsession_res -merge
  root 412 369 0 23:03:45 pts/3 0:00 /usr/dt/bin/sdt_shell -c
unset DT; DISPLAY=:0; /usr/dt/bin/dt
  root 413 1 0 23:03:45 ? 0:00 /usr/dt/bin/dsdm
  root 428 415 0 23:03:47 pts/3 0:00 /usr/dt/bin/dtsession
  root 435 428 0 23:03:49 ? 0:02 dtwm
  root 437 428 0 23:03:53 ? 0:00 /usr/dt/bin/sdtperfmeter -
f -H -t cpu -t disk -s 1 -name fpperfmeter
  root 439 1 0 23:03:53 ? 0:00 /bin/ksh
/usr/dt/bin/sdtvolcheck -d -z 5 cdrom,zip,jaz,dvdrom,rmdisk
  root 476 436 0 23:07:23 ? 0:00 dtfile -session dtPBay3a
  root 477 436 0 23:07:29 ? 0:00 /usr/dt/bin/dtexec -open 0
-ttprocid 3.10xPgI 01 427 1289637086 1 1 0 192.168.5
  root 785 435 0 23:32:46 ? 0:00 /usr/dt/bin/dtexec -open 0
-ttprocid 2.10xPgI 01 427 1289637086 1 1 0 192.168.5
        

Большинство этих программ имеет индивидуальные настройки, описанные в man по ним. Общие ключи, с которыми можно запускать X-клиентов, описаны выше в начале раздела.


Установка новых шрифтов
Для установки новых шрифтов (например, нестандартных или ранее локализованных) следует использовать программу xfs, а для проверки установленных шрифтов - showfont.
Работа с web-браузерами Netscape, Mozilla, Internet Explorer в Solaris
Особенностью браузера Netscape, в частности, в системах под управлением Solaris 9, является отвратительная поддержка русского языка. Так, даже если переменные среды окружения LC_* и LANG установлены верно, а в системе по умолчанию установлены русские шрифты, Netscape может показывать русскоязычные страницы в совершенно нечитаемом виде. Скорее всего, это связано с рассогласованием реального шрифта и представления Netscape о том, какой кодировке русского алфавита соответствуют шрифт и отображаемая страница. Однако если в Solaris установлена локализация RU.UTF-8 (Unicode), то Netscape отображает символы кириллицы верно.
Если с Netscape возникают проблемы (а это браузер по умолчанию при установке Solaris 9), то можно установить браузер Mozilla. Он может быть бесплатно получен с сайта www.sun.com. Перед скачиванием потребуется зарегистрироваться на сайте. Объем архива, который требуется скачать для установки Mozilla, примерно равен 68 мегабайтам. Поэтому быстро скачать этот архив, дозвонившись до провайдера по обычному телефону обычным модемом, будет затруднительно (и накладно!). Для поддержки русского языка браузеру Mozilla требуется дополнительный модуль (его можно скачать с той же страницы, что и сам браузер). Размер модуля - около двух мегабайт.
Следует помнить, что по умолчанию в Mozilla и Netscape не установлен proxy-сервер. Так как для доступа к web-сайтам многие используют кэширующий proxy-сервер squid или подобный ему, надо при настройке браузера вписать адрес и номер порта proxy-сервера в соответствующие поля.
Настройки Mozilla и Netscape доступны в пункте меню Edit->Preferences в каждой из этих программ.
В начале этого века были попытки реализовать браузеры Internet Explorer и Opera под Solaris. В результате были выпущены их версии под Solaris для платформы SPARC. Компания Microsoft прекратила поддержку своего Internet Explorer для Solaris вообще, а Opera продолжает выпускать свой браузер для Solaris, но по-прежнему только для SPARC-систем.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г.Яндекс.Метрика