X Window System

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

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

В X Window System предусмотрена сетевая прозрачность: графические приложения могут выполняться на другой машине в сети, интерфейс при этом будет передаваться через сеть и отображаться на локальной машине пользователя. В X Window System сроки "Клиент" и "сервер" имеют необычное многим значение: ?сервер? означает локальный дисплей пользователя (дисплейный сервер), а "клиент" - программу, которая этот дисплей использует (она может выполняться на удаленном компьютере).

Система X Window System была разработана в МТИ (MIT) в 1984 году. Нынешняя (на июнь 2006 г.) версия протокола - X11 - появилась в сентябре 1987 г. Проект X возглавляет фонд X.Org Foundation. Примерная реализация ( англ. reference implementation ) Системы свободно доступна на условии лицензии MIT и подобных ей лицензий [1].

X Window System часто называют X11 или X, неформально "икса".


1. Клиент-серверная модель и сетевая прозрачность

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

X Window System использует клиент-серверную модель взаимодействия: X-сервер обменивается сообщениями с различными клиентскими программами. Сервер принимает запросы вывод графики (окон) и отправляет обратно ввода пользователя (с клавиатуры, мыши или сенсорного экрана). X-сервер может быть:

Эта клиент-серверная терминология - терминал как "Сервер" и удаленные приложения как "Клиенты" - чаще запутывает новых пользователей X, так как обычно эти термины имеют обратные значения. Но X Window System принимает точку зрения программы, а не конечного пользователя: локальный дисплей предоставляет услуги отображения графики программам, и выступает в качестве сервера. Удаленные приложения пользуются этими услугами, а потому играют роли клиентов.

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

Чтобы запустить удаленную клиентскую программу, выводящую графику на локальный X-сервер, пользователь обычно открывает эмулятор терминала и подключается к удаленной машины с помощью telnet или SSH. Затем он отдает команду, которая указывает дисплей, на который следует выводить графику (например export DISPLAY= [ім'я комп'ютера користувача] :0 при использовании bash). Наконец, пользователь запускает клиентское приложение. Она подключится к локальному X-серверу и будет отображать графику на локальный экран и принимать ввод от локальных устройств ввода. Другой вариант - использовать небольшую вспомогательную программу, которая подключается к удаленной машины и запускает на ней нужную клиентскую программу.

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

  • Графическое администрирования удаленной машины;
  • Выполнение интенсивных ресурсоемких вычислений на удаленной UNIX -машине и вывода результатов на локальной Windows -машине;
  • Выполнение графических программ одновременно на нескольких машинах, с одним дисплеем, одной клавиатурой и одной мышью.

2. Принципы построения X

В 1984 -м Боб Шейфлер и Джим Геттис зафиксировали ранние принципы построения X:

  • Добавляй новую функциональность только в том случае, если без нее нельзя завершить какое-то реальное приложение.
  • Решить, чем не есть система, столь же важно, насколько решить, чем она есть. Не пытайся удовлетворить все возможные потребности, вместо этого сделай систему расширяемой, чтобы новые потребности могли быть удовлетворены совместимым образом.
  • Хуже обобщение одного примера может быть только обобщение вообще без примеров.
  • Если проблема не поняла до конца, возможно, лучше не решать ее вовсе.
  • Если ты можешь добиться 90 процентов нужного эффекта, потратив всего 10 процентов сил, используй простое решение.
  • Наилучшее изолируй сложные места.
  • Обеспечиваем механизм, а не политику. В частности, политика интерфейса должно быть в руках клиентов.

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


3. Интерфейсы

KDE 4 в среде X Window System
GNOME 2.20 в среде X Window System
Графический интерфейс пользователя Xfce
Логотип X Window System в Mac OS X

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

Оконный менеджер управляет размещением и внешним видом окон приложений. Он может создавать интерфейс, подобный Microsoft Windows или Macintosh (например, так работают менеджеры окон Kwin в KDE и Metacity в GNOME), или совсем другой стиль (например, в фреймовых оконных менеджерах, таких, как Ion). Оконный менеджер может быть простым и минималистичным (как twm - базовый оконный менеджер, поставляемый с X), а может предлагать функциональность, близкую к полноценной рабочей среды (например, Enlightenment).

Многие пользователи используют X вместе с полным средой рабочего стола, которая включает в себя оконный менеджер, различные программы и единый стиль интерфейса. Самые среды рабочего стола - GNOME и KDE. В стандарте Single UNIX Specification указанное среду CDE. Проект freedesktop.org пытается обеспечить взаимодействие между различными средами, а также компоненты, необходимые для конкурентоспособного рабочего стола на основе X.


