stringtranslate.com

X оконная система

Система X Window ( X11 или просто X ) — это оконная система для растровых дисплеев, распространенная в Unix-подобных операционных системах.

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

X возник в рамках проекта Athena в Массачусетском технологическом институте (MIT) в 1984 году. [3] Протокол X существует в версии 11 (отсюда и «X11») с сентября 1987 года. Фонд X.Org возглавляет проект X с текущая эталонная реализация, X.Org Server , доступна как бесплатное программное обеспечение с открытым исходным кодом по лицензии MIT и аналогичным разрешительным лицензиям.

Цель и способности

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

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

X предоставляет базовую структуру или примитивы для создания таких сред графического пользовательского интерфейса: рисование и перемещение окон на дисплее , а также взаимодействие с мышью, клавиатурой или сенсорным экраном. 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(который) через сеть.

X не обеспечивает встроенной поддержки звука; существует несколько проектов, призванных заполнить эту нишу, некоторые из которых также обеспечивают прозрачную сетевую поддержку.

Архитектура программного обеспечения

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

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

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

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

Сам X-клиент может эмулировать X-сервер, предоставляя услуги отображения другим клиентам. Это известно как «X-вложение». Клиенты с открытым исходным кодом, такие как Xnest и Xephyr, поддерживают такое вложение X.

Удаленного рабочего стола

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

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

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

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

Пользовательские интерфейсы

Графический интерфейс пользователя GNOME
Графический интерфейс пользователя Xfce

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

Оконный менеджер управляет размещением и внешним видом окон приложения. Это может привести к тому, что интерфейсы рабочего стола будут напоминать интерфейсы Microsoft Windows или Apple Macintosh (примеры включают GNOME 2, KDE, Xfce) или иметь радикально другие элементы управления (например, тайловый оконный менеджер, такой как wmii или Ratpoison ). Некоторые интерфейсы, такие как Sugar или ChromeOS, вообще избегают метафоры рабочего стола, упрощая свои интерфейсы для специализированных приложений. Оконные менеджеры варьируются по сложности и сложности от простых ( например , twm, базового оконного менеджера, поставляемого с X, или evilwm, чрезвычайно легкого оконного менеджера) до более комплексных сред рабочего стола, таких как Enlightenment, и даже до окон, специфичных для приложения. менеджеры для вертикальных рынков, таких как точки продаж.

