Jump to content

Протоколы и архитектура X Window System

Логотип системы X Window

В вычислительной технике система X Window (обычно: X11 или X) представляет собой прозрачную для сети оконную систему для растровых дисплеев. В этой статье подробно описаны протоколы и техническая структура X11.

Модель клиент-сервер и прозрачность сети

[ редактировать ]
В этом примере X-сервер принимает вводимые данные с клавиатуры и мыши и отображает их на экране. и Веб-браузер эмулятор терминала запускаются на рабочей станции пользователя, а эмулятор терминала запускается на удаленном сервере, но под управлением компьютера пользователя. Обратите внимание, что удаленное приложение работает так же, как и локально.

X использует модель клиент-сервер . Программа X-сервера работает на компьютере с графическим дисплеем и взаимодействует с различными клиентскими программами . X-сервер действует как посредник между пользователем и клиентскими программами, принимая запросы через TCP-порт 6000 плюс номер дисплея. [1] для графического вывода (окна) из клиентских программ и отображения их пользователю (дисплей), а также приема пользовательского ввода (клавиатура, мышь) и передачи его клиентским программам.

В X сервер работает на компьютере пользователя, а клиенты могут работать на удаленных машинах. Эта терминология меняет общепринятое представление о системах клиент-сервер, в которых клиент обычно работает на локальном компьютере пользователя, а сервер — на удаленном компьютере. Терминология X Window исходит из того, что программа X Window находится в центре всей деятельности, т.е. программа X Window принимает и отвечает на запросы от приложений, а также от ввода данных с помощью мыши и клавиатуры пользователя. Поэтому приложения (на удаленных компьютерах) рассматриваются как клиенты программы сервера X Window.

Протокол связи между сервером и клиентом работает прозрачно в сети : клиент и сервер могут работать на одном и том же компьютере или на разных, возможно, с разными архитектурами и операционными системами . Клиент и сервер могут безопасно взаимодействовать через Интернет , туннелируя соединение через зашифрованное соединение. [2]

Принципы проектирования

[ редактировать ]

Боб Шейфлер и Джим Геттис изложили ранние принципы X следующим образом (перечисленные в Scheifler/Gettys 1996):

  • Не добавляйте новые функциональные возможности, если только разработчик не сможет без них завершить реальное приложение.
  • Решить, чем система не является, так же важно, как решить, чем она является. Не обслуживайте все мировые потребности; скорее, сделайте систему расширяемой, чтобы дополнительные потребности могли быть удовлетворены с помощью восходящей совместимости.
  • Единственное, что хуже обобщения на одном примере, — это обобщение вообще без примеров.
  • Если проблема не совсем понятна, вероятно, лучше вообще не предлагать никакого решения.
  • Если вы можете получить 90 процентов желаемого эффекта за 10 процентов работы, используйте более простое решение. (См. также «Чем хуже, тем лучше ».)
  • Максимально изолируйте сложность.
  • Предоставьте механизм, а не политику. В частности, передайте политику пользовательского интерфейса в руки клиентов.

Первый принцип был изменен во время разработки X11: Не добавляйте новые функциональные возможности, если вам не известно какое-то реальное приложение, которому это потребуется.

С тех пор X в основном придерживается этих принципов. Фонд X.Org разрабатывает эталонную реализацию с целью расширения и улучшения реализации, сохраняя при этом ее почти полную совместимость с исходным протоколом 1987 года.

Основной протокол

[ редактировать ]

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

После установления соединения клиент и сервер обмениваются по каналу четырьмя различными типами пакетов:

  1. Запрос: клиент запрашивает информацию у сервера или просит его выполнить действие.
  2. Ответ: сервер отвечает на запрос. Не на все запросы генерируются ответы.
  3. Событие: сервер отправляет клиенту событие, например, ввод с клавиатуры или мыши или перемещение, изменение размера или отображение окна.
  4. Ошибка: сервер отправляет пакет ошибки, если запрос недействителен. Поскольку запросы ставятся в очередь, пакеты ошибок, сгенерированные запросом, могут быть отправлены не сразу.

X-сервер предоставляет набор основных сервисов. Клиентские программы реализуют более сложные функции путем взаимодействия с сервером.

Возможное размещение некоторых окон: 1 — корневое окно, занимающее весь экран; 2 и 3 — окна верхнего уровня; 4 и 5 являются подокнами окна 2. Части окна, находящиеся за пределами родительского окна, не видны.