4. Реализации

Референсная (примерная) реализация ( англ. reference implementation ) От фонда X.Org Foundation, называемая X.Org Server, является канонической реализацией X Window System. Поскольку она распространяется на условиях достаточно либеральной лицензии, появились несколько ее разновидностей (как свободных, так и проприетарных). Коммерческие поставщики UNIX часто берут референсной реализации и адаптируют ее к собственному аппаратного обеспечения, обычно сильно модифицируя ее и добавляя проприетарные расширения.

Вплоть до 2004 -го проект XFree86 был распространенным вариантом X для свободных UNIX-подобных операционных систем. XFree86 возник как порт X на 386 -совместимые персональные компьютеры. До конца 1990-х этот проект стал главным источником технических инноваций в X Window System и де-факто руководил разработкой X. [2] Однако в 2004 году XFree86 изменила условия лицензии и реализация X.Org Server (которая Форком XFree86, но со свободной лицензией) стала распространенной.


Когда X Window System выполняется внутри другой оконной системы (например, оконной подсистемы Microsoft Windows или Mac OS), она обычно работает в режиме без корневого окна ( англ. rootless ). Это означает, что корневое окно (фон экрана и связанные с ним меню) управляется внешней оконной системой, а не собственно X Window System. При этом внешняя оконная система также управляет геометрией X-окон, создаваемых внутри нее. Однако некоторые серверы (например, Exceed, Xming или Cygwin / X) способны создавать и корневое окно - в этом случае клиенты отображаются в отдельном окне во внешней системе.


4.1. X-терминалы

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

X-терминалы могут изучать сеть (в пределах локального широковещательного домена) с использованием протокола XDMCP, составляя при этом список узлов сети, из которых они могут запускать клиенты. На начальном узле должен выполняться дисплейный менеджер X ( англ. X display manager ).

В настоящее время выделены (аппаратные) X-терминалы не пользуются широкой популярностью: обычно персональный компьютер с X-сервером обеспечивает ту же функциональность при меньшей стоимости.


5. Расширение

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

5.1. DDC

VESA Display Data Channel (DDC ?) - стандарт обмена информацией между монитором и графической платой, что позволяет монитору передавать данные о поддерживаемую разрешение, частоты развертки, производителя монитора и т. д. Модуль DDC поддерживает версии 1 и 2 спецификации DDC. Согласно полученных данных он устанавливает основные параметры экрана или предупреждает о несоответствии заданным пользователем параметров.


5.2. RANDR

X Resize, Rotate and Reflect Extension - расширение X-сервера, реализующего функции масштабирования, поворота и отображения корневого окна. Используется при изменении разрешения, при динамической замене монитора (например, при переключении со встроенного экрана ноутбуке на внешний монитор). Рассылает работающим приложениям предупреждения об изменении конфигурации экрана.

5.3. XRender

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

5.4. Shape

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

5.5. Xinerama

Расширение Xinerama позволяет представить несколько мониторов как один экран. С его помощью можно выводить согласованное изображение на большие экраны, составленные из многих мониторов. Однако многие из существующих в наше время оконных менеджеров не поддерживают, или не полностью поддерживают спецификации Xinerama, и поэтому показывают неадекватное изображения при использовании данного расширения.

5.6. Xv

X video extension - расширение, позволяющее ускорить выведение видеофрагментов на экран с использованием возможностей графической платы (а точнее - ее драйвера), уменьшая нагрузку на центральный процессор. Многие графических плат позволяют выводить видеоизображения в форматах кодирования цвета YUV (YUY2, I420 и т. д.), которые используются в стандартах систем аналогового цветного телевидение PAL, SECAM, NTSC, НЕ переводя их предварительно в формат цветопередачи экрана (RGB16/24/32), а также делать противоположное кодирования. Расширение Xv предоставляет информацию о доступных графические платы, количество доступных портов (каждый порт может использовать только одно приложение), поддерживаемых форматах кодирования цвета. Всю эту информацию можно просмотреть с помощью утилиты xvinfo.


6. Ограничения и критика X

В книге "The UNIX-HATERS Handbook" ( 1994) целая глава [3] посвящена проблемам X в конце 1980-х - начале 1990-х годов. Статья "Why X Is Not Our Ideal Window System" [4] ("Почему X не является идеальной оконной системой") ( 1990) подробно рассматривает проблемы протокола и дает рекомендации по улучшению.

6.1. Видеоаппаратура

