X Window System ( X11 или просто X ; стилизовано 𝕏 ) — это оконная система для растровых дисплеев, распространенная в Unix-подобных операционных системах.
X возник как часть проекта Athena в Массачусетском технологическом институте (MIT) в 1984 году. [3] Протокол X существует в версии 11 (отсюда «X11») с сентября 1987 года. X.Org Foundation возглавляет проект X, а текущая эталонная реализация, X.Org Server , доступна как бесплатное программное обеспечение с открытым исходным кодом по лицензии MIT и аналогичным разрешительным лицензиям.
X — это архитектурно-независимая система для удаленных графических пользовательских интерфейсов и возможностей устройств ввода. Каждый человек, использующий сетевой терминал, имеет возможность взаимодействовать с дисплеем с помощью любого типа устройства ввода пользователя.
В стандартной комплектации это полное, хотя и простое, решение для отображения и интерфейса, которое предоставляет стандартный набор инструментов и стек протоколов для создания графических пользовательских интерфейсов в большинстве Unix-подобных операционных систем и OpenVMS , а также было перенесено на многие другие современные операционные системы общего назначения .
X предоставляет базовую структуру или примитивы для создания таких сред GUI: рисование и перемещение окон на дисплее и взаимодействие с мышью, клавиатурой или сенсорным экраном. X не предписывает пользовательский интерфейс ; этим занимаются отдельные клиентские программы. Программы могут использовать графические возможности X без пользовательского интерфейса. Таким образом, визуальный стиль сред на основе X сильно различается; разные программы могут представлять радикально разные интерфейсы.
В отличие от большинства более ранних протоколов отображения, X был специально разработан для использования через сетевые соединения, а не на встроенном или присоединенном устройстве отображения. X обладает сетевой прозрачностью , что означает, что программа X, запущенная на компьютере где-то в сети (например, в Интернете), может отображать свой пользовательский интерфейс на сервере X, запущенном на каком-то другом компьютере в сети. Сервер X обычно является поставщиком графических ресурсов и событий клавиатуры/мыши для клиентов X , что означает, что сервер X обычно работает на компьютере перед пользователем-человеком, в то время как клиентские приложения X работают в любом месте сети и взаимодействуют с компьютером пользователя, чтобы запрашивать рендеринг графического контента и получать события от устройств ввода, включая клавиатуру и мышь.
Тот факт, что термин «сервер» применяется к программному обеспечению, находящемуся перед пользователем, часто удивляет пользователей, привыкших к тому, что их программы являются клиентами служб на удаленных компьютерах. Здесь, вместо того, чтобы удаленная база данных была ресурсом для локального приложения, графический дисплей и устройства ввода пользователя становятся ресурсами, предоставляемыми локальным X-сервером как локальным, так и удаленно размещенным X-клиентским программам, которым необходимо совместно использовать графику и устройства ввода пользователя для связи с пользователем.
Сетевой протокол X основан на примитивах команд X. Этот подход позволяет как 2D, так и (через расширения, такие как GLX) 3D-операциям клиентского приложения X, которое может быть запущено на другом компьютере, по-прежнему полностью ускоряться на дисплее сервера X. Например, в классическом OpenGL (до версии 3.0) списки отображения, содержащие большое количество объектов, могли быть созданы и сохранены полностью на сервере X удаленной клиентской программой X, а затем каждый из них визуализировался путем отправки одного glCallList(which) по сети.
X не обеспечивает встроенной поддержки звука; существует несколько проектов, призванных заполнить эту нишу, некоторые из которых также обеспечивают прозрачную сетевую поддержку.
X использует модель клиент-сервер: X-сервер взаимодействует с различными клиентскими программами. [4] Сервер принимает запросы на графический вывод (окна) и отправляет обратно пользовательский ввод (с клавиатуры, мыши или сенсорного экрана). Сервер может функционировать как:
Эта терминология клиент-сервер – терминал пользователя является сервером, а приложения – клиентами – часто путает новых пользователей X, поскольку термины кажутся перевернутыми. Но X принимает точку зрения приложения, а не конечного пользователя: X предоставляет приложениям сервисы отображения и ввода-вывода, поэтому он является сервером; приложения используют эти сервисы, поэтому они являются клиентами.
Протокол связи между сервером и клиентом работает прозрачно для сети: клиент и сервер могут работать на одной и той же машине или на разных, возможно, с разными архитектурами и операционными системами. Клиент и сервер могут даже безопасно общаться через Интернет, туннелируя соединение через зашифрованный сетевой сеанс.
X-клиент сам может эмулировать X-сервер, предоставляя другим клиентам сервисы отображения. Это известно как «вложение X». Клиенты с открытым исходным кодом, такие как Xnest и Xephyr, поддерживают такое вложение X. [5]
Чтобы запустить клиентское приложение X на удаленной машине, пользователь может выполнить следующие действия:
ssh -X
команду для подключения к удаленной машинеЗатем удаленное клиентское приложение X установит соединение с локальным сервером X пользователя, предоставляя пользователю отображение и ввод данных.
В качестве альтернативы локальная машина может запустить небольшую программу, которая подключается к удаленной машине и запускает клиентское приложение.
Практические примеры удаленных клиентов включают в себя:
X в первую очередь определяет протокольные и графические примитивы – он намеренно не содержит спецификаций для дизайна пользовательского интерфейса приложения, таких как стили кнопок, меню или заголовков окон. [6] Вместо этого прикладное программное обеспечение – например, оконные менеджеры, наборы инструментов для виджетов GUI и среды рабочего стола или графические пользовательские интерфейсы, специфичные для приложений – определяет и предоставляет такие детали. В результате не существует типичного интерфейса X, и среди пользователей стали популярны несколько различных сред рабочего стола.
Менеджер окон управляет размещением и внешним видом окон приложений. Это может привести к тому, что интерфейсы рабочего стола будут напоминать интерфейсы Microsoft Windows или Apple Macintosh (примерами могут служить GNOME 2, KDE Plasma, Xfce) или иметь радикально иные элементы управления (например, тайловый менеджер окон, например wmii или Ratpoison ). Некоторые интерфейсы, такие как Sugar или ChromeOS, вообще избегают метафоры рабочего стола, упрощая свои интерфейсы для специализированных приложений. Менеджеры окон различаются по сложности и изощренности от самых простых ( например , twm, базовый менеджер окон, поставляемый с X, или evilwm, чрезвычайно легкий менеджер окон) до более комплексных сред рабочего стола, таких как Enlightenment, и даже до менеджеров окон, ориентированных на приложения, для вертикальных рынков, таких как POS.
Многие пользователи используют X с окружением рабочего стола, которое, помимо оконного менеджера, включает в себя различные приложения, использующие согласованный пользовательский интерфейс. Популярные окружения рабочего стола включают GNOME , KDE Plasma и Xfce . Стандартное окружение UNIX 98 — Common Desktop Environment (CDE). Инициатива freedesktop.org направлена на обеспечение взаимодействия между рабочими столами и компонентами, необходимыми для конкурентоспособного рабочего стола X.
Реализация X.Org является канонической реализацией X. Благодаря либеральному лицензированию появилось множество вариаций, как бесплатных, так и с открытым исходным кодом и проприетарных. Коммерческие поставщики Unix имели тенденцию брать эталонную реализацию и адаптировать ее для своего оборудования, обычно настраивая ее и добавляя проприетарные расширения.
До 2004 года XFree86 предоставлял наиболее распространенный вариант X на свободных Unix-подобных системах. XFree86 начинался как порт X на 386-совместимые ПК и к концу 1990-х годов стал крупнейшим источником технических инноваций в X и фактическим стандартом разработки X. Однако с 2004 года X.Org Server, ответвление XFree86, стало доминирующим.
Хотя X принято ассоциировать с Unix, серверы X также существуют изначально в других графических средах. Операционная система OpenVMS компании VMS Software Inc. включает версию X с Common Desktop Environment (CDE), известную как DECwindows, в качестве стандартной среды рабочего стола. Apple изначально портировала X на macOS в виде X11.app, но она была устарела в пользу реализации XQuartz . Сторонние серверы под управлением старых операционных систем Apple в 1990-х годах, System 7 и Mac OS 8 и 9, включали MacX компании Apple и eXodus компании White Pine Software.
Microsoft Windows не поставляется с поддержкой X, но существует множество сторонних реализаций, таких как бесплатное программное обеспечение с открытым исходным кодом, такое как Cygwin/X , и проприетарные продукты, такие как Exceed, MKS X/Server, Reflection X, X-Win32 и Xming .
Существуют также реализации X-серверов на Java. WeirdX работает на любой платформе, поддерживающей Swing 1.1, и будет работать как апплет в большинстве браузеров. Android X Server — это реализация Java с открытым исходным кодом, которая работает на устройствах Android.
Когда операционная система с собственной оконной системой дополнительно размещает X, система X может либо использовать свой собственный обычный рабочий стол в отдельном окне хоста, либо может работать без прав root , то есть рабочий стол X скрыт, а среда окон хоста управляет геометрией и внешним видом размещенных окон X на экране хоста.
X -терминал — это тонкий клиент, который запускает только X-сервер. Эта архитектура стала популярной для построения недорогих терминальных парков, чтобы многие пользователи могли одновременно использовать один и тот же большой компьютерный сервер для выполнения прикладных программ в качестве клиентов X-терминала каждого пользователя. Такое использование во многом соответствует первоначальному замыслу проекта MIT.
X-терминалы исследуют сеть (локальный широковещательный домен ) с помощью протокола управления X Display Manager для создания списка доступных хостов, которые разрешены в качестве клиентов. Один из клиентских хостов должен запустить X display manager .
Ограничением X-терминалов и большинства тонких клиентов является то, что они не способны осуществлять какой-либо ввод или вывод, кроме клавиатуры, мыши и дисплея. Предполагается, что все соответствующие данные существуют исключительно на удаленном сервере, и пользователь X-терминала не имеет методов, доступных для сохранения или загрузки данных с локального периферийного устройства.
Выделенные (аппаратные) X-терминалы вышли из употребления; ПК или современный тонкий клиент с X-сервером обычно обеспечивают ту же функциональность по той же или более низкой цене.
В «Справочнике ненавистников Unix» (1994) целая глава посвящена проблемам X. [7] В книге «Почему X — не наша идеальная оконная система » (1990) Гаевской, Манассе и МакКормака подробно описаны проблемы в протоколе и даны рекомендации по их улучшению.
Отсутствие руководств по проектированию в X привело к появлению нескольких совершенно разных интерфейсов и приложений, которые не всегда хорошо работали вместе. Руководство по соглашениям о межклиентском взаимодействии (ICCCM), спецификация для взаимодействия клиентов, имеет репутацию сложной для правильной реализации. Дальнейшие усилия по стандартам, такие как Motif и CDE, не устранили проблемы. Это разочаровало пользователей и программистов. [8] Графические программисты теперь обычно решают вопросы согласованности внешнего вида и поведения приложений, а также связи, кодируя для определенной среды рабочего стола или для определенного набора инструментов виджетов, что также позволяет избежать необходимости иметь дело напрямую с ICCCM.
X также не имеет встроенной поддержки для пользовательских хранимых процедур на сервере X, как в NeWS – нет возможности создания скриптов Turing-complete . Различные среды рабочего стола могут, таким образом, предлагать свои собственные (обычно взаимно несовместимые) возможности.
Системы, построенные на основе X, могут иметь проблемы с доступностью , которые затрудняют использование компьютера для пользователей с ограниченными возможностями, включая щелчок правой кнопкой мыши , двойной щелчок , щелчок средней кнопкой мыши , наведение мыши и кражу фокуса . Некоторые клиенты X11 справляются с проблемами доступности лучше других, поэтому люди с проблемами доступности не лишены возможности использовать X11. Однако стандарта доступности или руководств по доступности для X11 не существует. В рамках процесса стандартов X11 нет рабочей группы по доступности; однако потребности в доступности решаются программными проектами для предоставления этих функций поверх X.
Проект Orca добавляет поддержку специальных возможностей в X Window System, включая реализацию API ( AT-SPI [9] ). Это связано с ATK GNOME , чтобы обеспечить реализацию функций специальных возможностей в программах X с использованием API GNOME/GTK. [10] KDE предоставляет другой набор программного обеспечения для специальных возможностей, включая конвертер текста в речь и экранную лупу. [11] Другие основные рабочие столы (LXDE, Xfce и Enlightenment) пытаются быть совместимыми с ATK.
X-клиент, как правило, не может быть отсоединен от одного сервера и повторно подключен к другому, если его код специально не предусматривает этого ( Emacs — одна из немногих распространенных программ с такой возможностью). Таким образом, перемещение всего сеанса с одного X-сервера на другой, как правило, невозможно. Однако такие подходы, как Virtual Network Computing (VNC), NX и Xpra, позволяют получить доступ к виртуальному сеансу с разных X-серверов (аналогично GNU Screen в отношении терминалов), а другие приложения и наборы инструментов предоставляют соответствующие возможности. [12] Также существуют обходные пути, такие как x11vnc ( VNC :0 viewers ), теневой режим Xpra и теневой режим nxagent NX, позволяющие сделать текущий экран X-сервера доступным. Эта возможность позволяет переключать пользовательский интерфейс (мышь, клавиатуру, монитор) работающего приложения из одного места в другое без остановки и перезапуска приложения.
Сетевой трафик между X-сервером и удаленными X-клиентами по умолчанию не шифруется. Злоумышленник с помощью анализатора пакетов может перехватить его, что позволит просматривать все, что отображается или отправляется с экрана пользователя. Наиболее распространенным способом шифрования X-трафика является установление туннеля Secure Shell (SSH) для связи.
Как и все тонкие клиенты , при использовании X в сети ограничения пропускной способности могут препятствовать использованию приложений с интенсивной обработкой битовых карт , которым требуется быстрое обновление больших участков экрана с малой задержкой, таких как 3D-анимация или редактирование фотографий. Даже относительно небольшой несжатый видеопоток 640×480×24 бит 30 кадров в секунду (~211 Мбит/с) может легко превзойти пропускную способность сети 100 Мбит/с для одного клиента. Напротив, современные версии X обычно имеют расширения, такие как Mesa, позволяющие оптимизировать локальное отображение графики локальной программы для обхода сетевой модели и прямого управления видеокартой для использования полноэкранного видео, визуализированных 3D-приложений и других подобных приложений.
Конструкция X требует, чтобы клиенты и сервер работали раздельно, а независимость устройств и разделение клиента и сервера влекут за собой накладные расходы. Большая часть накладных расходов возникает из-за задержки сетевого кругового обмена между клиентом и сервером ( задержка ), а не из-за самого протокола: лучшие решения проблем производительности зависят от эффективной разработки приложений. [13] Распространенная критика X заключается в том, что его сетевые функции приводят к чрезмерной сложности и снижению производительности, если используются только локально.
Современные реализации X используют сокеты домена Unix для эффективных соединений на одном хосте. Кроме того , для более быстрой клиент-серверной коммуникации может использоваться общая память (через расширение MIT-SHM ). [14] Однако программист все равно должен явно активировать и использовать расширение общей памяти. Также необходимо предоставить резервные пути для сохранения совместимости со старыми реализациями и для коммуникации с нелокальными X-серверами.
Некоторые люди пытались написать альтернативы и замены для X. Исторические альтернативы включают NeWS от Sun и Display PostScript от NeXT , обе основанные на PostScript системы, поддерживающие определяемые пользователем процедуры на стороне дисплея, которых не хватало в X. Текущие альтернативы включают:
Дополнительные способы достижения функциональной формы функции «сетевой прозрачности» X посредством сетевой передаваемости графических сервисов включают в себя:
X предшествовало несколько систем отображения растровых изображений. Xerox выпустила Alto (1973) и Star (1981). Apollo Computer выпустила Display Manager (1981). Apple выпустила Lisa (1983) и Macintosh (1984). В мире Unix появились Andrew Project (1982) и терминал Blit Роба Пайка (1982).
Университет Карнеги — Меллона разработал приложение удаленного доступа под названием Alto Terminal, которое отображало перекрывающиеся окна на Xerox Alto и возлагало на удаленные хосты (обычно системы DEC VAX под управлением Unix) ответственность за обработку событий экспозиции окон и обновление их содержимого по мере необходимости.
X получила свое название как преемница оконной системы W (буква, предшествующая X в английском алфавите ), существовавшей до 1983 года. W работала под управлением операционной системы V. W использовала сетевой протокол, поддерживающий терминальные и графические окна, а сервер поддерживал списки отображения.
От: rws@mit-bold (Роберт В. Шейфлер) Кому: window@athena Тема: оконная система X Дата: 19 июня 1984 г. 09:07 по восточноевропейскому времени (вторник) Последние пару недель я провел за написанием окнасистема для VS100. Я украл изрядное количество кодаиз W, окружил его асинхронным, а нечем синхронный интерфейс, и назвал его X. В целомпроизводительность, по-видимому, примерно в два раза выше, чем у W.На данный момент код кажется довольно надежным, хотя естьеще предстоит устранить некоторые недостатки.Мы в LCS перестали использовать W и теперьактивно строят приложения на X. Любой другой, использующийW следует серьезно задуматься о переходе. Это неконечная оконная система, но я считаю, что это хорошоОтправная точка для экспериментов. Прямо сейчасесть интерфейс CLU (и Argus) для X; CИнтерфейс находится в разработке. Три существующихприложения — текстовый редактор (TED), Argus I/Oинтерфейс и примитивный оконный менеджер. Естьпока нет документации; любой достаточно сумасшедший, чтобыДобровольно? Может, я когда-нибудь этим займусь.Любой желающий увидеть демо может зайтиNE43-531, хотя вы можете позвонить по номеру 3-1945Первый. Любой, кто хочет код, может прийти сЛента. Любой, кто заинтересован в хакерских недостатках, чувствуетсвяжитесь со мной бесплатно.
Электронное письмо, в котором X был представлен сообществу проекта Athena в Массачусетском технологическом институте в июне 1984 года [20]
Первоначальная идея X возникла в MIT в 1984 году как результат сотрудничества Джима Геттиса (из Project Athena ) и Боба Шейфлера (из Лаборатории компьютерных наук MIT ). Шейфлеру требовалась удобная среда отображения для отладки системы Argus. Project Athena (совместный проект DEC , MIT и IBM по предоставлению всем студентам легкого доступа к вычислительным ресурсам) требовалась платформенно-независимая графическая система для объединения своих разнородных систем от разных поставщиков; оконная система, которая тогда разрабатывалась в рамках проекта Andrew в Университете Карнеги-Меллона , не предоставляла лицензий, а альтернатив не существовало.
Проект решил эту проблему, создав протокол, который мог как запускать локальные приложения, так и вызывать удаленные ресурсы. В середине 1983 года начальный порт W на Unix работал на одной пятой скорости под V; в мае 1984 года Шейфлер заменил синхронный протокол W на асинхронный протокол, а списки отображения — на графику непосредственного режима, чтобы создать X версии 1. X стала первой средой оконной системы, которая предлагала настоящую независимость от оборудования и поставщика.
Шейфлер, Геттис и Рон Ньюман взялись за работу, и X быстро прогрессировал. Они выпустили версию 6 в январе 1985 года. DEC, тогда готовившаяся к выпуску своей первой рабочей станции Ultrix , посчитала X единственной оконной системой, которая, вероятно, станет доступной в то время. Инженеры DEC портировали X6 на дисплей QVSS от DEC на MicroVAX .
Во втором квартале 1985 года X получила поддержку цвета для работы в DEC VAXstation -II/GPX, что и стало версией 9.
Группа из Университета Брауна перенесла версию 9 на IBM RT PC , но проблемы с чтением невыровненных данных на RT вынудили изменить несовместимый протокол, что привело к выпуску версии 10 в конце 1985 года. X10R1 был выпущен в 1985 году. [21] К 1986 году внешние организации начали запрашивать X. X10R2 был выпущен в январе 1986 года, затем X10R3 в феврале 1986 года. Хотя MIT лицензировал X6 некоторым внешним группам за плату, в это время он решил лицензировать X10R3 и будущие версии в соответствии с тем, что стало известно как Лицензия MIT , намереваясь популяризировать X дальше и, взамен, надеясь, что станет доступно гораздо больше приложений. X10R3 стала первой версией, получившей широкое распространение, и как DEC, так и Hewlett-Packard выпустили продукты на ее основе. Другие группы перенесли X10 на Apollo и рабочие станции Sun и даже на IBM PC/AT . Демонстрации первого коммерческого приложения для X (механической компьютерной инженерной системы от Cognition Inc., работавшей на VAX и удаленно отображавшейся на ПК, на которых работал X-сервер, портированный Джимом Фултоном и Яном Харденбергом) состоялись на выставке Autofact в то время. Последняя версия X10, X10R4, появилась в декабре 1986 года. Были предприняты попытки сделать X-серверы устройствами для совместной работы в реальном времени, подобно тому, как Virtual Network Computing (VNC) позже позволила совместно использовать рабочий стол. Одной из таких ранних попыток был инструмент SharedX Филиппа Дж. Гаста .
Хотя X10 предлагал интересную и мощную функциональность, стало очевидно, что протокол X может использовать более аппаратно-нейтральную переделку, прежде чем он станет слишком широко распространенным, но только MIT не имел бы ресурсов, доступных для такой полной переделки. Так случилось, что Western Software Laboratory DEC оказалась между проектами с опытной командой. Смоки Уоллес из DEC WSL и Джим Геттис предложили, чтобы DEC WSL построила X11 и сделала его свободно доступным на тех же условиях, что и X9 и X10. Этот процесс начался в мае 1986 года, а протокол был завершен в августе. Альфа-тестирование программного обеспечения началось в феврале 1987 года, бета-тестирование — в мае; релиз X11 наконец состоялся 15 сентября 1987 года. [22]
Проект протокола X11, возглавляемый Шейфлером, широко обсуждался в открытых списках рассылки в зарождающемся Интернете, которые были связаны с группами новостей USENET. Геттис переехал в Калифорнию, чтобы помочь возглавить разработку X11 в WSL из Центра системных исследований DEC, где Фил Карлтон и Сьюзан Ангебрандт руководили проектированием и реализацией сервера-образца X11. Таким образом, X представляет собой один из первых очень крупномасштабных проектов распределенного свободного и открытого программного обеспечения .
К концу 1980-х годов X был, как писал Симсон Гарфинкель в 1989 году, «самым важным достижением Athena на сегодняшний день». Сообщается, что DEC считала, что его разработка сама по себе сделала пожертвование компании MIT стоящим. Геттис присоединился к команде разработчиков VAXstation 2000, чтобы гарантировать, что X — который DEC называла DECwindows — будет работать на нем, и компания назначила 1200 сотрудников для портирования X как на Ultrix, так и на VMS. [23] [24] В 1987 году, когда успех X11 стал очевиден, MIT пожелал отказаться от руководства X, но на встрече с девятью поставщиками в июне 1987 года поставщики сообщили MIT, что они верят в необходимость нейтральной стороны, чтобы предотвратить фрагментацию X на рынке. В январе 1988 года был создан Консорциум X MIT как некоммерческая группа поставщиков, директором которой стал Шейфлер. Целью Консорциума было управление будущим развитием X в нейтральной атмосфере с учетом коммерческих и образовательных интересов.
Джим Фултон присоединился в январе 1988 года, а Кит Паккард в марте 1988 года в качестве старших разработчиков , причем Джим сосредоточился на Xlib , шрифтах , оконных менеджерах и утилитах; а Кит повторно реализовал сервер. Донна Конверс, Крис Д. Петерсон и Стивен Джилдеа присоединились позже в том же году, сосредоточившись на наборах инструментов и виджетов, тесно сотрудничая с Ральфом Свиком из MIT Project Athena. Консорциум MIT X выпустил несколько значительных изменений в X11, первое (Release 2 – X11R2) в феврале 1988 года. Джей Херш присоединился к команде в январе 1991 года для работы над функциональностью PEX и X113D. Вскоре за ним последовали Ральф Мор (который также работал над PEX) и Дэйв Стернлихт. В 1993 году, когда Консорциум MIT X готовился к отделению от MIT, к его сотрудникам присоединились Р. Гэри Катбилл, Калеб Кейтли и Дэвид Уиггинс. [25]
В 1993 году была образована некоммерческая корпорация X Consortium, Inc., которая стала преемницей X Consortium MIT. Она выпустила X11R6 16 мая 1994 года. В 1995 году она занялась разработкой инструментария Motif и Common Desktop Environment для систем Unix. X Consortium распался в конце 1996 года, выпустив финальную версию X11R6.3 и оставив после себя растущее коммерческое влияние на разработку. [26] [27]
В январе 1997 года X Consortium передал управление X The Open Group — группе поставщиков, образованной в начале 1996 года в результате слияния Open Software Foundation и X/Open .
Open Group выпустила X11R6.4 в начале 1998 года. X11R6.4, как ни странно, отошла от традиционных либеральных условий лицензирования, поскольку Open Group стремилась обеспечить финансирование разработки X и, в частности, ссылалась на XFree86 как на не вносящую существенного вклада в X. [28] Новые условия сделали бы X больше не свободным программным обеспечением : нулевая стоимость для некоммерческого использования, но платная в противном случае. После того, как XFree86, казалось, готов был разделиться , [29] Open Group повторно лицензировала X11R6.4 по традиционной лицензии в сентябре 1998 года. [30] Последний релиз Open Group вышел как X11R6.4 patch 3.
XFree86 возник в 1992 году из сервера X386 для IBM PC-совместимых компьютеров, включенного в X11R5 в 1991 году, написанного Томасом Роэллом и Марком В. Снитили и переданного в дар MIT X Consortium компанией Snitily Graphics Consulting Services (SGCS). Со временем XFree86 превратился из простого порта X в ведущую и самую популярную реализацию и фактический стандарт разработки X. [31]
В мае 1999 года The Open Group сформировала X.Org. X.Org контролировала выпуск версий X11R6.5.1 и далее. Разработка X в это время зашла в тупик; [32] большинство технических инноваций с момента распада X Consortium были реализованы в проекте XFree86. [33] В 1999 году команда XFree86 присоединилась к X.Org в качестве почетного (неоплачиваемого) члена, [34] поощренная различными компаниями-производителями оборудования [35] [ проверка не удалась ], заинтересованными в использовании XFree86 с Linux и в его статусе самой популярной версии X.
К 2003 году, в то время как популярность Linux (и, следовательно, установленная база X) росла, X.Org оставался неактивным, [36] и активная разработка велась в основном в XFree86. Однако внутри XFree86 возникло значительное разногласие. Проект XFree86 страдал от восприятия слишком соборной модели разработки; разработчики не могли получить доступ к коммитам CVS [37] [38] , а поставщикам приходилось поддерживать обширные наборы патчей . [39] В марте 2003 года организация XFree86 исключила Кейта Паккарда, который присоединился к XFree86 после окончания первоначального MIT X Consortium, с серьезными неприязненными чувствами. [40] [41] [42]
X.Org и XFree86 начали обсуждать реорганизацию, подходящую для надлежащего развития X. [43] [44] [45] Джим Геттис активно продвигал модель открытой разработки по крайней мере с 2000 года. [46] Геттис, Паккард и несколько других начали подробно обсуждать требования к эффективному управлению X с открытой разработкой.
Наконец, в ответ на спор о лицензировании X11R6.4, XFree86 выпустила версию 4.4 в феврале 2004 года под более ограничительной лицензией, которую многие проекты, полагающиеся на X, сочли неприемлемой. [47] Добавленный пункт к лицензии был основан на рекламном пункте оригинальной лицензии BSD , который Free Software Foundation и Debian считали несовместимым с GNU General Public License . [48] Другие группы посчитали это противоречащим духу оригинальной X. Например, Тео де Раадт из OpenBSD пригрозил создать ответвление XFree86, ссылаясь на проблемы с лицензией. [49] Проблема с лицензией в сочетании с трудностями внесения изменений заставила многих почувствовать, что пришло время для ответвления. [50]
В начале 2004 года несколько человек из X.Org и freedesktop.org сформировали X.Org Foundation , а Open Group передала ему контроль над x.org
доменным именем . Это ознаменовало собой радикальное изменение в управлении X. В то время как управляющими X с 1988 года (включая предыдущую X.Org) были организации-поставщики, Foundation возглавляли разработчики программного обеспечения, и он использовал разработку сообщества на основе модели базара , [ требуется ссылка ], которая опирается на внешнее участие. Членство было открыто для физических лиц, а корпоративное членство было в форме спонсорства. Несколько крупных корпораций, таких как Hewlett-Packard, в настоящее время [ временные рамки? ] поддерживают X.Org Foundation.
Фонд берет на себя надзорную роль над разработкой X: технические решения принимаются по существу путем достижения приблизительного консенсуса среди членов сообщества. Технические решения не принимаются советом директоров; в этом смысле он строго смоделирован по образцу технически невмешательского GNOME Foundation . Фонд не нанимает разработчиков. Фонд выпустил X11R6.7, X.Org Server , в апреле 2004 года на основе XFree86 4.4RC2 с объединенными изменениями X11R6.6. Gettys и Packard взяли последнюю версию XFree86 по старой лицензии и, сделав акцент на открытой модели разработки и сохранив совместимость с GPL, привлекли многих старых разработчиков XFree86. [48]
Хотя X11 получил расширения, такие как поддержка OpenGL в 1990-х годах, его архитектура оставалась принципиально неизменной в течение десятилетия. Однако в начале 2000-х годов он был переработан для решения ряда проблем, которые всплыли за эти годы, включая «несовершенную» архитектуру шрифтов , систему 2D-графики, «которая всегда была предназначена для дополнения и/или замены», и проблемы с задержкой . [51] X11R6.8 вышел в сентябре 2004 года. Он добавил значительные новые функции, включая предварительную поддержку полупрозрачных окон и других сложных визуальных эффектов, экранных луп и миниатюризаторов, а также возможности интеграции с системами отображения 3D-иммерсивных изображений, такими как Project Looking Glass компании Sun и проект Croquet . Внешние приложения, называемые менеджерами окон композитинга, предоставляют политику для визуального представления.
21 декабря 2005 года [52] X.Org выпустила X11R6.9, монолитное дерево исходного кода для устаревших пользователей, и X11R7.0, тот же исходный код, разделенный на независимые модули, каждый из которых может поддерживаться в отдельных проектах. [53] Фонд выпустил X11R7.1 22 мая 2006 года, примерно через четыре месяца после 7.0, со значительными улучшениями функций. [54]
Разработка XFree86 продолжалась ещё несколько лет, и 15 декабря 2008 года была выпущена версия 4.8.0. [55]
Правильные названия системы указаны на странице руководства как X; X Window System; X Version 11; X Window System, Version 11; или X11. [56]
Термин «X-Windows» (в духе впоследствии выпущенного «Microsoft Windows») официально не одобрен – менеджер по выпуску X Consortium Мэтт Ландау заявил в 1993 году: «Не существует такого понятия, как „X Windows“ или „X Window“, несмотря на неоднократное неправильное использование этих форм в торговых газетенках» [57] – хотя он был в общем неофициальном употреблении с самого начала истории X [58] и использовался намеренно для провокационного эффекта, например, в « Справочнике ненавистников Unix» [7] .
В системе X Window есть нюансы использования ряда терминов по сравнению с общепринятым использованием, в частности, «дисплей» и «экран», подмножество которых приведено здесь для удобства:
Термин «дисплей» не следует путать с более специализированным жаргоном « дисплей Зафода ». Последний представляет собой редкую конфигурацию, позволяющую нескольким пользователям одного компьютера иметь независимый набор из дисплея, мыши и клавиатуры, как если бы они использовали отдельные компьютеры, но по более низкой стоимости за одно рабочее место.
О перспективах будущих версий на сайте X.org говорится следующее: [76]
X.Org продолжает разрабатывать и выпускать программные компоненты X Window System.
Они выпускаются по отдельности по мере готовности каждого компонента, не дожидаясь общего графика выпуска «katamari» X Window System — для загрузки см. каталог отдельных релизов X.Org, а также архивы xorg-announce или репозитории git для получения подробной информации о включенных изменениях.
План выпуска накопительного пакета X11R7.8 Katamari пока не предложен.
Распорядители X действительно скатились почти до нуля примерно пять или шесть лет назад. Это не поспевало за технологиями.