То, что другие графические интерфейсы пользователя обычно называют окном, является окном верхнего уровня в системе X Window. Термин «окно» также используется для окон, которые находятся внутри другого окна, то есть подокна родительского окна . Графические элементы, такие как кнопки, меню, значки и т. д., реализованы с помощью окон.

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

Идентификаторы

[ редактировать ]

На X-сервере хранятся все данные об окнах, шрифтах и ​​т. д. Клиенту известны идентификаторы этих объектов — целые числа, которые он может использовать в качестве имён при взаимодействии с сервером. Например, если клиент желает создать окно, он запрашивает сервер создать его и (в случае успеха) получает взамен идентификатор, который сервер связал с вновь созданным окном. Идентификатор может позже использоваться клиентом для запроса, например, строки, которая будет нарисована в окне.

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

Атрибуты и свойства

[ редактировать ]

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

Свойство характеризуется именем, типом и значением. Свойства напоминают переменные в императивных языках программирования тем, что приложение может создать новое свойство с заданным именем и заданным типом и сохранить в нем значение. Свойства связаны с окнами: два свойства с одинаковым именем могут существовать в двух разных окнах, имея разные типы и значения.

Свойства в основном используются для межклиентского общения. Например, свойство с именем WM_NAME сохраняет имя окна; Оконные менеджеры обычно читают это свойство и отображают имя окна вверху.

The xprop Программа может отображать свойства окна. В частности, xprop -root показывает свойства корневого окна, включающие в себя X-ресурсы (параметры программ).

События — это пакеты, отправляемые сервером клиенту, чтобы сообщить о том, что произошло что-то, что может заинтересовать клиента. Клиент может запросить сервер отправить событие другому клиенту; это используется для связи между клиентами. Например, когда клиент запрашивает текст, который в данный момент выбран, событие отправляется клиенту, который в данный момент обрабатывает окно, содержащее выбор.

Содержимое окна может быть «уничтожено» при некоторых условиях (например, если окно накрыто). Всякий раз, когда область уничтоженного контента становится видимой, сервер генерирует сообщение Expose событие для уведомления клиента о том, что необходимо отрисовать часть окна.

Другие события могут служить для уведомления клиентов о вводе с клавиатуры или мыши, о создании новых окон и т. д.

Некоторые виды событий всегда отправляются клиенту, но большинство видов событий отправляются только в том случае, если клиент ранее заявил о своей заинтересованности в них, поскольку клиенты могут быть заинтересованы только в каких-то событиях. Например, клиента могут интересовать события, связанные с клавиатурой, но не события, связанные с мышью.

Цветовые режимы

[ редактировать ]

То, как система X Window обрабатывает цвета, иногда может сбивать с толку пользователей, и исторически поддерживалось несколько различных режимов. Большинство современных приложений используют полноцветный режим (24-битный цвет, по 8 бит для красного, зеленого и синего цветов), но старым или специализированным приложениям может потребоваться другой цветовой режим. Многие коммерческие специализированные приложения используют PseudoColor .

Протокол X11 фактически использует одно 32-битное целое число без знака, называемое значением пикселя , для представления одного цвета в большинстве графических операций. При передаче интенсивности основных цветов для каждого компонента цвета используется 16-битное целое число. Существуют следующие представления цветов; не все из них могут поддерживаться на конкретном устройстве.

  • DirectColor: значение пикселя разбивается на отдельные красные, зеленые и синие подполя. Каждое подполе индексирует отдельную цветовую карту. Записи во всех цветовых картах можно изменить.
    • TrueColor: То же, что и DirectColor, за исключением того, что записи цветовой карты предопределены аппаратным обеспечением и не могут быть изменены. Обычно каждая из красных, зеленых и синих цветовых карт обеспечивает (почти) линейную шкалу интенсивности.
  • GrayScale: значение пикселя индексирует одну цветовую карту, содержащую монохромную интенсивность. Записи цветовой карты можно изменить.
    • StaticGray: То же, что GrayScale, за исключением того, что записи цветовой карты предопределены аппаратным обеспечением и не могут быть изменены.
  • PseudoColor ( Chunky ): значение пикселя индексирует одну цветовую карту, содержащую интенсивность цвета. Записи цветовой карты можно изменить.
    • StaticColor: То же, что и PseudoColor, за исключением того, что записи цветовой карты предопределены аппаратным обеспечением и не могут быть изменены.

Xlib и другие клиентские библиотеки

[ редактировать ]