Сегодня предел производительности графических компьютерных систем лежит в области передовых графических функций. Производители аппаратного обеспечения, как правило, реализуют эти возможности в проприетарных драйверах, причем эти драйверы обычно пишутся в первую очередь для систем Microsoft Windows (как для самих распространенных на рынке). Драйверы многих старых графических плат подверглись обратной разработке в рамках проектов XFree86 и X.Org. Однако некоторые производители рассматривают свои разработки в области высокопроизводительного видео как коммерческую тайну, или как патентованные изобретения, которые не хотят раскрывать.

Многие нынешние реализации X управляют видеоаппаратурой направления. Неустойчивый X-сервер может сделать дисплей непригодным к использованию даже в тех случаях, когда сама операционная система продолжает нормально функционировать. При этом может потребоваться перезагрузка всей системы. Технология Direct Rendering Infrastructure (DRI) призвана устранить эту проблему.


6.2. Функции интерфейса

X Window System намеренно не включает в себя спецификации интерфейса, так же как и большей части Межпрограммные взаимодействия. Благодаря этому возникли разнообразные интерфейсы, а также приложения, не всегда правильно работают друг с другом. Существует спецификация взаимодействия клиентов ICCCM, но она известна как тяжела для правильной реализации. Дальнейшие попытки стандартизации - такие, как инструментарий Motif и среда CDE - не исправили положения. Все это мешает как пользователям, так и программистам. [5] В настоящее время [ Когда? ] разработчики обычно добиваются единого стиля в приложениях, ориентируясь на одно конкретное среда рабочего стола или на конкретный инструментарий. Это также позволяет избежать непосредственной работы с ICCCM.

Протокол X не предоставляет никаких средств для работы со звуком. Поддержка звуковой аппаратуры и воспроизведения звуков возлагается на операционную систему. Поскольку пользователям все чаще необходим звук, эта ситуация привела к появлению различных несовместимых друг с другом звуковых подсистем. В прошлом многие программисты игнорировали сетевые проблемы, и просто использовали локальные звуковые API операционной системы. Первое поколение клиент-серверных звуковых систем включает в себя rplay и Network Audio System. Более современные системы - PulseAudio, esound в GNOME и aRts в KDE. Также начата разработка новой системы - Media Application Server.

До недавнего времени X Window System не включала в себя хорошего решения для печати содержимого дисплеев. Многие X-клиентов печатаются в формате PostScript независимо от X-сервера. Механизм Xprint впервые появился в X11R6.3, его клиентская часть работала хорошо, в отличие от многих серверных реализаций. Версии X11R6.8 и выше функционируют нормально [6] и набирают популярность в инструментарии элементов интерфейса.


6.3. Сеть

По состоянию на июнь 2006 -го в X Window System нет возможности отключить X-клиент или сеанс от одного сервера и подключить его к другому серверу (как в VNC). Работа над добавлением этой функции в X уже ведется. Существуют обходные механизмы (просмотра VNC: 0), которые делают экран текущего X-сервера доступным через VNC. Или можно использовать подключение X-клиенту в проксуючого X-сервера (xpra, guievict, xmove, lbxproxy).

Пример туннелирования программы X11 этаж SSH

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

Независимость от аппаратуры и отделения клиентов от серверов влияет на производительность системы. Сетевая прозрачность X требует, чтобы клиенты и сервер работали отдельно друг от друга. В прошлом это существенно снижало производительность отдельно системы - по сравнению с Microsoft Windows и Mac OS, где оконная подсистема встроенная глубоко в саму операционную систему. Для нормальной работы X Window System рекомендовалось от 4 до 8 Мб оперативной памяти - значительно больше (по тем временам), чем для Windows или Mac OS.

Текущие версии Windows и Mac OS X имеют внутреннее деление графической подсистемы, похоже на клиент-серверное разделение в X, и имеют примерно те ​​же требования к ресурсам, X с KDE или GNOME. Большая часть накладных расходов в X теперь приходится на задержку при передаче данных по сети между клиентом и сервером. Существует распространенный миф, согласно которому при локальном использовании X Window System ее сетевые возможности (ненужные в данном случае) отрицательно сказываются на производительности. На самом деле современные реализации X используют в таком случае локальные сокеты и общую память (например MIT-SHM), требуя очень незначительных накладных расходов.


7. Конкуренты X

В UNIX-подобных операционных системах для вывода графики почти всегда используется X Window System. Тем не менее, история знает несколько попыток создания альтернативы или замены X. Среди них: NeWS компании Sun Microsystems, не завоевала популярность на рынке, и Display PostScript компании NeXT, которая впоследствии превратилась в Apple Aqua для Mac OS X.

Проводились и попытки решить проблемы X путем полной ее замены; в том числе - проекты Berlin / Fresco и Y Window System. Однако эти проекты не получили практически никакого распространения.

