X Window System

Published on Jun 10, 2017

No Description

PRESENTATION OUTLINE

X Window System

Графический интерфейс пользователя
Photo by Eliot_L

X Window System

  • Протокол для взаимодействия клиента (приложения) и графического сервера (видеоадаптер, клавиатура, мышь, ...)
  • Актуальная версия - X11 (Release 7.7) - 2012 год

Возможности X11

  • Изначально не поддерживалось почти ничего (только вывод растровых изображений, графических примитивов, растровых шрифтов), всё остальное сейчас - в модулях
  • но значительная часть функциональности - в ядре Linux

Основные модули

  • freetype - поддержка векторных шрифтов (/usr/lib/X11/fonts)
  • type1 - поддержка шрифтов Postscript Type 1, bitmap - растровые шрифты
  • dri - поддержка прямого взаимодействия с видеоадаптером
  • glx - расширения для OpenGL

Основные модули

  • extmod - управление расширениями протокола
  • dbe - двойная буферизация (уменьшает мерцание окон при перемещении)
  • ddc - взаимодействие с монитором и извлечение информации о возможностях
  • v4l - работа с видеопотоком

Конфигурация X11

  • /etc/X11/xorg.conf - основной файл
  • Состоит из секций и инструкций
  • Section "Название" / Действие "параметры" / EndSection (в разных строках)
  • Могут включать в себя SubSection

Секции

  • Module (действие - Load) - загрузка и настройка модулей (подсекции могут передать Option в модуль)
  • Extensions - управление расширениями протокола

Untitled Slide

  • Files - описание путей к файлам (например, FontPath)
  • ServerFlags - настройка X-сервера (перечисление Option)

Untitled Slide

  • InputDevice - описание устройства ввода (в каждой есть Identifier, Driver и, если необходимо, Option)
  • Monitor - описание физического монитора (HorizSync, VertRefresh, DisplaySize (mm), Mode)

Untitled Slide

  • Device - видеоадаптер (Identifier, Driver и, если необходимо, Option). Значения для Option определяются драйвером, расширениями и модулями

Untitled Slide

  • Screen - отображаемый экран: связан с Device, Monitor, подсекция Display задаёт возможные Depth (глубина цвета) и Modes. В дальнейшем ссылка по Identifier.

Untitled Slide

  • ServerLayout - сборка всех предыдущих возможностей в один X-сервер: Screen (может быть несколько), InputDevice (тоже допускается несколько).

Инструменты управления

  • setxkbmap - управление раскладкой клавиатуры и способом переключения
  • xset - настройки параметров X-устройств, xprop - отображение и изменение параметров X-сервера
  • xinit - инициализация X-сервера (файл настройки ~/.initrc, /etc/X11/xinit/xinitrc) из startx

Конфигурация

  • XFree86 -autoconfig - автоматическая настройка
  • XFree86 -configure - ручная настройка (или X -configure) - создаёт файл ~/xorg.conf.new
  • xf86cfg или xorgcfg - проверка устройств (для поддержки мыши нужно создать /dev/mouse)

Untitled Slide

  • xf86config - диалоговая конфигурация X11 (или xorg86config)
  • xvidtune - тонкая настройка монитора
  • xwininfo - информация об экране или окне
  • X -version - версия X-сервера

Шрифты

  • xft - подсистема шрифтов, конфигурация в /usr/X11R8/lib/X11/fs/config, список каталогов для поиска (или адреса серверов шрифтов), шрифты могут быть в ~/.fonts
  • xpdyinfo - информация о модулях и возможностях

Untitled Slide

  • X Window Server - Display Manager - Composition Manager - Desktop Environment
  • Менеджер отображения создаёт абстракцию управления виртуальными экранами и отображением

Файлы настройки для пользователя

  • ~/.xinitrc - сценарий при запуске X Window System
  • ~/.xserverrc - переопределение конфигурации X-сервера
  • ~/.Xresources - ресурсы для приложений
  • ~/.Xmodmap - настройки клавиатуры и мыши

Ресурсы X11

  • Изображение, шрифты, цвета (тема оформления)
  • Загрузка - xrdb -merge ... (для слияния с существующими), выполняет компиляцию через g++
  • Просмотр - editres
  • Определение - program*res: value

Отладка

  • xev - перехват событий
  • /var/log/Xorg..log - журнал событий X-сервера
  • /var/log/fontconfig.log - журнал загрузки шрифтов
  • Запуск X-приложений: xclock -geometry WxH-L-T

Настройка XDM

  • Xservers - связывание дисплея и X-сервера
  • Xaccess - управление доступом и XDMCP (удалённый сеанс для тонких клиентов, порт udp/177)

GNOME

  • Конфигурация - /etc/gconf/gdm.conf, XML-файлы (/etc/gnome-vfs3), ~/.g*
  • Можно управлять через gconftool-2 или gconf-editor
  • gdmsetup - управление GDM

KDE

  • /etc/kde4 - ini-файлы (не использовать русские буквы в названиях!)
  • kcontrol или KConfigEditor - графический инструмент управления

Переменные окружения

  • DISPLAY - адрес дисплея по умолчанию
  • XAUTHORITY - адрес файл с токеном для авторизации на X-сервере

Безопасность

  • xhost - управление правами доступа (+local: или +inet:ip)
  • ssh X forwarding (для туннелирования X-протокола в SSH)
  • xauth - управление токеном авторизации

Спасибо за внимание

Photo by Nazly

Friend of Haiku Deck

Haiku Deck Pro User