Большинство клиентских программ взаимодействуют с сервером через клиентскую библиотеку Xlib . Помимо Xlib, библиотека XCB более тесно связана с протоколом X. В частности, большинство клиентов используют такие библиотеки, как Xaw , Motif , GTK+ или Qt , которые, в свою очередь, используют Xlib для взаимодействия с сервером. Qt перешел с Xlib на XCB с выпуском 5.0, но это изменение практически не повлияло на клиентские программы.

Межклиентское общение

[ редактировать ]

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

Руководство по соглашениям межклиентского взаимодействия определяет протокол обмена данными посредством выбора и взаимодействия приложений с оконным менеджером. Некоторые сочли эту спецификацию сложной и запутанной; [3] [4] согласованность внешнего вида приложения и взаимодействия обычно достигается путем программирования для конкретной среды рабочего стола.

Протокол межклиентского обмена (ICE) определяет структуру для построения протоколов взаимодействия между клиентами, поэтому программисты могут создавать на его основе определенный протокол. В частности, протокол X Session Management (XSMP) — это протокол на основе ICE, который управляет взаимодействием приложений с менеджером сеансов — программой, которая заботится о сохранении состояния рабочего стола в конце интерактивного сеанса и восстановление его при повторном запуске другого сеанса с тем же пользователем.

Спецификации freedesktop включают новые соглашения, в том числе соглашение о перетаскивании Xdnd (используется для передачи данных путем их выбора и перетаскивания в другое окно) и соглашение о встроенных приложениях Xembed (которое подробно описывает, как приложение может запускаться в подокне другого приложения). ).

Выделение, вырезание буферов и перетаскивание

[ редактировать ]

Механизмы выделения, вырезания буферов и перетаскивания в системе X Window позволяют пользователю переносить данные из одного окна в другое. Выделение и буфер обрезки используются (обычно), когда пользователь выбирает текст или некоторые другие данные в окне и вставляет их в другое окно. Перетаскивание используется, когда пользователь выбирает что-то в окне, затем щелкает выделение и перетаскивает его в другое окно.

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

Пользователи могут передавать между клиентами данные разных типов: обычно это текст, но также может быть растровое изображение, число, список объектов и т. д.

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

Оконный менеджер

[ редактировать ]

Оконный менеджер — это программа, которая управляет общим видом окон и других графических элементов графического интерфейса пользователя . Различия во внешнем виде X Window System в разных установках обусловлены главным образом использованием разных оконных менеджеров или разными конфигурациями оконного менеджера.

Диспетчер окон занимается определением положения окон, размещением вокруг них декоративной рамки, обработкой значков, обработкой щелчков мыши за пределами окон (на «фоне»), обработкой определенных нажатий клавиш и т. д.

С точки зрения X-сервера оконный менеджер работает как клиент, как и любой другой клиент. Исходное положение и декоративные границы вокруг окон обрабатываются оконным менеджером с помощью следующих запросов:

  1. приложение может запросить сервер не удовлетворять запросы на отображение (показ) подокна данного окна, а вместо этого отправить событие;
  2. приложение может запросить изменение родителя окна.

Оконный менеджер использует первый запрос для перехвата любого запроса на отображение окон верхнего уровня (дочерних элементов корневого окна). Всякий раз, когда другое приложение запрашивает отображение окна верхнего уровня, сервер не делает этого, а вместо этого отправляет событие оконному менеджеру. Большинство оконных менеджеров меняют родительское окно: они создают окно верхнего уровня большего размера (называемое окном фрейма) и переопределяют исходное окно как дочернее. Графически это соответствует размещению исходного окна внутри окна фрейма. Пространство фреймового окна, не занятое исходным окном, используется для декоративной рамки вокруг окна («граница» и «строка заголовка»).

Оконный менеджер управляет щелчками мыши в окне фрейма. Это позволяет, например, пользователю перемещать или изменять размер окна, щелкая и перетаскивая границу или строку заголовка.

Оконный менеджер также обрабатывает значки и связанные с ними визуальные элементы графического пользовательского интерфейса. Значки не существуют на уровне основного протокола X Window. Они реализуются оконным менеджером. Например, всякий раз, когда окно должно быть «иконизировано», оконный менеджер FVWM отменяет отображение окна и создает окно для имени значка и, возможно, другое окно для изображения значка. Таким образом, значение и обработка значков полностью определяются оконным менеджером: некоторые оконные менеджеры, такие как wm2, вообще не реализуют значки.