Другие конкуренты пытаются избежать накладных расходов, возникающих в X, путем работы непосредственно с аппаратным обеспечением. Примерами таких проектов является DirectFB и очень маленький FBUI. Механизм Direct Rendering Infrastructure (попытка создать надежный ядерный интерфейс к видеобуферу) может сделать эти проекты нужны.

Есть и другие способы добиться сетевой прозрачности графических служб:

  • VNC ( англ. Virtual Network Computing ) - Очень низкоуровневый система, пересылает сжатые растровые изображения по сети. Реализация для UNIX включает в себя X-сервер.
  • Citrix MetaFrame - подобный X изделие Microsoft Windows.
  • Tarantella, Inc. - Компания, которая поставляет Java -клиент для использования в веб-браузерах.
  • Технология NX NoMachine - узкополосный протокол для удаленных дисплеев.
  • SVG Terminal [7] - протокол для обновления SVG -содержимого в браузере почти в реальном времени.

8. История

8.1. Предшественники

До появления X существовало несколько растровых дисплейных систем. С Xerox пришли Alto ( 1973) и Star ( 1981). В Apple были разработаны Lisa ( 1983) и Macintosh ( 1984). В мире UNIX существовали терминал Blit Роба Пайка ( 1984) и проект Andrew ( 1982).

X получила свое имя как наследница оконной системы W Window System (в латинском алфавите буква X следует сразу за буквой W). Система W работала под управлением операционной системы V. W использовала сетевой протокол с поддержкой терминальных и графических окон, при этом сервер поддерживал списки дисплеев.


8.2. Истоки и ранние разработки

Первоначальная идея X Window System возникла в МТИ (MIT) в 1984 в в результате сотрудничества Джима Геттиса (из проекта Athena) и Боба Шейфлера (из лаборатории информатики MIT). Шейфлеру было необходимо пригодно к использованию дисплейное среду для отладки системы Argus. Проект Athena (совместный проект DEC, MIT и IBM по предоставлению доступ к компьютерам для студентов) нуждался платформо-незалежног графического решения, чтобы соединить воедино свои гетерогенные системы, состоящие из продуктов разных поставщиков. В то время в рамках проекта Andrew в университете Карнеги-Меллон велась работа над оконной системой, но для нее не были доступны лицензии, а альтернатив не было.

Проект решил эти проблемы путем создания протокола, который поддерживал как локальные программы, так и вызов удаленных программ. В середине 1983 -го начальный порт W на UNIX работал в пять раз медленнее, чем в системе V. В мае 1984 года Шейфлер заменил синхронный протокол на асинхронный, а списки дисплеев - на непосредственное вывода графики. Таким образом получилась X Window System версии 1.x, одна из первых оконных систем, обеспечивающих независимость от аппаратного обеспечения.

Шейфлер, Геттис и Рон Ньюмен приступили к работе; X стала быстро развиваться. В январе 1985 -го года была выпущена версия 6. Компания DEC, которая в то время готовилась к выпуску своего первого рабочей станции Ultrix, решила, что X - единственная оконная система, которая может быть завершена к нужному сроку. Инженеры DEC портировать X6 на дисплей QVSS на MicroVAX.

Во втором квартале 1985 года в X была реализована поддержка цветов для работы под DEC VAXstation-II/GPX. Эта версия стала известна как версия 9. Ранее MIT лицензировал X6 некоторым сторонним группам за плату. Однако теперь было решено распространять X9 и будущие версии свободно - на условиях, которые получили название лицензии MIT. X9 появилась в сентябре 1985 года.

Группа из Браунского университета портировали версию 9 на IBM RT / PC, но проблемы при чтении неупорядоченных данных на RT привели к несовместимым изменений в протоколе, в результате чего в конце 1985 была выпущена версия 10. К 1986 -го с внешних организаций начали поступать запросы на использование X. Выпуск X10R2 состоялся в январе 1986 года, X10R3 - в феврале. X10R3 стала первой версии, которая получила широкое распространение; DEC и Hewlett-Packard выпускали основанные на ней продукты. Другие группы портировать X10 на Apollo и на рабочие станции Sun, и даже на IBM PC AT. В то же время на выставке Autofact были проведены демонстрации первого коммерческого приложения на основе X - инженерной системы, работающей на VAX и отображалась на персональных компьютерах с X-сервером. Последняя версия X10 - X10R4 - появилась в декабре 1986 года.

