Шрифт:
Команда xset
Самой старой командой для выполнения настройки является команда xset. Она больше не применяется, но вы можете запустить короткую команду xset q, чтобы получить отчет о состоянии некоторых функций. Возможно, самыми полезными из них будут параметры хранителя экрана и DPMS (Display Power Management Signaling, сигналы управления энергопотреблением дисплеев).
14.4. Будущее системы X Window
При чтении изложенного выше у вас могло сложиться впечатление, что система X является довольно старой и для того, чтобы она смогла научиться выполнять новые задачи, пришлось дать ей изрядное количество «пинков». Вы будете не очень далеки от истины. Первый вариант системы X Window появился в 80-е годы. Несмотря на то что за прошедшие годы она существенно эволюционировала (гибкость являлась важной частью исходного замысла), даже сейчас можно проследить в ней исходную архитектуру.
Одним из признаков эпохи системы X Window является то, что сам ее сервер поддерживает исключительно огромное количество библиотек, многие из них — в целях обратной совместимости. Но, вероятно, более важным является следующее: идея о том, чтобы сервер мог управлять клиентами, их окнами, а также выступать в роли посредника для оконной памяти, сильно повлияла на быстродействие. Если позволить приложениям выполнять рендеринг содержимого их окон непосредственно в дисплейной памяти, то это происходило бы гораздо быстрее. Для этого применяется облегченный менеджер окон, который называется композитным менеджером окон и выполняет минимальное управление дисплейной памятью.
Новый стандарт, основанный на этой идее (Wayland), начинает набирать силу. Наиболее важной частью стандарта Wayland является протокол, который определяет, как клиенты взаимодействуют с композитным менеджером окна. Другими частями являются управление устройством ввода и система совместимости со стандартом X. Как протокол, Wayland также поддерживает идею сетевой прозрачности. Многие среды рабочего стола Linux, например GNOME и KDE, поддерживают теперь стандарт Wayland.
Однако стандарт Wayland является не единственной альтернативой системе X. На момент написания этой книги известно, что другой проект, Mir, имеет похожие цели, хотя в его архитектуре использован немного другой подход. Когда-нибудь произойдет повсеместное принятие хотя бы одной новой системы, которая может оказаться или не оказаться какой-либо из упомянутых.
Эти новые разработки важны, так как они не будут ограничены лишь рабочим столом Linux. Вследствие своего малого быстродействия и гигантского объема используемого дискового пространства система X Window непригодна для таких сред, как планшеты и смартфоны, поэтому производителям до сих пор приходилось использовать альтернативные системы, чтобы привести в действие встроенные дисплеи Linux. Тем не менее стандартизированный прямой рендеринг может содействовать появлению менее затратных способов поддержки таких дисплеев.
14.5. Шина D-Bus
Одной из самых важных разработок, которая возникла из рабочего стола Linux, является шина рабочего стола (D-Bus, Desktop Bus) — система передачи сообщений. Шина D-Bus важна, поскольку она служит механизмом межпроцессного взаимодействия, который позволяет приложениям рабочего стола «общаться» друг с другом. Она важна еще и потому, что большинство систем Linux применяет ее для уведомления процессов о системных событиях, таких как вставка USB-накопителя.
Эта шина состоит из библиотеки, которая стандартизирует межпроцессное взаимодействие с помощью протокола и функций поддержки, позволяющих любым двум процессам взаимодействовать друг с другом. Сама по себе эта библиотека представляет не что иное, как специальную версию обычных функций IPC, таких как сокеты домена Unix. Шину D-Bus делает полезной наличие центрального «концентратора», который называется dbus-daemon. Процессы, которым необходимо реагировать на события, могут подключаться к этому демону и регистрироваться для получения различных типов событий. Процессы могут также создавать события. Например, процесс udisks-daemon прослушивает службу ubus на наличие дисковых событий, а затем отправляет их демону dbus-daemon, который передает их приложениям, заинтересованным в дисковых событиях.
14.5.1. Системный и сеансовый экземпляры
Шина D-Bus стала неотъемлемой частью Linux, и сейчас она выходит за рамки рабочего стола. Например, в системах systemd и Upstart есть каналы коммуникации шины D-Bus. Тем не менее добавление в ядро системы зависимостей от инструментов рабочего стола идет вразрез с основным замыслом Linux.
Чтобы решить эту проблему, есть два типа экземпляров (процессов) dbus-daemon, которые можно запустить. Первый является системным экземпляром, запускаемым системой init во время загрузки системы с помощью параметра —system. Системный экземпляр обычно работает как пользователь D-Bus, и его файлом конфигурации является /etc/dbus-1/system.conf (хотя, возможно, вам не придется его менять). Процессы могут подключаться к системному экземпляру через сокет домена Unix /var/run/dbus/system_bus_socket.
Независимо от системного экземпляра шины D-Bus существует необязательный сеансовый экземпляр, который работает только тогда, когда вы запускаете сеанс рабочего стола. Приложения рабочего стола подключаются к этому экземпляру.
14.5.2. Отслеживание сообщений шины D-Bus
Одним из лучших способов увидеть различия между системным и сеансовым экземплярами демона dbus-daemon является отслеживание событий, которые проходят по шине. Попробуйте применить утилиту dbus-monitor в системном режиме следующим образом: