Системное администрирование ОС Solaris 10

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

Показывать лекцию целиком

Как устроена графическая среда под 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

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

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

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

В Solaris при установке системы по умолчанию устанавливается две графических среды – GNOME и CDE. По умолчанию при интерактивном входе в систему загружается GNOME, но, нажав кнопку Options в окне входа в систему, можно выбрать и CDE. Отдельно можно установить KDE, которую в виде пакета можно скачать с веб-сайта blastwave.org.

Ниже в таблице рассматриваются настройки CDE и GNOME.

Таблица взята с веб-сайта http://members.jcom.home.ne.jp/newtype-shira/home/solaris/index-j.html и обновлена по состоянию на январь 2008 года.

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

Соответствие версий Solaris, SunOS и графической среды в Solaris
SolarisSunOSWindow Manager
Solaris 10 SunOS 5.10 GNOME, CDE, KDE
Solaris 9 SunOS 5.9 CDE
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-сервер, так как в него встроен драйвер конкретной видеоплаты, умеющий обращаться только со "своей" видеоплатой. Это кажется не слишком эффективным, но имеет несколько объяснений:

  • это позволяет оптимизировать X-сервер по скорости вывода графики, что бывает очень важно;
  • это не влияет существенно на переносимость системы, так как сама операционная система превосходно может работать и без X-сервера, и без графики вообще;
  • только в последнее время системы UNIX (в том числе и Solaris) стали устанавливаться на компьютеры с непредсказуемой конфигурацией, причем возможное количество сочетаний в конфигурации выросло в тысячи раз, как только системы UNIX шагнули в мир персональных компьютеров архитектуры x86.
  • Действительно, представьте себе продукцию компании Sun: несмотря на широкий ассортимент, компания устанавливает в свои серверы и рабочие станции всего несколько модификаций видеоплат. Естественно, заранее никто не побеспокоился о том, что X-серверу лучше быть совместимым со всем миром и любым производителем видеоплат вообще. Нам остается только принять это как данность и внимательно изучать Hardware Compatibility List, если мы не желаем в одночасье остаться у пустого экрана из-за того, что система не поддерживает нашу замечательную видеоплату.

    Там, где Х-сервер не запустить из /etc/init, для запуска сервера используется программа xinit. Для нее важен файл $HOME/.xinitrc.

    Для более подробного изучения возможных настроек своего X-сервера или X-клиентов следует обратиться к man X и man X11.

    Обычно при установке Solaris настройка X-сервера выполняется автоматически, однако для некоторых видеокарт (например, достаточно новых карт ATI Radeon X1600) она выполняется не совсем корректно, так как устанавливается драйвер VESA. При этом видеокарта работает в режиме 1024x768 без возможности его изменения, что как правило неприемлемо. Для изменения настроек в таком случае можно использовать программу /usr/X11/bin/xorgconfig, которая изменяет настройки X-сервера и записывает их в файл xorg.conf.

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

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

    Среда CDE фактически является набором X-клиентов и библиотек. В каждой среде есть специализированный клиент, который называется оконным менеджером (window manager). Это – программа, обеспечивающая переключение между окнами различных программ, работу с несколькими рабочими областями и т.п. В среде CDE эту роль играет программа dtwm, а в среде GNOME — metacity.

    Файлами настроек dtwm являются файл /etc/dt, в домашнем каталоге пользователя тоже могут храниться файлы типа .dt, о смысле содержания которых надлежит догадываться с помощью man dtwm.

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

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

    ps –ef | grep dt

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

    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 ? :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.

    Работа с веб-обозревателями Netscape, Mozilla, Internet Explorer в Solaris

    Особенностью веб-обозревателя Netscape, в частности, в системах под управлением Solaris 9, является своеобразная поддержка русского языка. Так, даже если переменные среды окружения LC_* и LANG установлены верно, а в системе по умолчанию установлены русские шрифты, Netscape может показывать русскоязычные страницы совершенно нечитаемыми. Скорее всего, это связано с рассогласованием реального шрифта и представления Netscape о том, какой кодировке русского алфавита соответствуют шрифт и отображаемая страница. Если в Solaris установлена локализация RU.UTF-8 (Unicode), то Netscape отображает символы кириллицы верно.

    Если с Netscape возникают проблемы (а это – веб-обозреватель по умолчанию при установке Solaris 9), то можно установить веб-обозреватель Mozilla. Он может быть бесплатно получен с сайта www.mozilla.org.

    При установке Mozilla и Netscape следует помнить, что по умолчанию в них не установлен proxy-сервер. Так как для доступа к веб-сайтам многие используют кэширующий proxy-сервер squid или подобный ему, надо при настройке веб-обозревателя вписать адрес и номер порта proxy-сервера в соответствующие поля.

    Настройки Mozilla и Netscape доступны в пункте меню Edit-> Preferences в каждой из этих программ.

    В начале XXI века были попытки реализовать веб-обозреватели Internet Explorer и Opera под Solaris. В результате были выпущены их версии под Solaris для платформы SPARC. Компания Microsoft прекратила поддержку своего Internet Explorer для Solaris вообще, а Opera продолжает выпусать свой веб-обозреватель для Solaris, как для SPARC-систем, так и для x86.

    По умолчанию при установке Solaris 10 и Solaris Express устанавливается веб-обозреватель Mozilla Firefox, вполне удовлетворяющий любые современные требования к такому типу программ. Разумеется, для него можно дополнительно скачать плагины (дополнительные модули), которые требуются для отображения роликов Macromedia Flash и т.д.

    Вернуться к учебному плану