Хотя X10 обладала интересной и мощной функциональностью, стало очевидно, что протокол X желательно сделать менее зависимым от аппаратуры до того, как X Window System станет слишком широко распространенной. Однако MIT одиночку не справился бы со столь крупными изменениями в протоколе. Смоук Уоллес из лаборатории DEC WSL и Джим Геттис предложили DEC WSL заняться разработкой X11 и сделать ее свободно распространяется на тех же условиях, что X9 и X10. Этот процесс начался в мае 1986 года, протокол был готов в августе. Альфа-тестирование программного обеспечения началось в феврале 1987 -го; бета-тестирование - в мае. Наконец, 15 сентября 1987 X11 была официально выпущена.

Дизайн протокола X11, которым руководил Шейфлер, широко обсуждался в открытых списках рассылки раннего Интернет. Таким образом, X можно считать одним из первых крупномасштабных проектов по созданию Свободного.


8.3. Консорциум X MIT и X Consortium, Inc.

DECwindows CDE в OpenVMS 7.3-1

В 1987 -м, когда успех X11 стал очевидным, MIT пожелал отказаться от дальнейшего управления проектом X. Однако на собрании девяти поставщиков, состоявшемся в июне 1987 года, поставщики сообщили MIT, которая необходима нейтральная сторона, которая предотвратила распад X на рынке. В январе 1988 -го была сформирована некоммерческая группа под названием Consortium X MIT ( англ. MIT X Consortium ). Ее целью было управление дальнейшей разработкой X в нейтральной атмосфере, с учетом как коммерческих, так и образовательных интересов. Директором Консорциума стал Шейфлер. Джим Фултон и Кейт Паккард присоединились в качестве старших разработчиков в январе и марте 1988 года соответственно. При этом Джим работал в основном над Xlib, шрифтами, оконными менеджерами и утилитами, а Кейт занимался переработкой сервера. Донна Конверс и Крис Петерсон присоединились позже в том же году, их усилия были сосредоточены в области инструментариев и наборов элементов интерфейса, они работали в тесной связи с Ральфом СВиК из проекта Athena института MIT. Консорциум X MIT выпустил несколько существенных обновлений X11. Первое из них (X11R2) вышло в феврале 1988 года.

В 1993 году был сформирован преемник Consortium X MIT - некоммерческая корпорация X Consortium, Inc. Под ее руководством 16 мая 1994 года была выпущена версия X11R6. В 1995 году корпорация взяла на себя управление разработкой инструментария Motif и среды CDE для UNIX -систем. X Consortium распалась в конце 1996 -го, выпустив последнюю версию, X11R6.3, и оставив после себя растущий коммерческий влияние в разработке. [8] [9]


8.4. The Open Group

В середине 1997 года X Consortium передал руководство проектом X организации The Open Group, образованной в 1996 -м в результате слияния Open Software Foundation и X / Open.

The Open Group выпустила X11R6.4 в начале 1998 года. В этой версии было решено отказаться от традиционной либеральной лицензии, поскольку The Open Group желала обеспечить финансовую поддержку разработки X. [10] Новые условия не позволяли многим проектам (например, XFree86) и даже некоторым коммерческим поставщикам принять эту версию. После угроз сделать форк со стороны XFree86. [11] The Open Group изменила условия распространения X11R6.4 обратно на традиционную лицензию в сентябре 1998 года. [12] последнее выпуском под руководством The Open Group стал X11R6.4 patch 3.


8.5. X. Org и XFree86

Проект XFree86 возник в 1992 году с сервера X386 для IBM PC -совместимых компьютеров. X386 был написан Томасом Роеллом и Марком Снится, пожертвованный Консорциума X MIT компанией Snitily Graphics Consulting Services (SGCS) и включен в состав X11R5 в 1991 году. Со временем XFree86 превратился из просто отдельно взятого порта X в ведущую и популярную реализацию системы, и стал де-факто руководить разработкой X. [13]

В мае 1999 года The Open Group учредила X.Org. X. Org контролировала выпуск версий X11R6.5.1 и выше. В это время разработка X практически остановилась [14], технические инновации происходили в основном в рамках проекта XFree86. [15] В 1999 году команда XFree86 вошла в состав X. Org в качестве почетного члена [16], чему способствовали различные компании-производители аппаратного обеспечения [17], заинтересованные в использовании XFree86 вместе с GNU / Linux и в его статусе как популярной версии X.

Вплоть до 2003 года, пока популярность GNU / Linux (и, как следствие, распространенность X) росла, X. Org бездействовала [18], и основная разработка проходила в XFree86. Проект XFree86 страдал от слишком закрытой модели разработки: программисты не могли получить доступ на запись в CVS -репозиторий, и поставщикам приходилось поддерживать большие наборы патчей. [19] В марте 2003 года организация XFree86 исключила Кейта Паккарда, который присоединился к XFree86 после распада Консорциума X MIT; сделано это было в весьма недружественный обстановке. [20] [21] [22]

