Что такое X11 Ubuntu?
Система X Window (также известная как X11) — это сетевой протокол клиент / сервер, который десятилетиями использовался на различных аппаратных платформах. Он был реализован рядом различных поставщиков для самых разных аппаратных платформ. В Ubuntu мы поставляем X11 в том виде, в котором он реализован проектом X.org в Linux.
Что такое Linux X11?
X11 — это графическая среда для большинства Unix или Unix-подобных систем, включая * BSD и GNU / Linux; он обеспечивает доступ к экрану, клавиатуре и мыши. X11 — это графические драйверы для Unix и Linux.
Что такое дисплей X11?
Система X Window (обычно X или X11) — это компьютерная программная система и сетевой протокол, который предоставляет графический пользовательский интерфейс (GUI) для сетевых компьютеров. … PuTTY — это тот же инструмент, который используется для обеспечения интерактивного входа в систему из Windows в системы Unix в лаборатории.
Что такое соединение X11?
Система X Window (также известная как X11 или просто X) — это программный пакет и сетевой протокол который позволяет вам взаимодействовать локально, используя дисплей вашего персонального компьютера, мышь и клавиатуру, с графическим пользовательским интерфейсом (GUI) приложения, запущенного на удаленном сетевом компьютере.
LPIC 106.1 часть первая: Включение графики в Linux или X11
Где в Linux установлен X11?
Обычно они расположены в / etc / X11. Дополнительная конфигурация может быть получена с помощью параметров командной строки, переменных среды, автоматического определения и резервных значений по умолчанию. Файл xorg. conf и файлы в каталоге xorg.
Как мне запустить X11 в Linux?
Как запустить XServer при загрузке в Linux
- Войдите в свою систему Linux как администратор (root).
- Откройте окно терминала (если вы вошли в систему с графическим пользовательским интерфейсом) и введите «update-rc. d ‘/ etc / init. …
- Ведущий.» Команда добавляется в процедуру запуска на компьютере.
Как работает X11 сервер?
Программа X-сервера работает на компьютер с графическим дисплеем и взаимодействующий с различными клиентскими программами. Сервер принимает запросы на графический вывод (окна) и отправляет обратно вводимые пользователем данные (клавиатура, мышь). В X Window сервер работает на компьютере пользователя, а клиенты могут работать на другом компьютере.
Linux использует xwindows?
Система X Window — это графический интерфейс для Linux (и я думаю, что любой другой вариант UNIX тоже). … Программа, которая фактически управляет вашим дисплеем, рисует поля и кнопки, которые вы видите, называется X-сервером. Каждый X-сервер создан для конкретной видеокарты, поэтому есть несколько X-серверов на выбор.
Как установить переменную X11 в Linux?
Настройка PuTTy
- В ssh -> X11 установите флажок, чтобы включить пересылку X11.
- в текстовом поле X display location введите localhost: 0.0.
Что такое Xhost?
Описание. Команда xhost добавляет или удаляет имена хостов в списке машин, с которых X-сервер принимает соединения. Эта команда должна быть запущена с машины с подключенным дисплеем. Вы можете удалить имя из списка доступа с помощью параметра -Host.
Wayland или X11 прогноз перспектива? Что такое X Window System/ X.Org Server и капелька истории
Как узнать, пересылает ли X11 в Linux?
Запустите PuTTy, клиент SSH (Secure SHell): Пуск-> Программы-> PuTTy-> PuTTy. в левое меню, разверните «SSH», откройте меню «X11»и установите флажок «Включить пересылку X11». Не забывайте этот шаг!
Источник: frameboxxindore.com
X11 for Mac OS X 1.0
An implementation of the X Window System that makes it possible to run X11-based applications in Mac OS X. Based on the open source XFree86 project — the most common implementation of X11 — X11 for Mac OS X is compatible, fast, and fully integrated with Mac OS X. It includes the full X11R6.6 technology including an X11 window server, Quartz window manager, libraries, and basic utilities such as xterm.
Note 10.4 customers can install X11 by using the Tiger DVD installer disk.
What’s New in this Version
— GM v1.0: Panther compatible and included as an optional install on Mac OS X v10.3 Panther CDs.
— Bundled: Optional install from the third Mac OS X v10.3 Panther CD.
— XFree86 4.3: Includes latest enhancements from the Open Source community.
— Full Screen Mode: Show X11 root and application windows on their own screens
— X11 Dock Menu: Activate X11 applications or windows directly from the Dock icon.
— Double-click applications: Launch X11 applications in the Finder
— Application Menu Command Keys: Define keystrokes for launching X11 applications.
Дата отправки: Oct 28, 2003 Размер файла: 43MB Системные требования
- Mac OS X 10.3 through 10.3.9
- 256MB of RAM recommended
Поддерживаемые языки
- Polski, Português, Suomi, Dansk, 한국어, Norsk Bokmål, 繁體中文, Pусский, Português (Brasil), 简体中文, Svensk
Источник: support.apple.com
Сетевые соединения X11
Есть две технологии в ИТ, которые казалось должны были исчезнуть на рубеже прошлого века, но их живучесть и удобство раз за разом отодвигает их уход со сцены. Речь идет об IPv4 и X11. Если первый из них практически во всех аспектах уступает IPv6, то преимущества Wayland, как технологии над X11 очевидны не всем. Wayland вовсе не универсален, как X Windows System, он намного более прост. Это дает ему ряд преимуществ по сравнению с иксами, но в этом же кроются его недостатки.
Если говорить о преимуществах, то это в первую очередь простота реализации и долгожданное избавление пользователей графической среды Linux от таких артефактов перерисовки, как разрывы изображения, a․ k․ a․ tearing. С этим особенно часто сталкиваются обладатели видеокарт NVidia. Хватает и недостатков и противники замены X-сервера напирают на гибкость использования сетевых возможностей в различных сценариях.
As mentioned, X is essentially a networking protocol with graphical displaying capabilities.
На самом деле X11 сетевой протокол с графическими возможностями, а не наоборот. Из этого простого факта следует, что даже если в скором времени основные дистрибутивы Linux перейдут на протокол Wayland, многие из возможностей и примеров использования X сервера будут востребованы еще достаточно долгое время. Удаленный доступ к приложениям и сессиям X.Org — современной реализации X Window System, одна из таких ключевых особенностей системы.
▍ Сетевая структура взаимодействий X-сервера
Наиболее распространенным IPC, т․ е․ способом взаимодействия между процессами, X-клиента и X-сервера, являются сокеты. Их роль в предоставлении API связи с использование TCP/IP, а также сокетов домена Unix. Помимо сокетов клиент и сервер для коммуникации могут также использовать иные каналы IPC, например MIT Shared Memory Extension.
Доменные сокеты Unix (от англ. Unix Domain Sockets, UDS) являются POSIX-механизмом IPC, с помощью которого различные процессы ОС могут взаимодействовать друг с другом. Такие сокеты эффективнее локальных TCP/IP соединений, так как не требуют дополнительных байтов в заголовке протокола. Подобно сокетам TCP/IP, доменные сокеты Unix поддерживают надёжную потоковую передачу данных с помощью SOCK_STREAM. Они также могут работать в режиме упорядоченной ( см․ SOCK_SEQPACKET) и неупорядоченной ( см․ SOCK_DGRAM) передачи датаграмм.
Рис. 1 Сетевое взаимодействие между клиентом и сервером X с помощью UDS.
UDS используют файловую систему ОС в качестве адресного пространства имён (например /tmp/my_xapp ), сами сокеты в ней всего лишь inode, а процессы обращаются к сокетам, так же, как к файлу. Однако обмен данными в активном соединении использует не файловую систему, а только буферы памяти ядра.
Рис. 2 Сетевое взаимодействие между клиентом и сервером X поверх TCP/IP.
Сокеты TCP/IP и UDS создаются с помощью функции CreateWellKnownSockets(). Для этого она обращается к _XSERVTransMakeAllCOTSServerListeners . Эта процедура пробегает по каждому интерфейсу транспорта, поддерживаемого сервером.
static Bool TryCreateSocket(int num, int *partial) < char port[20]; snprintf(port, sizeof(port), «%d», num); return (_XSERVTransMakeAllCOTSServerListeners(port, partial, ListenTransConns) >= 0); >
Количество таких интерфейсов определено константой NUMTRANS в файле X11/Xtrans/Xtrans.c.
#define NUMTRANS (sizeof(Xtransports)/sizeof(Xtransport_table))
Таблица Xtransports[] определена в том же самом файле и содержит 10 элементов, таким образом NUMTRANS ≤ 10.
Сами же флаги, которые во время сборки определяют транспортные интерфейсы X сервера, можно найти в xc/config/cf/linux.cf .
#if HasDECnet # define ConnectionFlags -DUNIXCONN -DTCPCONN -DDNETCONN # define ExtraLibraries -ldnet #else # define ConnectionFlags -DUNIXCONN -DTCPCONN #endif
Проследив цепочку до системного вызова socket() находим такую последовательность транспортных процедур.
TRANS(MakeAllCOTSServerListeners) | v +————————-+ +——>TRANS(OpenCOTSServer)+—>|TRANS(SocketSelectFamily)| | | |TRANS(SocketOpen) | | v +——-+——————+ | TRANS(Open) | | | | | v v +——+TRANS(ParseAddress) socket()
Серверный процесс стартует с вызова функции TRANS(CreateListener) из Xtrans.c . Далее переход в состояние ожидания входящего соединения происходит в такой последовательности.
TRANS(MakeAllCOTSServerListeners) | v TRANS(CreateListener) | v TRANS(SocketCreateListener) | v bind()
В файле Xtransmit.h можно обнаружить X_TCP_PORT . Первое клиентское соединение будет использовать порт 6000, второе — 6001 и т․ д․
#define X_TCP_PORT 6000
▍ Взгляд изнутри трафика между клиентом и сервером X
Запустим простейшую иксовую программу Xclock и проверим как все это работает на практике.
В первой строке вывода видим, что системный вызов socket() завершился успешно и вернул файловый десткриптор 3. Далее, во второй строке setsockopt() выставляет параметр TCP_NODELAY , с которым TCP фрагменты отправляются по сети как можно ранее, даже если эти фрагменты слишком малы. В третьей строке опять встречается setsockopt() на это раз для активации опции SO_KEEPALIVE . Данный параметр поддерживает соединение в активном состоянии, с помощью периодической отправки служебных сообщений. Наконец в четвертой строке системный вызов connect() соединяет клиент X с сервером, по TCP порту 6000.
Используемый TCP порт напрямую связан с количеством соединений и номером переменной $DISPLAY , если бы использовалось DISPLAY=tcp/192.168.10.10:1.0 , то тогда в последней строке connect() состоялся бы по TCP порту 6001.
После рукопожатия обмен данными происходит с использованием структур X-клиента — xConnClientPrefix , и X-сервера — xConnSetupPrefix , XconnSetup , определенных в файле /usr/include/X11/Xproto.h . Размер занимаемой памяти в структур в байтах определен в #define директивах заголовочного файла.
#define sz_xConnClientPrefix 12 #define sz_xConnSetupPrefix 8 #define sz_xConnSetup 32 . typedef struct < CARD8 byteOrder; BYTE pad; CARD16 majorVersion, minorVersion; CARD16 nbytesAuthProto; /* Authorization protocol */ CARD16 nbytesAuthString; /* Authorization string */ CARD16 pad2; >xConnClientPrefix; . typedef struct < CARD8 success; BYTE lengthReason; /*num bytes in string following if failure */ CARD16 majorVersion, minorVersion; CARD16 length; /* 1/4 additional bytes in setup info */ >xConnSetupPrefix;
Рис. 3 Установка параметров соединения в сессии X11.
Можно также пронаблюдать за процессом с помощью сетевого анализатора, клиентский запрос Initial connection request соответствует вызову xConnClientPrefix . Соответственно Initial connection reply в следующем пакете создан со стороны xConnSetupPrefix и xConnSetup . Для сбора трафика можно запустить Wireshark и слушать локальный интерфейс, либо с помощью следующей команды tcpdump.
Далее, сам файл можно открыть в Wireshark и отфильтровать просмотр по протоколу x11 . Обычно для сбора трафика нужны привилегии root.
Рис. 4 Сетевой след соединения X11 в WireShark.
То же самое и во всех подробностях можно увидеть в tshark в текстовом формате. Так выглядит клиентский запрос X11 в сторону сервера.
Frame 11: 134 bytes on wire (1072 bits), 134 bytes captured (1072 bits) Encapsulation type: Ethernet (1) . [Protocols in frame: eth:ethertype:ipv6:tcp:x11] Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00) Destination: 00:00:00_00:00:00 (00:00:00:00:00:00) Address: 00:00:00_00:00:00 (00:00:00:00:00:00) . Internet Protocol Version 6, Src: ::1, Dst: ::1 0110 . = Version: 6 . Transmission Control Protocol, Src Port: 49202, Dst Port: 6010, Seq: 1, Ack: 1, Len: 48 Source Port: 49202 Destination Port: 6010 . X11, Request, Initial connection request byte-order: 0x6c (Little-endian) unused protocol-major-version: 11 protocol-minor-version: 0 authorization-protocol-name-length: 18 authorization-protocol-data-length: 16 unused authorization-protocol-name: MIT-MAGIC-COOKIE-1
Пакет с ответом со стороны X-сервера совсем не так лаконичен, в нем указаны все необходимые детали для форматирования графического вывода на экран.
Frame 13: 14698 bytes on wire (117584 bits), 14698 bytes captured (117584 bits) Encapsulation type: Ethernet (1) . [Protocols in frame: eth:ethertype:ipv6:tcp:x11] Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00) Destination: 00:00:00_00:00:00 (00:00:00:00:00:00) Address: 00:00:00_00:00:00 (00:00:00:00:00:00) . Internet Protocol Version 6, Src: ::1, Dst: ::1 0110 . = Version: 6 . Transmission Control Protocol, Src Port: 6010, Dst Port: 49202, Seq: 1, Ack: 49, Len: 14612 Source Port: 6010 . X11, Reply, Initial connection reply success: 1 unused protocol-major-version: 11 protocol-minor-version: 0 replylength: 3651 release-number: 12011000 resource-id-base: 0x0b200000 resource-id-mask: 0x001fffff motion-buffer-size: 256 length-of-vendor: 20 maximum-request-length: 65535 number-of-screens-in-roots: 1 number-of-formats-in-pixmap-formats: 7 image-byte-order: 0x00 (LSBFirst) bitmap-format-bit-order: 0x00 (LSBFirst) bitmap-format-scanline-unit: 32 bitmap-format-scanline-pad: 32 min-keycode: 8 max-keycode: 255 unused vendor: The X.Org Foundation pixmap-format pixmap-format . pixmap-format . screen screen (000007a4: 1920 x 1080 x 24) root: 0x000007a4 default_colormap: 0x00000020 white_pixel: 0x00ffffff black_pixel: 0x00000000 current_input_masks: 0x00fa8033 width_in_pixels: 1920 height_in_pixels: 1080 width_in_millimeters: 451 height_in_millimeters: 254 min_installed_maps: 1 max_installed_maps: 1 root_visual: 0x00000021 backing_stores: 0x01 save_unders: False root_depth: 24 allowed_depths_len: 7 depth-detail depth-detail depth: 24 unused visualtypes-numbers: 576 unused visualtype visualtype . visualtype . visualtype .
▍ Удаленное подключение к X-серверу по ssh
Переходя от теории сетевых взаимодействий X Window System к практике, рассмотрим, как запустить графическое приложение на уделенном X-сервере при подключении по ssh.
- Подключение необходимо запускать с ключом -X , который активирует переадресацию X11. На практике, однако из-за X11 SECURITY extension это часто не работает. В таких случаях используют -Y для подключения с доверительной переадресацией X11.
- Убедитесь, что на удаленном сервере установлен пакет xauth , который создаст файл ~/.Xauthority y. Если все нормально, то файл уже создан и проверка показывает на наличие MAGIC COOKIE.
- Имеет смысл в качестве проверки иксов выполнить xclock прежде, чем запускать JAVA installer, или мастер настроек некоей корпоративной CRM, или ERP системы. Если показалось окно xclock, то соединение с X-сервером работает как надо.
Рис. 5 Собственно xclock, значит удаленные иксы настроены и работают.
- Если после логина по ssh была выполнена команда смены пользователя sudo su — для перехода в root, то тогда необходимо выставить переменную DISPLAY. Этого не надо делать, если используется изначальный пользователь и сеанс shell.
Я стараюсь по мере возможности тестировать сеанс Wayland при каждом новом релизе KDE Plasma, несмотря на многочисленные улучшения с каждым разом, на версии kde-apps-21.04.3 работать можно лишь на Plasma-X11. В чем бы не состояли преимущества Wayland, до тех пор пока в терминале зависает команда man, хаотично прыгают элементы ниспадающего меню и блуждает внешний монитор, старый и добрый X Window System остается вне конкуренции. Надеюсь так не будет продолжаться долго.
▍ Для дополнительной информации
- X Window system internals
- Can’t start X11 applications after su.
- Xterm cannot open display?
- Xlib — C Language X Interface
Источник: habr.com
Запуск X11 в Mac OS X с XQuartz
Многие пользователи Mac могли заметить, что X11 больше не поставляется вместе с OS X, и он также не доступен для отдельной установки через Developer Tools. Для того, чтобы работать с X11 на OS X Mountain Lion (и выше), вы можете загрузить и установить бесплатную программу XQuartz, которая включает в себя все библиотеки и приложения, необходимые для запуска и полноценной работы оконной системы X11 в OS X.
XQuartz является проектом с открытым исходным кодом, и на самом деле был создан Apple, которая и сейчас продолжает вносить свой вклад в проект, чтобы убедиться, что он имеет полную совместимость с каждым новым выпуском и обновлением OS X. Хотя большая часть разработок находиться в руках X.org и XFree86.
Получить XQuartz и запустить X11 в Mac OS X очень легко. Все, что вам нужно сделать:
- Бесплатно скачать XQuartz от MacOSForge.org, размер программы 70Мб, для установки
- Запустить установщик PKG и пройти стандартную процедуру установки
- XQuartz будет установлена в качестве приложения в папку «Утилиты», также появиться иконка программы в Launchpad
После запуска XQuartz, вы получаете несколько основных приложений X11, в том числе: Xterm для доступа к командной строке за пределами стандартного приложения Terminal, Xman — окошко со справочной информацией и xlogo — просто рисует на экране классический логотип X. Сторонние приложения, которые нуждаются в X11, должны быть установлены отдельно, но запускаться они будут через XQuartz.
Рядовому пользователю Mac, вероятно, не будет особого смысла в установке X11, многие популярные приложения, такие как Gimp уже адаптированы для OS X, но это может быть интересно для изучения приложений из мира UNIX.
Я лично, использую Х11 для запуска программы Inkscape, которая отлично подходит для работы с векторной графикой. Она поддерживает огромное количество форматов, к тому же, как и Gimp — бесплатная.
Источник: i-bloge.ru
X Window System / X11
X Window System (X11 или просто X) — оконная система, стандартные инструменты и протоколы для построения графического интерфейса пользователя обеспечивающая базовые функции графической среды но не определяющая деталей интерфейса пользователя (этим занимаются менеджеры окон). По этой причине внешний вид программ в среде X11 может очень сильно различаться в зависимости от возможностей и настроек конкретного оконного менеджера.
В X11 предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, а их интерфейс при этом будет передаваться по сети и отображаться на локальной машине пользователя. В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент» это приложение, которое этот дисплей использует (может выполняться на удалённом компьютере).
Система X Window в Linux
Для выполнения некоторых задач на компьютере не обойтись без использования удобного графического интерфейса. Такими задачами могут быть работа с графическими редакторами, видеоредакторами, запуск игровых приложений, визуализация, анимация т. д. Для всего этого необходимо программное обеспечение (ПО), ресурсы (аппаратные, программные), спецификации (протоколы взаимодействия), которые реализуют пользователям полноценный графический интерфейс (GUI).
Поскольку ОС UNIX / GNU Linux обладают архитектурой, ключевой особенностью которой является сетевое клиент-серверное взаимодействие, то реализация графической системы также построена на схеме «клиент-сервер». Ядром такой системы является протокол, описывающий правила организации и предоставления неким сервером X своих мощностей и вычислительных ресурсов клиентам — пользовательских машин, на которых запускается графическая оболочка, позволяющая работать приложениями в виде окон (Window) с характерными для них органами управления и оформлением. Причём внешний вид и сопутствующие функциональные возможности GUI будут зависеть от соответствующих графических библиотек, установленных на клиентской машине. Всё это в совокупности определяет графическую систему X Window.
Как появилась X Window?
В распределённых (достаточно больших) системах на некоторых компьютерах (или даже в подсетях, охватывающих целые отделы организации) было необходимо, в связи со спецификой выполняемых задач, работать с полноценным графическим интерфейсом, например для: инженерной графики в CAD, верстки документов, 3D-графики. Конечно, в дальнейшем вполне закономерно использование графических оболочек для общепользовательских специальных задач стало повсеместным. Однако серверные компьютеры по сей день могут (и, вероятнее всего должны) обходиться без GUI.
Ещё в начале 1980-х годов в Массачусетсском технологическом институте (MIT) в рамках проекта Project Athena была разработана оконная система W (Window), задачей которой было обеспечение полноценного GUI для рабочих станций, занятых соответствующими задачами. Позже преемницей W стала система X – более универсальная и гибкая для интеграции сложных ОС. Её более поздняя версия X Window System 10, которая вышла 1985 году, завоевала довольно широкое распространение. Версия 11 этой ОС или просто X11 так и вовсе благодаря своим довольно открытым условиям лицензии стала самым популярным решением в области GUI поскольку благодаря своим продуманной архитектуре и потенциалу активно переносилась на другие платформы. Появлялось всё больше реализаций протокола XDM и как следствие — новых реализаций системы X11.
С 1998 года компетентная группа в составе MIT начала работы по формализации протокола X, в рамках которой должно было определяться дальнейшее его развитие. Параллельно среди многих реализаций X11 продолжали появляться и свободные, такие как XFree86.
В 2004 году для ветви с оригинальным проектом X11 изменились условия лицензионного соглашения, в которые были включены пункты, не позволявшие дистрибьюторам и разработчикам свободно её использовать. Поэтому многие из них вынуждены были полностью перейти на использование ветви XFree86, которая под новые условия лицензии не подпадала. Сама же ОС XFree86 активно поддерживается компанией X.Org Foundation, которая является некоммерческой организацией. Таким образом, на сегодняшний день подавляющее большинство дистрибутивов Linux для обеспечения графического окружения использует систему X Window в её свободной реализации X.Org.
Как работает система X Window?
X Window обеспечивает работу графического окружения благодаря всего трём основным её компонентам: X-сервера, диспетчера дисплеев, менеджера окон. Диспетчер дисплеев авторизует и/или регистрирует пользователей для предоставления им среды для запуска (набор сценариев запуска) системы. Также диспетчер дисплеев управляет работой X-сервера, т. е. он может запускать его когда клиент отправил соответствующий запрос. В свою очередь X-сервер по завершении запуска предоставляет клиентам абстрактный интерфейс для устройств ввода (мышь, клавиатура), а также для отрисовки растровых изображений.
Менеджер окон служит для организации приложений в виде окон, позволяя переключаться между ними, сворачивать/разворачивать, открывать, перемещать по экрану, управлять рабочими столами Таким образом, выступая в роли интерактивного визуализатора пользовательской среды и приложений. Сам же менеджер окон запускается диспетчером дисплеев по факту авторизации/регистрации пользователя с помощью сценариев запуска. Внешний вид приложений реализуется с помощью различных библиотек интерфейсных элементов (например GTK+), которые позволяют отрисовывать окна, меню, заголовки, кнопки и прочие органы управления. Следующий рисунок демонстрирует клиент-серверную модель, по которой функционирует система X Window:
Библиотеки элементов пользовательского интерфейса могут быть разными, но все они поддерживают спецификацию оконного менеджера, поэтому X-серверу не нужно «знать» все тонкости низкоуровневого формирования элементов интерфейса на стороне клиента. Это одна из ключевых особенностей системы X Window.
Некоторые особенности
Как уже было отмечено, гибкость, масштабируемость, а также открытость системы X Window породила множество реализаций не только её самой (и её протокола), но ничуть не меньшее число графических сред. Долгое время (да и по сей день) оригинальная графическая оболочка на «чистом X11» с собственной библиотекой интерфейсных элементов была незавершённой, т. к. изначально не подразумевалось её повсеместное использование. Однако, с другой стороны клиент-серверная архитектура X Window, а также её независимость от низкоуровневой реализации GUI на стороне клиента «развязывали» руки разработчикам ПО, которые очень часто стремились снабдить свои приложения оригинальным внешним видом, разрабатывая и поставляя вместе с ПО также собственные библиотеки элементов GUI. При этом развитие как самой системы X Window, так графических сред и библиотек элементов интерфейса происходит независимо друг от друга усилиями разных разработчиков.
Именно поэтому сейчас можно наблюдать такое количество всевозможных графических окружений для UNIX/GNU Linux. Некоторые из них (KDE, GNOME, XFCE) по качеству дизайна, удобства использования, функционалу и быстродействию настолько хороши, что люди, впервые увидевшие и поработавшие в этих средах устанавливают и используют их в качестве основных.
Источник: zenway.ru