Менеджер сеансов

[ редактировать ]

Грубо говоря, состояние сеанса это «состояние рабочего стола» в данный момент времени: набор окон с их текущим содержимым. Точнее, это набор приложений, управляющих этими окнами, и информация, которая позволяет этим приложениям при необходимости восстанавливать состояние своих управляемых окон. Программа, известная как менеджер сеансов X, сохраняет и восстанавливает состояние сеансов.

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

Система X Window включает в себя менеджер сеансов по умолчанию, называемый xsm. Разработчики написали другие менеджеры сеансов для конкретных настольных систем. Основные примеры включают в себя ksmserver, xfce4-session, и gnome-session для KDE , Xfce и GNOME соответственно.

X-дисплей-менеджер

[ редактировать ]

Программа, известная как диспетчер отображения X, отображает графическое приглашение для входа в систему X Window. В более общем смысле, диспетчер отображения запускает один или несколько X-серверов на локальном компьютере или принимает входящие соединения от X-серверов, работающих на удаленных компьютерах. Локальные серверы запускаются диспетчером дисплея, который затем подключается к ним, чтобы предоставить пользователю экран входа в систему. Удаленные серверы запускаются независимо от диспетчера дисплея и подключаются к нему. В этой ситуации диспетчер дисплея работает как графический сервер Telnet : X-сервер может подключиться к диспетчеру дисплея, который запускает сеанс; приложения, использующие этот сеанс, запускаются на том же компьютере, что и диспетчер дисплея, но имеют ввод и вывод на компьютере, на котором работает X-сервер (который может быть компьютером перед пользователем или удаленным).

Система X Window поставляется с XDM в качестве базового менеджера отображения. Другие менеджеры отображения включают GDM ( GNOME ), KDM / SDDM ( KDE ), WDM (с использованием набора виджетов WINGs, используемого в Window Maker ) и входа (с использованием архитектуры, используемой в Enlightenment v.17).

Элементы пользовательского интерфейса

[ редактировать ]

Ранние наборы инструментов виджетов для X включали Xaw ( набор виджетов Athena , 1983 г.), OLIT ( набор инструментов OPEN LOOK Intrinsics Toolkit, 1988 г.), XView (1988 г.), Motif (1980-е гг.) и Tk . OLIT и XView функционируют как базовые наборы инструментов для среды рабочего стола Sun устаревшей OpenWindows .

Motif предоставляет базовый набор инструментов для Common Desktop Environment (CDE), среды рабочего стола, используемой в коммерческих системах Unix, таких как Solaris , AIX и HP-UX . (Solaris 10 включает в себя как CDE, так и GNOME , причем последний является предпочтительной средой рабочего стола с 2010 г. .)

Наборы инструментов, разработанные совсем недавно, включают Qt (1991-, используется KDE ), GTK+ (1997-, используется GNOME), wxWidgets (1992-), FLTK (1998-), FOX (1997-), и fpGUI (2005-по настоящее время).

Расширения

[ редактировать ]

Шейфлер и Геттис разработали X-сервер простым, но расширяемым. Таким образом, большая часть функций теперь находится в расширениях протокола.

На уровне протокола каждому расширению могут быть назначены новые типы пакетов запроса/события/ошибки. Доступ к функциям расширения осуществляется клиентскими приложениями через библиотеки расширений. Сообщается, что добавление расширений к текущим реализациям X-сервера затруднено из-за отсутствия модульности в конструкции сервера. [5] Долгосрочной целью проекта XCB является автоматизация создания как клиентской, так и серверной части расширений на основе описаний протоколов XML.

В следующей таблице представлен частичный каталог разработанных расширений, отсортированный примерно по давности внедрения:

