Все это очень модульно и гибко; однако это приводит к сложности.
«X-сервер» управляет устройством отображения. Он предоставляет графические услуги клиентам, и эти услуги довольно просты - такие, как:
"Give me a window frame to draw in"
"Put this bitmap here"
"Draw a horizontal black line 100px wide"
"Render the text 'hello' at (100,100)"
"Tell me if any mouse clicks or key presses have been aimed at my window frame"
Существует библиотека называется Xlib, если Х, что имеет стандартный интерфейс для всех этих простых услуг. Любая программа, которая хочет использовать экран X-сервера, в конечном итоге использует эту клиентскую библиотеку и называется X-клиентом. Xlib знает, как подключиться к произвольному X-серверу - на локальном компьютере или через TCP/IP по локальной сети или по всему миру - для вызова этих служб.
Менеджер окон, который является просто еще одной клиентской программой X, отвечает за «внешний вид» рабочего стола - как вы перемещаете и устраиваете окна и т. Д. Поскольку оконный менеджер рисует все декорации окон, он может сделать рабочий стол похожим на WindowsXP или Mac или NeXTSTEP.
Часть философии X заключалась в определении «механизма, а не политики», то есть они дают вам инструменты для этого, но не рассказывают, как использовать эти инструменты. Одним из таких инструментов является диспетчер окон, который можно заменить по желанию.
Многие современные приложения X написаны для использования на рабочем столе, таком как Gnome или KDE. Это предлагает этим программам последовательный набор кнопок и элементов управления для рисования и последовательный интерфейс для некоторых вещей, которые традиционно не включены в X, но часто рассматриваются как часть рабочего стола - например, как реагировать на перетаскивание или как представлять стандартное диалоговое окно выбора файла.
Окружающая среда рабочего стола обычно предоставляет объектную модель или программный интерфейс, который заботится о создании всех простых запросов X-клиента и позволяет программе обрабатывать более важные вещи. Удаление этих низкоуровневых вызовов дает еще одно важное преимущество - независимость платформы.
Многие настольные среды включают в себя оконный менеджер, так что внешний вид оконных элементов управления и кнопок согласован и работает с метафорой рабочего стола, предоставляемой средой. Однако его обычно можно отключить.
Разделение X Server (работает дисплей) и X Client (желая использовать дисплей) имеет несколько последствий:
Графическая система отделена от программ с графическим интерфейсом, и они разделены примерно так же, как веб-браузер и веб-сервер.
Таким образом, программа GUI может не отображаться на локальной машине - так же, как веб-браузер не должен указывать на веб-сервер на локальном компьютере.
Машина может запускать JUST клиент с X-сервером в другом месте.
На машине с дисплеем не нужно запускать клиент - он может запускать JUST X-сервер, и все клиенты могут работать на выделенной машине. Это оригинальный тонкий клиент: большие программы, работающие на большом центральном сервере, - с графическим взаимодействием пользователя, обрабатываемым специализированным оборудованием на столе перед пользователем.
Вам необходимо знать, что такое сетевой адрес вашего сервера X, чтобы вы могли показывать программы GUI, где отображать их графический интерфейс. (обычно это делается путем установки переменной окружения DISPLAY)
Вы можете отображать множество программ из разных машин одновременно на одном и том же рабочем столе. Все обрабатывается без проблем, включая вырезку и вставку.
GNOME и KDE не являются интерфейсами GUI. Это рабочая среда рабочего стола. GTK + и kdelib являются основой для них. Также обратите внимание, что Window Managers - это клиент X, а также все приложения GUI в DE. – strager
То, как работают оконные менеджеры, довольно круто ... у них есть крючок, который вызывается при подключении нового клиента, и они захватывают окно клиента и вставляют его внутри дочернего окна. это это дочернее окно, которое рисует границу, закрывает/увеличивает кнопки и т. д.(Я думаю) – rmeador
Я собирался написать ответ, но он более обширен, чем то, что я написал. Только одно: я бы добавил, что оконный менеджер - это еще один X-клиент. И что X обычно называют «X», «X11» или «X Window System»). Я предпочитаю «X11», потому что он короткий и довольно однозначный. –