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

14.1.4. Приложения

На вершине рабочего стола находятся приложения, например браузеры и окно терминала. X-приложения могут быть как довольно «грубыми» (вроде древней команды xclock), так и достаточно сложными (например, браузер Chrome и пакет LibreOffice). Эти приложения, как правило, работают автономно, но они часто используют межпроцессное взаимодействие, чтобы быть в курсе происходящих событий. Например, какое-либо приложение может проявить интерес к тому, что вы подключили новое устройство хранения или получили новое электронное письмо или мгновенное сообщение. Такое взаимодействие обычно происходит по шине D-Bus, описанной в разделе 14.5.

14.2. Подробнее о системе X Window

Система X Window (http://www.x.org/) исторически сложилась очень большой, с основным дистрибутивом, включающим X-сервер, библиотеки поддержки клиентов и самих клиентов. Вследствие появления таких сред рабочего стола, как GNOME и KDE, роль пакета X со временем изменилась, и теперь акцент сделан на основном сервере, который управляет рендерингом и устройствами ввода, а также на упрощении библиотеки клиентов.

X-сервер легко обнаружить в системе. Он называется X. Поищите его в списке процессов; обычно вы сможете обнаружить, что он запущен с некоторым количеством параметров, например, так:

/usr/bin/X:0 — auth /var/run/lightdm/root/:0 — nolisten tcp vt7 — novtswitch

Параметр:0, показанный здесь, называется дисплеем. Это идентификатор, представляющий один или несколько мониторов, к которым вы получаете доступ с помощью клавиатуры и/или мыши. Обычно дисплей соответствует единственному монитору, который подключен к вашему компьютеру, но вы можете поместить несколько мониторов за одним и тем же дисплеем. При использовании X-сеанса для переменной окружения DISPLAY установлено значение идентификатора дисплея.

примечание

Дисплеи можно далее подразделить на экраны, такие как:0.0 и:0.1, но это используется все реже, поскольку такие расширения, как RandR, способны объединить несколько мониторов в один общий виртуальный экран.

В Linux X-сервер запускается в виртуальном терминале. В данном примере аргумент vt7 говорит нам о том, что сервер был запущен в терминале /dev/tty7 (обычно сервер запускается в первом доступном виртуальном терминале). Можно запустить более одного X-сервера в данный момент времени, предоставив каждому из них отдельный виртуальный терминал, но в таком случае для каждого сервера потребуется уникальный идентификатор дисплея. Между серверами можно переключаться с помощью сочетания клавиш Ctrl+Alt+Fn или команды chvt.

14.2.1. Менеджеры дисплея

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

Существует много разных менеджеров дисплея, например gdm (для среды GNOME) и kdm (для среды KDE). Аргумент lightdm, присутствующий в приведенном выше вызове X-сервера, является кросс-платформенным менеджером дисплея, предназначенным для запуска в сеансах GNOME или KDE.

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

14.2.2. Прозрачность сети

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

Перейти на страницу:

Похожие книги