Расширение Описание и примечания
Композитный Внеэкранный рендеринг всей иерархии окон, позволяющий приложениям и менеджерам композиции применять эффекты в любом месте. Требуется для таких вещей, как альфа-прозрачность окон и тени.
Повреждать Отслеживает измененные области окон и сводит к минимуму использование полосы пропускания, необходимое для поддержания актуальности дисплея.
XИсправления Несколько изменений протокола.
Расширенная визуальная информация (EVIE) Позволяет клиенту определять информацию о визуальных элементах ядра X помимо той, которую предоставляет основной протокол.
Распределенная мультиголовка (DMX) Общается с сервером DMX X.
Компенсация движения X-Video (XvMC) Выгрузка компенсации движения видео на графический процессор, который ее поддерживает.
ГЛКС Поддержка рендеринга OpenGL в Windows.
XRender Аппаратное ускорение композиции изображений с альфа-смешением.
Изменение размера и поворот (RANDR) Динамически изменяйте размер, отражение, поворот и частоту обновления экрана X.
Ксинерама Разделение рабочего стола на несколько мониторов.
Сигнализация управления питанием дисплея ( DPMS ) Позволяет управлять режимами энергосбережения монитора.
Расширение клавиатуры X Улучшена обработка раскладки клавиатуры.
ДВОЙНОЙ БУФЕР Обеспечивает анимацию без мерцания.
ЗАПИСЫВАТЬ Используется при тестировании сервера
МИТ-ШМ Использование общей памяти для повышения производительности.
СИНХРОНИЗАЦИЯ Предоставляет таймеры и синхронизирует клиенты (например, работающие на разных хостах и ​​в разных операционных системах) с X-сервера. Создано из-за ошибок, внесенных сетью.
XTEST Для создания поддельного ввода. Используйте, т.е. xte приложение из пакета XAutomation .
XInputExtension Поддержка устройств ввода, таких как графические планшеты; реализуемый как libXi [6]
БОЛЬШИЕ ЗАПРОСЫ Разрешает запросы длиной более 262 140 байт.
XC-MISC Исправлен выход за пределы диапазона идентификаторов ресурсов. [7]
Расширение X-видео Поддержка аппаратного наложения видео и аппаратного масштабирования видео при воспроизведении. Также называется Xv (не путать с программой xv ).
Форма Поддержка непрямоугольных и частично прозрачных (двоичных, без альфа-непрозрачности) окон.
МОЯ ЗАСТАВКА Запускает программу, когда X-сервер включает встроенную заставку.
БЕЗОПАСНОСТЬ Обеспечивает повышенную безопасность сервера. [8]
X-Ресурс Позволяет запрашивать X-сервер об использовании его ресурсов.
XFree86-Большой шрифт
XFree86-DGA Обеспечивает прямой доступ к линейному кадровому буферу (прямой доступ к графике). В основном будет удалено в X.Org 7.6. [9]
XFree86-VidModeExtension Динамически настраивает модели и гамму.

Устаревшие расширения