X. Org и XFree86 начали обсуждать реорганизацию, чтобы обеспечить полноценную разработку X. [23] [24] [25] Джим Геттис настаивал на переходе к открытой модели разработки по крайней мере с 2000 года. [9] Геттис, Паккард и другие начали подробно обсуждать изменения, нужно внести для перехода к эффективной открытой разработки X.

Наконец, в феврале 2004 года проект XFree86 выпустил версию 4.4 под ограниченным лицензии : у нее был добавлен пункт, аналогичный рекламном пункта ( англ. advertising clause ) Оригинальной лицензии BSD. Многие проекты, которые возлагались на X, считают такую ​​лицензию неприемлемой. FSF и Debian признали добавлен пункт несовместимым с условиями GNU GPL. [26] Другие группы (например, OpenBSD) считали, что наложение дополнительных лицензионных ограничений противоречит "изначальному духу" X. Через эти лицензионные проблемы, на фоне закрытости XFree86 сложилась соответствующая атмосфера для создания Форке.


8.6. X.Org Foundation

В начале 2004 а представители X.Org и freedesktop.org основали фонд X.Org Foundation. The Open Group передала ему управление доменным именем x.org. Это стало коренным изменением в разработке X. В то время как распорядители X с 1988 года (включая предварительную X. Org) были организациями поставщиков, X. Org Foundation был основан самими разработчиками программного обеспечения, и в нем использовалась открытая модель разработки, опирается на вклад извне. Было открыто членство для частных лиц, а корпоративное членство представлено в виде спонсорства. В настоящее время [ Когда? ] фонд X. Org Foundation поддерживается несколькими крупными корпорациями, такими, как Hewlett-Packard и Sun Microsystems.

Фонд выпустил X11R6.7 - X.Org Server - в апреле 2004 года. Эта версия была основана на XFree86 4.4RC2 (последней версии XFree86, выпущенной под старой лицензии), с добавленными изменениями X11R6.6. Благодаря внедрению открытой модели разработки и сохранению совместимости с GNU GPL проект привлек многих бывших разработчиков XFree86. [26]

X11R6.8 вышла в сентябре 2004 года. К ней были включены значительные новшества, в том числе предварительная поддержка прозрачных окон и других сложных визуальных эффектов, экранных луп и миниатюр, а также средства для интеграции с трехмерными дисплейными системами (такими, как проект Looking Glass от Sun и проект Croquet). Политику внешнего вида предоставляют сторонние приложения, называемые композитными менеджерами ( англ. composite managers ).


9. Дальнейшие разработки

Благодаря X.Org Foundation и freedesktop.org разработка X Window System снова ускорилась. Разработчики планируют выпускать текущие и будущие версии как готовые к использованию продукты, а не просто как основу для продуктов, создаваемых поставщиками.

21 декабря 2005 -го фонд выпустил [27] X11R6.9 - монолитное дерево исходного кода для устаревших систем, и X11R7.0 - тот же исходный код, разбитый на независимые модули, которые могут поддерживаться в рамках отдельных проектов. [28] Версия X11R7.1 была выпущена 22 мая 2006 года, примерно через четыре месяца после 7.0, и включает в себя существенные улучшения. [29]

Планируется, что в будущем X-сервер будет получать доступ к видеоаппаратуре исключительно с помощью OpenGL и Direct Rendering Infrastructure (DRI) на тех комбинациях аппаратного обеспечения и операционных систем, которые поддерживают такой доступ. Инфраструктура DRI впервые появилась в XFree86 версии 4.0 и стала стандартной в X11R6.7 или более поздней версии. [30] Многие операционные системы стали добавлять соответствующую поддержку в ядро. Работа в этой области продолжается.


10. Название

Компьютерные специалисты часто сокращают полное название "X Window System" в "X11", или просто "X". Термин "X Windows" (вроде "Microsoft Windows") официально осуждается и считается неверным, хотя широко используется с самого начала истории X, в том числе и специально для литературного эффекта (например, в книге "The UNIX-HATERS Handbook").

11. История выпусков