Многие пользователи используют 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 с общей средой рабочего стола (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-сервер. Эта архитектура стала популярной для создания недорогих парков терминалов, позволяющих многим пользователям одновременно использовать один и тот же большой компьютерный сервер для выполнения прикладных программ в качестве клиентов X-терминала каждого пользователя. Такое использование во многом соответствует первоначальному замыслу проекта MIT.

Терминалы X исследуют сеть (локальный широковещательный домен ) с помощью протокола управления X Display Manager для создания списка доступных хостов, которым разрешено работать в качестве клиентов. На одном из клиентских хостов должен быть запущен менеджер отображения X.

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

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

Ограничения и критика

В «Справочнике Unix-Haters Handbook » (1994) целая глава посвящена проблемам X. [5] «Почему X не является нашей идеальной оконной системой» (1990) Гаевской, Манассе и МакКормака подробно описывают проблемы протокола с рекомендациями по улучшению.

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

Отсутствие рекомендаций по проектированию в X привело к появлению нескольких совершенно разных интерфейсов и приложений, которые не всегда хорошо работали вместе. Руководство по соглашениям межклиентского взаимодействия (ICCCM), спецификация взаимодействия клиентов, имеет репутацию сложного для правильной реализации. Дальнейшие усилия по стандартизации, такие как Motif и CDE, не решили проблем. Это разочаровало пользователей и программистов. [6] Программисты графики в настоящее время обычно обеспечивают согласованность внешнего вида приложений и взаимодействия путем написания кода для конкретной среды рабочего стола или для определенного набора виджетов, что также позволяет избежать необходимости иметь дело напрямую с ICCCM.

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

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

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

Проект Orca добавляет поддержку специальных возможностей в систему X Window, включая реализацию API ( AT-SPI [7] ). В сочетании с ATK GNOME это позволяет реализовать функции специальных возможностей в программах X с использованием API-интерфейсов GNOME/GTK. [8] KDE предоставляет другой набор программного обеспечения для обеспечения специальных возможностей, включая преобразователь текста в речь и экранную лупу. [9] Другие основные настольные компьютеры (LXDE, Xfce и Enlightenment) пытаются быть совместимыми с ATK.

Сеть

Пример туннелирования приложения X11 через SSH

X-клиент обычно не может быть отсоединен от одного сервера и повторно подключен к другому, если это специально не предусмотрено его кодом ( Emacs - одна из немногих распространенных программ, обладающих такой возможностью). Таким образом, перемещение всего сеанса с одного X-сервера на другой обычно невозможно. Однако такие подходы, как Virtual Network Computing (VNC), NX и Xpra, позволяют получить доступ к виртуальному сеансу с разных X-серверов (аналогично GNU Screen в отношении терминалов), а другие приложения и наборы инструментов предоставляют соответствующие возможности. [10] Также существуют обходные пути, такие как x11vnc ( просмотры VNC :0 ), теневой режим Xpra и теневой режим nxagent NX, чтобы сделать текущий экран X-сервера доступным. Эта возможность позволяет переключать пользовательский интерфейс (мышь, клавиатуру, монитор) работающего приложения из одного места в другое без остановки и перезапуска приложения.

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

Как и во всех тонких клиентах , при использовании X в сети ограничения пропускной способности могут препятствовать использованию приложений с интенсивным использованием растровых изображений , требующих быстрого обновления больших частей экрана с низкой задержкой, таких как 3D-анимация или редактирование фотографий. Даже относительно небольшой несжатый видеопоток размером 640×480×24 бит со скоростью 30 кадров в секунду (~211 Мбит/с) может легко превзойти пропускную способность сети со скоростью 100 Мбит/с для одного клиента. Напротив, современные версии X обычно имеют расширения, такие как Mesa , позволяющие оптимизировать локальное отображение графики локальной программы, чтобы обойти сетевую модель и напрямую управлять видеокартой для использования полноэкранного видео, рендеринга 3D-приложений и других приложений. такие приложения.

Разделение клиент-сервер

Конструкция X требует, чтобы клиенты и сервер работали отдельно, а независимость устройств и разделение клиента и сервера влекут за собой накладные расходы. Большая часть накладных расходов возникает из-за времени задержки прохождения сигнала между клиентом и сервером в сети ( задержка ), а не из-за самого протокола: лучшие решения проблем с производительностью зависят от эффективной разработки приложений. [11] Распространенной критикой X является то, что его сетевые функции приводят к чрезмерной сложности и снижению производительности, если использовать его только локально.

Современные реализации X используют сокеты домена Unix для эффективных соединений на одном хосте. Кроме того, общая память (через расширение MIT-SHM ) может использоваться для более быстрой связи клиент-сервер. [12] Однако программист все равно должен явно активировать и использовать расширение общей памяти. Также необходимо предоставить запасные пути, чтобы оставаться совместимыми со старыми реализациями и для связи с нелокальными 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 были проект Эндрю (1982 г.) и терминал Blit Роба Пайка ( 1982 г.).

Университет Карнеги-Меллона разработал приложение удаленного доступа под названием Alto Terminal, которое отображало перекрывающиеся окна на Xerox Alto и возлагало на удаленные хосты (обычно системы DEC VAX, работающие под управлением Unix) ответственность за обработку событий открытия окон и обновление содержимого окон по мере необходимости.

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

Происхождение и раннее развитие

От: rws@mit-bold (Роберт В. Шейфлер) Кому: window@athena Тема: оконная система X Дата: 19 июня 1984 г., 09:07-EDT (вторник)             Я потратил последние пару недель на написание окнасистема для VS100. Я украл изрядное количество кодаот W, окружил его скорее асинхроннымчем синхронный интерфейс, и назвал его X. В целомпроизводительность примерно в два раза выше, чем у W.на данный момент код кажется довольно надежным, хотя естьеще предстоит исправить некоторые недостатки.Мы в LCS прекратили использовать W и теперьактивно создаю приложения на X. Кто-нибудь еще используетНам следует серьезно подумать о переходе. Это нелучшая оконная система, но я считаю, что это хорошаяотправная точка для экспериментов. Прямо в данный моментсуществует интерфейс CLU (и Argus) для X; Синтерфейс в разработке. Три существующихприложения — текстовый редактор (TED), устройство ввода-вывода Argus.интерфейс и примитивный оконный менеджер. Естьдокументации еще нет; кто-нибудь достаточно сумасшедший, чтобыволонтер? Возможно, в конце концов я доберусь до этого.Любой желающий увидеть демо-версию может зайтиNE43-531, хотя вы можете позвонить по номеру 3-1945.первый. Любой, кому нужен код, может прийти слента. Кому интересны недостатки взлома, почувствуйтесвободен для связи.

Электронное письмо, в котором X был представлен сообществу Project Athena в Массачусетском технологическом институте в июне 1984 года [18]

X11R1, работающий на машине Sun

Первоначальная идея X возникла в Массачусетском технологическом институте в 1984 году в результате сотрудничества Джима Геттиса (из Project Athena ) и Боба Шейфлера (из Лаборатории компьютерных наук Массачусетского технологического института ). Шайфлеру требовалась удобная среда отображения для отладки системы Argus. Проекту Athena (совместному проекту DEC , MIT и IBM по обеспечению легкого доступа к вычислительным ресурсам для всех студентов) требовалась независимая от платформы графическая система для объединения разнородных систем от разных поставщиков; оконная система, которая тогда разрабатывалась в рамках проекта «Эндрю » Университета Карнеги-Меллон, не имела лицензий, и альтернативы не существовало.

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

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

Во втором квартале 1985 года X приобрел поддержку цвета для работы в DEC VAXstation -II/GPX, образовав версию 9.

Группа из Университета Брауна перенесла версию 9 на ПК IBM RT , но проблемы с чтением невыровненных данных на RT вынудили изменить несовместимый протокол, что привело к созданию версии 10 в конце 1985 года. X10R1 был выпущен в 1985 году. [19] К 1986 году за пределами организации начали запрашивать X. X10R2 был выпущен в январе 1986 года, затем X10R3 в феврале 1986 года. Хотя MIT лицензировала X6 некоторым внешним группам за определенную плату, в это время было решено лицензировать X10R3 и будущие версии на условиях, которые стали известны как MIT License , намереваясь и дальше популяризировать X и, в свою очередь, надеясь, что станет доступно гораздо больше приложений. X10R3 стала первой версией, получившей широкое распространение: на ее основе выпустили продукты DEC и Hewlett-Packard . Другие группы портировали X10 на рабочие станции Apollo и Sun и даже на IBM PC/AT . Демонстрация первого коммерческого приложения для X (механической системы автоматизированного проектирования от Cognition Inc., которая работала на VAX и удаленно отображалась на ПК с X-сервером, портированным Джимом Фултоном и Яном Харденбергом) состоялась на выставке Autofact. время. Последняя версия X10, X10R4, появилась в декабре 1986 года. Были предприняты попытки использовать X-серверы в качестве устройств для совместной работы в реальном времени, подобно тому, как виртуальные сетевые вычисления (VNC) позже позволят совместно использовать рабочий стол. Одним из таких ранних проектов был инструмент SharedX Филипа Дж. Гаста .

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

Проект протокола X11, возглавляемый Шейфлером, широко обсуждался в открытых списках рассылки в зарождающемся Интернете, которые были связаны с группами новостей USENET. Геттис переехал в Калифорнию, чтобы помогать руководить разработкой X11 в WSL из Центра системных исследований DEC, где Фил Карлтон и Сьюзен Ангебрандт руководили проектированием и внедрением примера сервера X11. Таким образом, X представляет собой один из первых крупномасштабных проектов распространяемого бесплатного программного обеспечения с открытым исходным кодом .

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

К концу 1980-х X было, как писал Симсон Гарфинкель в 1989 году, «самым важным достижением Афины на сегодняшний день». Сообщается, что DEC считала, что само по себе ее развитие сделало пожертвование компании MIT целесообразным. Геттис присоединился к команде разработчиков VAXstation 2000, чтобы гарантировать, что X, который DEC назвал DECwindows , будет работать на нем, и компания поручила 1200 сотрудникам портировать X как на Ultrix, так и на VMS. [21] [22] В 1987 году, когда успех X11 стал очевиден, MIT пожелал отказаться от управления X, но на встрече в июне 1987 года с девятью поставщиками поставщики сказали MIT, что они верят в необходимость нейтральной стороны. чтобы не допустить фрагментации X на рынке. В январе 1988 года был сформирован Консорциум MIT X как некоммерческая группа поставщиков под руководством Шейфлера в качестве директора, чтобы руководить будущим развитием X в нейтральной атмосфере, учитывающей коммерческие и образовательные интересы.

Джим Фултон присоединился к нам в январе 1988 года, а Кейт Паккард — в марте 1988 года в качестве старших разработчиков , причем Джим сосредоточился на Xlib , шрифтах , оконных менеджерах и утилитах; и Кейт повторно реализует сервер. Донна Конверс, Крис Д. Петерсон и Стивен Гилдеа присоединились к нам позже в том же году, сосредоточившись на наборах инструментов и наборах виджетов и тесно сотрудничая с Ральфом Свиком из MIT Project Athena. Консорциум MIT X выпустил несколько существенных изменений в X11, первый из которых (Выпуск 2 — X11R2) был выпущен в феврале 1988 года. Джей Херш присоединился к команде в январе 1991 года для работы над функциональностью PEX и X113D. Вскоре за ним последовали Ральф Мор (который также работал над PEX) и Дэйв Стернлихт. В 1993 году, когда Консорциум MIT X готовился покинуть MIT, к его сотрудникам присоединились Р. Гэри Катбилл, Калеб Кейтли и Дэвид Виггинс. [23]

Общая среда рабочего стола

В 1993 году была образована X Consortium, Inc. (некоммерческая корпорация) как преемница MIT X Consortium. 16 мая 1994 года компания выпустила X11R6. В 1995 году она приступила к разработке набора инструментов Motif и общей среды рабочего стола для систем Unix. Консорциум X распался в конце 1996 года, выпустив окончательную версию X11R6.3, оставив после себя растущее коммерческое влияние на разработку. [24] [25]

Открытая группа

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

Open Group выпустила X11R6.4 в начале 1998 года. Вызывает споры то, что X11R6.4 отклоняется от традиционных либеральных условий лицензирования, поскольку Open Group стремилась обеспечить финансирование разработки X и особо сослалась на XFree86 как не вносящую существенного вклада в X. [ 26] Новые условия сделали бы X больше не свободным программным обеспечением : нулевую стоимость для некоммерческого использования, а в противном случае — плату. После того, как XFree86, казалось, был готов к ответвлению , [27] Open Group в сентябре 1998 года повторно лицензировала X11R6.4 по традиционной лицензии. [28] Последний выпуск Open Group вышел под названием X11R6.4 patch 3.

X.Org и XFree86

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

В мае 1999 года The Open Group сформировала X.Org. X.Org контролировал выпуск версий X11R6.5.1 и далее. Разработка X в то время замерла; [30] Большинство технических инноваций с момента распада X Consortium произошло в проекте XFree86. [31] В 1999 году команда XFree86 присоединилась к X.Org в качестве почётного (неоплачиваемого) члена, [32] поощряемого различными компаниями-производителями оборудования, [33] [ неудачная проверка ] заинтересованными в использовании XFree86 с Linux и в его статусе самая популярная версия X.

К 2003 году, хотя популярность Linux (и, следовательно, количество установленных X) выросла, X.Org оставался бездействующим, [34] и активная разработка велась в основном внутри XFree86. Однако внутри XFree86 возникли значительные разногласия. Проект XFree86 страдал от восприятия модели разработки, слишком похожей на собор ; разработчики не могли получить доступ к фиксации CVS [35] [36] , а поставщикам приходилось поддерживать обширные наборы исправлений . [37] В марте 2003 года организация XFree86 исключила Кита Паккарда, который присоединился к XFree86 после распада первоначального Консорциума MIT X, с сильным недовольством. [38] [39] [40]

X.Org и XFree86 начали обсуждать реорганизацию, подходящую для правильного развития X. [41] [42] [43] Джим Геттис решительно настаивал на открытой модели разработки, по крайней мере, с 2000 года. [44] Gettys, Packard и несколько других начали подробно обсуждать требования к эффективному управлению X при открытой разработке.

Наконец, как отголосок лицензионного спора X11R6.4, XFree86 выпустила версию 4.4 в феврале 2004 года под более ограничительной лицензией, которую многие проекты, опирающиеся на X, сочли неприемлемыми. [45] Добавленный пункт к лицензии был основан на пункте о рекламе исходной лицензии BSD , который был расценен Фондом свободного программного обеспечения и Debian как несовместимый со Стандартной общественной лицензией GNU . [46] Другие группы сочли это противоречащим духу оригинальной версии X. Тео де Раадт из OpenBSD , например, пригрозил создать форк XFree86, ссылаясь на проблемы с лицензией. [47] Проблема с лицензией в сочетании с трудностями с внесением изменений заставила многих почувствовать, что пришло время для форка. [48]

Фонд X.Org

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

Фонд берет на себя надзорную роль за разработкой X: технические решения принимаются по существу путем достижения примерного консенсуса среди членов сообщества. Технические решения не принимаются советом директоров; в этом смысле он во многом создан по образцу технически невмешательного GNOME Foundation . В Фонде нет разработчиков. В апреле 2004 года Фонд выпустил X11R6.7, сервер X.Org , на основе XFree86 4.4RC2 с объединенными изменениями X11R6.6. Gettys и Packard взяли последнюю версию XFree86 под старой лицензией и, сделав упор на открытую модель разработки и сохранив совместимость с GPL, привлекли к работе многих старых разработчиков XFree86. [46]

Хотя X11 получил такие расширения, как поддержка OpenGL, в 1990-х годах, его архитектура оставалась принципиально неизменной в течение десятилетия. Однако в начале 2000-х годов он был переработан, чтобы решить ряд проблем, возникших с годами, в том числе «несовершенную» архитектуру шрифтов , систему 2D-графики, «которая всегда предназначалась для расширения и/или расширения». заменено», а также проблемы с задержкой . [49] X11R6.8 вышел в сентябре 2004 года. В него добавлены важные новые функции, включая предварительную поддержку полупрозрачных окон и других сложных визуальных эффектов, экранные лупы и миниатюры, а также средства для интеграции с системами трехмерного иммерсивного отображения, такими как Sun Project Looking Glass. и проект «Крокет» . Внешние приложения, называемые оконными менеджерами композиции, обеспечивают политику внешнего вида.

21 декабря 2005 года [50] X.Org выпустила X11R6.9, монолитное дерево исходного кода для устаревших пользователей, и X11R7.0, тот же исходный код, разделенный на независимые модули, каждый из которых можно поддерживать в отдельных проектах. [51] Фонд выпустил X11R7.1 22 мая 2006 года, примерно через четыре месяца после версии 7.0, со значительными улучшениями функций. [52]

Разработка XFree86 продолжалась еще несколько лет, 15 декабря 2008 года была выпущена версия 4.8.0. [53]

Номенклатура

Собственные имена системы указаны на странице руководства как X; X оконная система; Х Версия 11; X оконная система, версия 11; или Х11. [54]

Термин «X-Windows» (аналогично выпущенному впоследствии «Microsoft Windows») официально не одобрен: менеджер по выпуску X Consortium Мэтт Ландау заявил в 1993 году: «Не существует такой вещи, как «X Windows» или «X». «Окно», несмотря на неоднократное неправильное использование форм торговцами» [55]  – хотя оно широко использовалось неформально с самого начала истории X [56] и использовалось намеренно для провокационного эффекта, например, в Справочник ненавистников Unix . [5]

Ключевые термины

В системе X Window используются нюансы использования ряда терминов по сравнению с обычным использованием, в частности «дисплей» и «экран», подмножество которых приведено здесь для удобства:

устройство
Графическое устройство, такое как компьютерная видеокарта или встроенный графический чипсет материнской платы компьютера.
монитор
Физическое устройство, такое как ЭЛТ или компьютерный дисплей с плоским экраном.
экран
Область, в которой графика может отображаться либо с помощью программного обеспечения в системной памяти, как в случае с VNC , либо внутри графического устройства, некоторые из которых могут отображаться на более чем одном экране одновременно, либо для одновременного просмотра, либо для взаимозаменяемости. Сменные экраны часто условно настраиваются так, чтобы они располагались слева и справа друг от друга, переключаясь с одного на другой, когда указатель мыши достигает края монитора.
виртуальный экран
С этим термином связаны два разных значения:
  • Метод, позволяющий панорамировать монитор вокруг экрана с большим разрешением, чем отображает монитор в данный момент.
  • Эффект, имитируемый оконным менеджером путем сохранения информации о положении окна в более крупной системе координат, чем экран, и обеспечения возможности панорамирования путем простого перемещения окон в ответ на действия пользователя.
отображать
Набор экранов, часто включающий несколько мониторов, обычно сконфигурированных так, чтобы мышь могла перемещать указатель в любую позицию внутри них. Рабочие станции на базе Linux обычно могут иметь несколько дисплеев, между которыми пользователь может переключаться с помощью специальной комбинации клавиш, например Control-Alt- Function-Key , одновременно переключая все мониторы с отображения экранов одного дисплея на экраны другого. .

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

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

О перспективах будущих версий на сайте X.org говорится: [74]

X.Org продолжает разрабатывать и выпускать программные компоненты X Window System.

Они выпускаются индивидуально по мере готовности каждого компонента, без ожидания общего графика выпуска X Window System «katamari» — для загрузки см. каталог отдельных выпусков X.Org, а также архивы xorg-announce или репозитории git для получения подробной информации о включенных изменениях.

План выпуска накопительного выпуска катамари X11R7.8 предложен не был.

Смотрите также

Примечания

  1. ^ "7,7" . Проверено 5 апреля 2024 г.
  2. ^ «X11R7.x — X Window System версии 11, выпуск 7.x, продолжается разработка» . Проверено 5 апреля 2024 г.
  3. ^ Штайнер, Дженнифер Г.; Гир младший, Дэниел Э. (21 июля 1988 г.). «Сетевые службы в среде Athena». Материалы зимней конференции Usenix 1988 года . CiteSeerX 10.1.1.31.8727 . 
  4. ^ Шайфлер, Роберт В.; Геттис, Джим (апрель 1986 г.). «Оконная система X». Транзакции ACM с графикой . 5 (2): 79–109. дои : 10.1145/22949.24053 . ISSN  0730-0301.
  5. ^ Аб Хопкинс, Дон. «Катастрофа X-Windows». Арт.Нет. Архивировано из оригинала 11 ноября 2009 года . Проверено 10 ноября 2009 г.
  6. Бамгарнер, Билл (15 ноября 1996 г.). «Re: X — это больно». Списки рассылки Debian . Архивировано из оригинала 31 декабря 2022 года.
  7. ^ "Косатка". ГНОМ Вики! . Архивировано из оригинала 25 декабря 2013 года . Проверено 7 ноября 2012 г.
  8. ^ «АТК - Набор инструментов для обеспечения специальных возможностей» . Центр разработчиков GNOME . Архивировано из оригинала 1 января 2013 года . Проверено 7 ноября 2012 г.
  9. ^ «Утилиты - Доступность» . КДЕ. Архивировано из оригинала 14 января 2013 года . Проверено 6 января 2013 г.
  10. ^ Геттис, Джеймс. «SNAP Computing и система X Window» (PDF) . Интерактивные вычисления повсюду . 4.6. Архивировано из оригинала (PDF) 26 июня 2010 года.
  11. ^ Паккард, Кейт. «Вскрытие LBX». keithp.com . Архивировано из оригинала 15 ноября 2023 года.
  12. ^ Корбет, Джонатан (1991). «MIT-SHM — расширение общей памяти MIT. Как работает расширение общей памяти». XFree86 . Архивировано из оригинала 22 декабря 2023 года.
  13. ^ mpaque (19 августа 2003 г.). «Почему Apple не использовала X для оконной системы». Слэшдот . Архивировано из оригинала 12 ноября 2023 года.
  14. ^ Хогсберг, Кристиан (2012). «Поддержка приложений X11». Вейланд . Архивировано из оригинала 24 сентября 2023 года.
  15. ^ "МирСпец - Ubuntu Wiki" . Wiki.ubuntu.com. Архивировано из оригинала 17 июня 2013 года . Проверено 6 марта 2013 г.
  16. ^ «Техническое описание Canonical Mir» (PDF) . 20 декабря 2018 г.
  17. ^ DRI для консолей с кадровым буфером, 15 декабря 2009 г.
  18. ^ «Дебют X». Талисман. 19 июня 1984 года . Проверено 7 ноября 2012 г.
  19. Карлсон, Уэйн Э. (20 июня 2017 г.). «Историческая хронология компьютерной графики».
  20. ^ «Выпущена X версия 11 (!!!)» . groups.google.com . Проверено 30 мая 2022 г.
  21. ^ Гарфинкель, Симсон Л. (ноябрь – декабрь 1988 г.). «Второе дыхание Афины» (PDF) . Обзор технологий . Проверено 25 января 2016 г.
  22. ^ Гарфинкель, Симсон Л. (май – июнь 1989 г.). «Волнения на академическом рынке» (PDF) . Обзор технологий . стр. 9–13 . Проверено 25 января 2016 г.
  23. ^ Роберт В. Шейфлер и Джеймс Геттис: Система X Window: Ядро и протоколы расширения: X версия 11, выпуски 6 и 6.1, Digital Press 1996, ISBN 1-55558-148-X 
  24. ^ Финансирование добровольных проектов свободного программного обеспечения, 10 июня 2005 г.
  25. ^ Уроки, извлеченные из открытого исходного кода 2000
  26. ^ «Заявление X». 2 апреля 1998 г. Архивировано из оригинала 24 февраля 2021 г. Проверено 28 января 2024 г.
  27. ^ «XFree86 (TM): Пресс-релиз» . 6 декабря 1998 года. Архивировано из оригинала 6 декабря 1998 года . Проверено 7 февраля 2017 г.
  28. ^ Браун, Кристофер. «Пример изменений и проблем реализации X11R6.4». Веб-страницы Кристофера Брауна . Архивировано из оригинала 1 июня 2008 года.
  29. Геттис, Джим (2 февраля 2004 г.). «Re: Объявление: Модификация базовой лицензии XFree86(TM)». [email protected] (список рассылки). Архивировано из оригинала 7 сентября 2005 года . Проверено 26 июня 2021 г.
  30. Суэйлс, Стив (4 февраля 2002 г.). «Вопросы и ответы: Х-фактор». Компьютерный мир (Интервью). Беседовал Митчелл, Роберт. ИДГ Коммуникации. Архивировано из оригинала 26 июня 2021 года. Около пяти или шести лет назад стюарды X действительно практически ничего не вели. Это действительно не шло в ногу с технологиями.
  31. ^ Паккард, Кейт (1999). «Эволюция архитектуры X-сервера». Архивировано из оригинала 26 июня 2021 года.
  32. Вексельблат, Дэвид (23 марта 2003 г.). «Призыв к открытому управлению X Development». [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  33. ^ «XFree86 присоединяется к X.Org в качестве почетного члена» . Слэшдот . 1 декабря 1999 г. Архивировано из оригинала 26 июня 2021 г.
  34. Харрис, Майк (13 апреля 2003 г.). «Еще одна частичная отредактированная стенограмма телеконференции» . [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  35. Нолден, Ральф (20 марта 2003 г.). «Проблема Кита Паккарда». [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  36. Хант, Гарольд (27 октября 2003 г.). «Cygwin/XFree86 — больше не связан с XFree86.org». [email protected] (список рассылки). Архивировано из оригинала 26 июня 2021 года . Проверено 26 июня 2021 г.
  37. Харрис, Майк (9 января 2003 г.). «9 января 2003 г.». Архивировано из оригинала 14 февраля 2009 года.
  38. ^ Доус, Дэвид ; Катшоу, Робин; Эванс, Марк; Мерфи, Рич; Могилы, Джон; Вексельблат, Дэвид (20 марта 2003 г.). «Приглашение к публичному обсуждению будущего X». [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  39. Паккард, Кейт (21 марта 2003 г.). «Призыв к открытому управлению X Development». [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  40. Паккард, Кейт (3 апреля 2003 г.). «Заметки с телеконференции, состоявшейся 27 марта 2003 г.». [email protected] (список рассылки). Архивировано из оригинала 12 февраля 2005 года . Проверено 26 июня 2021 г.
  41. Суэйлс, Стив (24 марта 2003 г.). «Призыв к открытому управлению X Development». [email protected] (список рассылки). Архивировано из оригинала 22 декабря 2004 года . Проверено 26 июня 2021 г.
  42. Вексельблат, Дэвид (23 марта 2003 г.). «Призыв к открытому управлению X Development». [email protected] (список рассылки). Архивировано из оригинала 6 января 2005 года . Проверено 26 июня 2021 г.
  43. Пеннингтон, Havoc (14 апреля 2003 г.). «Обсуждение вопросов». [email protected] (список рассылки). Архивировано из оригинала 27 декабря 2004 года . Проверено 26 июня 2021 г.
  44. Геттис, Джим (22 июня 2000 г.). Уроки, извлеченные из открытого исходного кода. Ежегодная техническая конференция USENIX. Архивировано из оригинала 27 июня 2021 года.
  45. ^ «XFree86 4.4: Список отказных распространителей растет» . Слэшдот . 18 февраля 2004 г. Архивировано из оригинала 27 июня 2021 г.
  46. ^ ab Wheeler, Дэвид А. (16 февраля 2014 г.) [6 мая 2002 г.]. «Сделайте свое программное обеспечение с открытым исходным кодом совместимым с GPL. Или еще». Архивировано из оригинала 26 января 2021 года.
  47. де Раадт, Тео (16 февраля 2004 г.). «Лицензия XFree86». openbsd-misc (список рассылки). Архивировано из оригинала 18 января 2019 года . Проверено 8 декабря 2009 г.
  48. Бойкин, Оскар (25 февраля 2004 г.). «X отмечает точку: оглядываясь назад на события X11 прошлого года». ОСНовости . Архивировано из оригинала 27 июня 2021 года.
  49. ^ Геттис, Джеймс; Паккард, Кейт (2004). (Re) Архитектура X Window System (PDF) . Учеб. Симпозиум по Linux. Том. 1.
  50. ^ X11R6.9 и X11R7.0 официально выпущены 21 декабря 2005 г.
  51. ^ Предложение по модуляризации, 31 марта 2005 г.
  52. ^ Предлагаемые изменения для X11R7.1 21 апреля 2006 г.
  53. ^ «Текущий выпуск XFree86: 4.8.0» . xfree86.org .
  54. ^ X - портативная, прозрачная для сети оконная система, февраль 2005 г.
  55. Ландау, Мэтт (23 апреля 1993 г.). «Re: Асинхронная X Windows?». Группа новостей : comp.windows.x. Usenet:  [email protected] . Проверено 6 марта 2013 г.
  56. ^ например, «Часто задаваемые вопросы по X Windows», часто задаваемые вопросы для группы новостей Usenet comp.windows.x.
  57. ^ Система X Window: история и архитектура, 1 сентября 1999 г.
  58. ^ XFree86 и X11R6.3, декабрь 1999 г.
  59. ^ «Обзор X11R6.3 (Бродвей)» . Открытая группа . 1997. Архивировано 7 июля 1997 года.
  60. ^ The Open Group объявляет о выпуске готовой к использованию в Интернете системы X Window X11R6.4, 31 марта 1998 г.
  61. ^ X.Org Foundation выпускает X Window System X11R6.7 7 апреля 2004 г.
  62. ^ Изменения с версии R6.8 от 21 октября 2005 г.
  63. ^ Примечания к выпуску X11R7.1, 22 мая 2006 г.
  64. Фонд X.Org выпустил версию 7.2.0 (также известную как X11R7.2) 15 февраля 2007 г.
  65. ^ Планы выпуска X-сервера версии 1.4. Проверено 25 августа 2007 г.
  66. ^ «Фондовые выпуски X7.4» . Х.орг . Проверено 10 ноября 2009 г.
  67. ^ «Объявление о выпуске 7.5» . Х.орг . Проверено 10 ноября 2009 г.
  68. ^ «Вики – планы выпуска версии 7.5» . Х.орг . Проверено 10 ноября 2009 г.
  69. ^ «Объявление о выпуске 7.6» . X.org. 20 декабря 2010 года . Проверено 21 декабря 2010 г.
  70. ^ «Подумываю о катамари 7.6, включая xcb» . Lists.x.org. 21 октября 2009 года . Проверено 10 ноября 2009 г.
  71. ^ «Вики – планы выпуска версии 7.6» . Х.орг . Проверено 21 декабря 2010 г.
  72. ^ "[ОБЪЯВЛЕНИЕ] X11R7.7" . Lists.x.org. 6 июня 2012 года . Проверено 7 июня 2012 г.
  73. ^ "Релизы/7.7" . Х.орг . Проверено 7 июня 2012 г.
  74. ^ «Релизы/7.8». Х.орг . Проверено 6 мая 2014 г.

Рекомендации

Внешние ссылки