[ редактировать ]
Расширение Описание и примечания
Низкая полоса пропускания X (LBX) Заменен на VNC, туннелируемый через защищенное соединение оболочки, оказался быстрее, чем LBX.
ПЕКС «Расширение PHIGS до X»; поддержка API 3D-графика сцены PHIGS. Вместо этого часто используется GLX с OpenGL.
Расширение XImage Вместо этого используется MIT-SHM.
Ксевви Расширение перехвата событий X. Предназначен для пользователей, которым необходимо перехватывать все события клавиатуры и мыши. Удален в X.Org 7.5. [10]
XFree86-Разное Заменяется входными свойствами . Удален в X.Org 7.5. [10]
ДЕК-XTRAP XTrap позволяет управляющему X-клиенту имитировать взаимодействие реального пользователя с рабочей станцией X. Регистрируется для мониторинга визуального вывода, фактического ввода с клавиатуры и мыши, а также для имитации ввода с устройства. Типичным вариантом использования будет точное измерение производительности по воспринимаемому пользователем времени интерактивного ответа в миллисекундах. Сценарий эмуляции пользователя можно записать, а затем многократно воспроизводить. XTrap был выпущен с открытым исходным кодом инженерами Digital Equipment Corporation примерно в 1988 году. Удален в X.Org 7.5. [10]
КУБОК ПОЕЗДА Обеспечивает политику использования цветовой карты. Удален в X.Org 7.5. [10]
MIT-ВЫХОД-НЕСТАНДАРТНЫЙ Поддержка различных функций обратной совместимости для клиентов, которые использовали ранние реализации X11. Для совместимости с клиентами Pre-X11R4. Отключено с 2006 года. Удален в X.Org 7.5. [10]
XC-APPGROUP Удален в X.Org 7.5. [10]
XPRINT Устарело. Позволяет приложению отображать выходные данные на принтере так же, как на любом другом устройстве отображения. Удален в мае 2008 года. [11]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ «Xorg, Сетевые подключения». X11R7.7 Страницы руководства . Фонд X.Org . Проверено 23 декабря 2023 г.
  2. ^ Модель клиент-сервер
  3. ^ Хопкинс, Дон (в титрах не указан) (май 1994 г.). Гарфинкель, Симсон ; Вайзе, Дэниел; Штрассманн, Стивен (ред.). Справочник ненавистников UNIX (PDF) . Сан-Матео, Калифорния, США: IDG Books . п. 126 Катастрофа X-Windows . ISBN  978-1-56884-203-5 . ОСЛК   30681401 . Проверено 11 июля 2011 г. ICCCM невероятно запутан, его нужно соблюдать до последней буквы, а он все равно не работает. Соответствие ICCCM — одно из самых сложных испытаний при внедрении наборов инструментов X, оконных менеджеров и даже простых приложений. Это настолько сложно, что многие преимущества просто не стоят усилий по соблюдению требований.
  4. ^ Раймонд, Эрик С. (30 сентября 2008 г.). «Справочник ненавистника Unix, пересмотренный вариант» . Вооружен и опасен . Проверено 11 июля 2011 г. ICCCM примерно так же ужасен, как описывают авторы [Unix Hater's Handbook], но в наши дни это трудно заметить, потому что современные наборы инструментов и оконные менеджеры неплохо справляются с сокрытием этого уродства от приложений.
  5. ^ Геттис, Джеймс ; Карлтон, Филип Л.; МакГрегор, Скотт (10 декабря 1990 г.). «Система X Window, версия 11» (PDF) . Digital Equipment Corporation и Silicon Graphics Computer Systems . п. 36 . Проверено 11 июля 2011 г. X11 не позволяет считывать всю информацию, которая могла храниться на сервере (например, протокол X11 не позволяет запрашивать состояние GC). Это несколько усложняет реализацию модульности.
  6. ^ «Клиентская библиотека X.org libXi для XInput» . Проверено 2 марта 2010 г. libXi — библиотека для расширения ввода X
  7. ^ «Расширение XC-MISC» (PDF) . Архивировано из оригинала (PDF) 27 сентября 2011 года . Проверено 2 августа 2010 г.
  8. ^ «Спецификация расширения безопасности» (PDF) . Архивировано из оригинала (PDF) 27 сентября 2011 года . Проверено 2 августа 2010 г.
  9. ^ Отключите запросы XFree86-DGA, за исключением относительного движения мыши, до тех пор, пока Xinput 2 не позволит уничтожить все это. X.Org Wiki - Релизы/7.6
  10. ^ Перейти обратно: а б с д и ж Анонс выхода версии 7.5
  11. ^ Совершить удаление XPrint
  1. Манрике, Даниэль (23 мая 2001 г.). «Архитектура системы X Window: обзор» . Обзор архитектуры системы X Window HOWTO . Проект документации Linux . Проверено 13 июля 2011 г.
  2. Магуоло, Филиппо (16 декабря 2005 г.). «Архитектура X-Window» . Уроки Linux . Маунт-Киско, штат Нью-Йорк, США: Джон Ф. Мур . Проверено 13 июля 2011 г.
  3. Стивенс, В. Ричард (1994). «Оконная система 30.5 X» (PDF) . TCP/IP в иллюстрациях (PDF) . Серия профессиональных компьютеров Аддисона-Уэсли. Том. 1, Протоколы (1-е изд.). Бостон, Массачусетс, США: Аддисон-Уэсли . 30.5 Оконная система X. ISBN  978-0-201-63346-7 . OCLC   246049781 . Проверено 13 июля 2011 г.
  4. Корпорация IBM, Международный центр технической поддержки (июль 1994 г.). «1.2 X Концепции» (PDF) . TCP/IP для MVS, VM, OS/2 и DOS: Руководство по системе X Window (PDF) . IBM Redbooks (второе изд.). Research Triangle Park, Северная Каролина, США: IBM . X Концепции . Проверено 13 июля 2011 г.
  5. Керсия, Валери; О'Рейли, Тим (1993) [1988]. Руководство пользователя системы X Window: для версии X11 5 . Полные руководства по системе X Window. Том. 3. Севастополь, Калифорния, США: О'Рейли и доц. ISBN  978-1-56592-014-9 . OCLC   682229836 . ЖКК   QA76.76.W56 Q47 . Проверено 14 июля 2011 г. На archive.org есть издание 1990 года.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 99f2366f5a1a8e9f9363ac7c33e85e7d__1718415420
URL1:https://arc.ask3.ru/arc/aa/99/7d/99f2366f5a1a8e9f9363ac7c33e85e7d.html
Заголовок, (Title) документа по адресу, URL1:
X Window System protocols and architecture - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)