Версия Дата релиза Основные изменения
X1 Июнь 1984 Впервые используется название "X". Фундаментальные изменения, отличающие продукт от W.
X6 января 1985 Первая версия, лицензирована несколькими внешними компаниями.
X9 Сентябрь 1985 Поддержка цветов. Первый выпуск на условиях лицензии MIT.
X10 конец 1985 IBM RT / PC, AT (под управлением DOS) и другие.
X10R2 января 1986
X10R3 Февраль 1986 Первый выпуск за пределы MIT. uwm становится стандартным оконным менеджером.
X10R4 Декабрь 1986 Последняя версия X10.
X11 15 сентября 1987 Первый выпуск настоящего протокола.
X11R2 Февраль 1988 Первый выпуск под руководством Консорциума X MIT. [31]
X11R3 25 октября 1988 XDM.
X11R4 22 декабря 1989 XDMCP; twm становится стандартным оконным менеджером; улучшения в приложениях, расширение Shape, новые шрифты.
X11R5 5 сентября 1991 PEX; Xcms (управление цветом) сервер шрифтов X386, расширение Xvideo.
X11R6 16 мая 1994 ICCCM версии 2.0; Inter-Client Exchange; X Session Management, расширение X Synchronization, расширение X Image, расширение XTEST; X Input; X Big Requests; XC-MISC, изменения в XFree86.
X11R6.1 14 марта 1996 Расширение X Double Buffer, расширение X keyboard, расширение X Record.
X11R6.2
X11R6.3 (Broadway)
23 декабря 1996 Функциональность WWW; LBX. Последний выпуск под руководством X Consortium. X11R6.2 - это обозначение подмножества X11R6.3, в которой единственными отличиями от R6.1 является Xprint и реализация в Xlib вертикального письма и поддержки символов, заданных пользователями. [32]
X11R6.4 31 марта 1998 Xinerama. [33]
X11R6.5 Внутренний выпуск X.Org; не стал доступным широкой публике.
X11R6.5.1 20 августа 2000
X11R6.6 4 апреля 2001 Исправление багов, изменения в XFree86.
X11R6.7.0 6 апреля 2004 Первый выпуск от фонда X.Org Foundation, включающий XFree86 4.4RC2. Полный комплект для конечного пользователя. Удаление XIE, PEX и libxml2. [34]
X11R6.8.0 8 сентября 2004 Прозрачность окон; XDamage; Distributed Multihead X; XFixes; Composite; XEvIE.
X11R6.8.1 17 сентября 2004 Устранение уязвимости в libxpm.
X11R6.8.2 10 февраля 2005 Устранение багов, обновления драйверов.
X11R6.9
X11R7.0
21 декабря 2005 EXA, значительный рефакторинг кода. [35] Из одного набора исходных кодов получили модульную версию 7.0 и монолитной версию 6.9.
X11R7.1 22 мая 2006 Улучшение EXA; интеграция Kdrive; AIGLX; улучшения в поддержке ОС и платформ. [36]
'X11R7.2' 15 февраля 2007 Удаление LBX. [37]
X11R7.3 6 сентября 2007 Xorg server 1.4 - see Server14Branch for more details. Highlights:
  • RandR 1.2: RandR 1.2 offers output hotplug, as well as on-the-fly output reconfiguration and mode switching.
  • Input hotplug: Input hotplug allows hotplugging of input devices, and also adds enhanced support for touchscreens and tablets, through either HAL or D-Bus.
  • KDrive: Numerous enhancements have been made to the KDrive codebase, including better support for multiple input devices.
  • DTrace: When running on OpenSolaris, DTrace support is available in the X server, allowing detailed accounting of operations inside the server.
  • EXA: A great deal of work has been done on the EXA framework to make it more usable.
  • New applications: xbacklight
  • New drivers: xf86-video-glide, xf86-video-vermilion
  • New man pages for API's: libXinerama, libXcomposite, XKB functions in libX11, Xtest functions in libXtst
  • Support for font catalogue directories in font path
  • xdm: Xft support added. [38]
X11R7.4 23 сентября 2008 XServer 1.5.1, XACE, переработка PCI, оптимизация EXA, _X_EXPORT, GLX 1.4 ускоренный запуск и выключение. [39]
X11R7.5 26 октября 2009 XServer 1.7.0 [40]
X11R8.0 2 апреля 2010 XServer 1.8.0 [41], переход от управления устройствами с подсистемы HAL ( Слой аппаратных абстракций) на использование библиотеки udev, возможность создания файлов конфигурации для отдельных устройств, изменились ABI интерфеса, ответственные за ввод / вывод видео и некоторые расширения [42]

См.. также

Примечания

  1. "Licenses" (на английском). The X.Org Foundation. март 2004 . Проверено 29 июня 2006 .
  2. Джим Геттис. "Письмо форум XFree86" . Проверено 4 января 2007 .
  3. Дон Хопкинс. "The X-Windows Disaster". The UNIX-HATERS Handbook (на английском) . Проверено 29 июня 2006 .
  4. Ханя Жаевска Марк Менес, Джоэл Маккормак Why X Is Not Our Ideal Window System / / Software - Practice & Experience. - (1990).
  5. Re: X is painful
  6. "Xprint Frequently Asked Questions" (на английском) . Проверено 29 июня 2006 .
  7. airWRX - SVG Terminal
  8. mako. (15 июня 2005). "Financing Volunteer Free Software Projects" (на английском) . Проверено 29 июня 2006 .
  9. а б Джим Геттис. (2000). "Lessons Learned about Open Source" (на английском) . Проверено 29 июня 2006 .
  10. Shaleh. (2 апреля 1998). "xstate" (на английском) . Проверено 29 июня 2006 .
  11. Мэттью Арнисон. (Июнь 1999). "The means to an X for Linux: an interview with David Dawes from XFree86.org" (на английском) . Проверено 29 июня 2006 .
  12. Кристофер Браун. "X11R6.4 Sample Implementation Changes and Concerns" (на английском) . Проверено 29 июня 2006 .
  13. February/003945.html [ForUm Re: Announcement: Modification to the base XFree86 ? license]
  14. Роберт Митчелл. (4 февраля 2002). "Q & A: The X Factor" (на английском). ComputerWorld . Проверено 29 июня 2006 .
  15. Кейт Паккард. (1999). "The Evolution of the X Server Architecture" (на английском) . Проверено 29 июня 2006 .
  16. [ForUm A Call For Open Governance Of X Development]
  17. "XFree86 joins X. Org as Honorary Member" (на английском). Slashdot. 1 декабря 1999 . Проверено 29 июня 2006 .
  18. [ForUm Another teleconference Partial Edited Transcript]
  19. mharris. (9 января 2003). "Diary for mharris" (на английском) . Проверено 29 июня 2006 .
  20. [ForUm Invitation For Public Discussion About The Future Of X]
  21. [ForUm A Call For Open Governance Of X Development]
  22. [ForUm Notes From A teleconference Held 2003-3-27]
  23. [ForUm A Call For Open Governance Of X Development]
  24. [ForUm A Call For Open Governance Of X Development]
  25. [ForUm Discussing Issues]
  26. а б Дэвид Уилер. (16 февраля 2005). "The Cautionary Tale of XFree86". Make Your Open Source Software GPL-Compatible. Or Else (на английском) . Проверено 29 июня 2006 .
  27. "X11R6.9 and X11R7.0 Officially Released" (на английском). 21 декабря 2005 . Проверено 29 июня 2006 .
  28. Пол Андерсон, Алан Куперсмит, Эгберт Эйк, Адам Джексон, Кевин Мартин, Кейт Паккард. (2005). "Modularization Proposal" (на английском) . Проверено 29 июня 2006 .
  29. "Proposed Changes for X11R7.1" (на английском) . Проверено 29 июня 2006 .
  30. Кейт Паккард. (2004). "Getting X Off The Hardware" (на английском) . Проверено 29 июня 2006 .
  31. "The X Window User HOWTO: Getting Started" (на английском) . Проверено 29 июня 2006 .
  32. "XFree86 and X11R6.3". Release Notes for XFree86 3.3.6 (на английском). XFree86 Project. 31 декабря 1999 . Проверено 29 июня 2006 .
  33. "X Press Release - X11R6.4" (на английском). The Open Group. 31 марта 1998 . Проверено 29 июня 2006 .
  34. "X.Org Foundation releases X Window System X11R6.7" (на английском). LWN. 7 апреля 2004 . Проверено 29 июня 2006 .
  35. "ChangesSince68" (на английском). X.Org Wiki . Проверено 29 июня 2006 .
  36. "Release Notes for X11R7.1" (на английском). X.Org Foundation. 22 марта 2006 . Проверено 29 июня 2006 .
  37. "ChangesForX11R72" (на английском). X.Org Wiki . Проверено 15 февраля 2007 .
  38. "7.3 Release notes" (на английском). X.Org Foundation . Проверено 13 декабря 2007 .
  39. X.Org Foundation Releases X7.4
  40. X.Org Foundation Releases X7.5
  41. [1]
  42. http://www.opennet.ru/opennews/art.shtml?num=26069



13. Литература

  • Линда Муи, Эрик Пирс. X Window System Volume 8: X Window System Administrator's Guide for X11 Release 4 and Release 5. - 3rd ed. - O'Reilly, 1993. - ISBN 0-937175-83-8
  • Роберт Шейфлер, Джеймс Геттис. X Window System: Core and extension protocols: X version 11 releases 6 and 6.1. - Digital Press, 1996. - ISBN 1-55558-148-X