Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Цель и способности [ править ]

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

  • приложение, отображающееся в окне другой системы отображения
  • системная программа, управляющая видеовыходом ПК
  • выделенное оборудование

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

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

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

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

  • на локальном компьютере откройте окно терминала
  • используйте ssh с аргументом перенаправления X для подключения к удаленному компьютеру
  • запросить локальную службу отображения / ввода (например, если не используется SSH с включенной пересылкой X)export DISPLAY=[user's machine]:0

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

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

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

  • графическое администрирование удаленного компьютера (аналогично удаленному рабочему столу, но с отдельными окнами)
  • использование клиентского приложения для присоединения к большому количеству других пользователей терминала в совместных рабочих группах
  • запуск вычислительно-интенсивного моделирования на удаленном компьютере и отображение результатов на локальном настольном компьютере
  • запуск графического программного обеспечения на нескольких машинах одновременно, управляемый одним дисплеем, клавиатурой и мышью

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

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

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

Диспетчер окон управляет размещением и внешним видом окон приложений. Это может привести к тому, что интерфейсы рабочего стола будут напоминать интерфейсы Microsoft Windows или Apple Macintosh (примеры включают GNOME 2, KDE, Xfce) или иметь радикально другие элементы управления (например, тайловый оконный менеджер, такой как wmii или Ratpoison). Некоторые интерфейсы, такие как Sugar или Chrome OS, полностью избегают метафоры рабочего стола, упрощая свои интерфейсы для специализированных приложений. По сложности и сложности оконные менеджеры варьируются от простых ( например , 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, ответвление 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. .

Существуют также Java-реализации X-серверов. WeirdX работает на любой платформе, поддерживающей Swing 1.1, и будет работать как апплет в большинстве браузеров. Android X Server - это реализация Java с открытым исходным кодом, работающая на устройствах Android.

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

X терминалы [ править ]

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

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

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

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

Ограничения и критика [ править ]

Справочник Unix-Haters Handbook (1994) посвятил целую главу проблемам X. [2] Почему X не является нашей идеальной оконной системой (1990) Gajewska, Manasse и McCormack детализировали проблемы в протоколе с рекомендациями по улучшению.

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

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

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

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

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

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

Сеть [ править ]

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

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

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

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

Разделение клиент-сервер [ править ]

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

Современные реализации X используют сокеты домена Unix для эффективных соединений на одном и том же хосте. Дополнительно можно использовать разделяемую память (через расширение MIT-SHM ) для более быстрой связи клиент-сервер. [9] Однако программист все равно должен явно активировать и использовать расширение разделяемой памяти. Также необходимо предоставить резервные пути, чтобы оставаться совместимыми со старыми реализациями и для связи с нелокальными X-серверами.

Конкуренты [ править ]

Некоторые люди пытались пишущие альтернативы и замены для X. Исторические альтернативы включают ВС «s NeWS и NeXT » s Display PostScript , как PostScript -На системы , поддерживающие определяемые пользователем отображения на стороне процедуры, которые X не хватало. Текущие альтернативы включают:

  • macOS (и ее мобильный аналог iOS ) реализует свою оконную систему, известную как Quartz . Когда Apple Inc. купила NeXT и использовала NeXTSTEP для создания Mac OS X , она заменила Display PostScript на Quartz . Майк Пакетт , один из авторов Quartz, объяснил, что если бы Apple добавила поддержку всех функций, которые она хотела включить в X11, она не имела бы большого сходства с X11 и в любом случае не была бы совместима с другими серверами. [10]
  • Android , работающий на ядре Linux , использует собственную систему рисования пользовательского интерфейса, известную как SurfaceFlinger . 3D-рендерингом занимается EGL .
  • Wayland разрабатывается несколькими разработчиками X.Org в качестве возможной замены X. Он работает напрямую с оборудованием GPU через DRI . Wayland может запускать сервер X.org в качестве клиента, который не должен иметь root-доступ. [11] [ необходим лучший источник ] В 2013 году был завершен проприетарный перенос серверной части Wayland на Raspberry Pi . [12] В 2012 году проект достиг версии 1.0. Как и Android, Wayland основан на EGL.
  • Мир был проектом Canonical Ltd. с целями, аналогичными Wayland. [13] Мир был предназначен для работы с мобильными устройствами, использующими наборы микросхем ARM (заявленной целью была совместимость с драйверами устройств Android), а также с настольными компьютерами x86. Как и Android, Mir / UnityNext были основаны на EGL. Обратная совместимость с клиентскими приложениями X была достигнута через Xmir. С тех пор проект превратился в композитора Wayland вместо альтернативного сервера отображения . [14]
  • Другие альтернативы пытаются избежать накладных расходов X, работая напрямую с оборудованием; к таким проектам относится DirectFB . [15] ( Инфраструктура прямого рендеринга (DRI), которая направлена ​​на обеспечение надежного интерфейса на уровне ядра с буфером кадра , может [ цитата необходима ] сделать эти усилия излишними.)

Дополнительные способы достижения функциональной формы свойства «сетевой прозрачности» X посредством сетевой передачи графических сервисов включают:

  • Virtual Network Computing (VNC), система очень низкого уровня, которая отправляет сжатые растровые изображения по сети; реализация Unix включает X-сервер
  • Протокол удаленного рабочего стола (RDP), который похож на VNC по назначению, но возник в Microsoft Windows до того, как был перенесен в Unix-подобные системы; cf NX , GotoMyPc и т. д.
  • Citrix XenApp , X-подобный протокол и стек приложений для Microsoft Windows
  • Tarantella , который предоставляет удаленный графический интерфейс на основе Java для использования в веб-браузерах.

История [ править ]

Предшественники [ править ]

Несколько систем отображения растровых изображений предшествовали X. Из Xerox пришли Alto (1973) и Star (1981). От Apollo Computer пришел Display Manager (1981). От Apple пришли Lisa (1983) и Macintosh (1984). Unix мир имел Эндрю Project (1982) и Роб Пайк «s Blit терминал (1982).

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

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

Происхождение и раннее развитие [ править ]

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

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

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

Проект решил эту проблему, создав протокол, который мог как запускать локальные приложения, так и обращаться к удаленным ресурсам. В середине 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 года. К 1986 году сторонние организации начали запрашивать X. X10R2 был выпущен в январе 1986 года, затем X10R3 в феврале 1986. Хотя MIT лицензировал X6 некоторым сторонним группам за определенную плату, в это время он решил лицензировать X10R3 и будущие версии под тем, что стало известно как лицензия MIT , с намерением популяризировать X дальше и в свою очередь, надеясь, что станет доступно гораздо больше приложений. X10R3 стала первой версией, получившей широкое распространение, и как DEC, так и Hewlett-Packard выпустили продукты на ее основе. Остальные группы портировали X10 наApollo и рабочие станции Sun и даже IBM PC / AT . На выставке Autofact состоялись демонстрации первого коммерческого приложения для X (механической системы автоматизированного проектирования от Cognition Inc., которая работала на VAX и удаленно отображалась на ПК с X-сервером, портированным Джимом Фултоном и Яном Харденбергом). время. Последняя версия X10, X10R4, появилась в декабре 1986 года. Были предприняты попытки включить X-серверы в качестве устройств для совместной работы в реальном времени, так же как виртуальные сетевые вычисления (VNC) позже позволят совместно использовать рабочий стол. Одним из таких первых достижений был инструмент SharedX Филипа Дж. Густа .

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

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

MIT X Consortium и X Consortium, Inc. [ править ]

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

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

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

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

Открытая группа [ править ]

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

Открытая группа выпустила X11R6.4 в начале 1998 года спорно, X11R6.4 отошел от традиционных либеральных условий лицензирования, как Open Group пыталась обеспечить финансирование для развития X, и в частности , цитируется XFree86 не вносит значительный вклад в X. [ 22] Новые условия сделали бы X больше не бесплатным программным обеспечением : с нулевой стоимостью для некоммерческого использования, но с оплатой в противном случае. После того, как XFree86, казалось, был готов к разветвлению , [23] Open Group повторно лицензировала X11R6.4 под традиционной лицензией в сентябре 1998 года. [24] Последним релизом 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. [25]

В мае 1999 года The Open Group сформировала X.Org. X.Org контролировал выпуск версий X11R6.5.1 и выше. Развитие X в то время стало умирающим; [26] большинство технических инноваций с момента распада X Consortium произошло в проекте XFree86. [27] В 1999 году команда XFree86 присоединилась к X.Org в качестве почетного (бесплатного) члена [28], поощряемого различными производителями оборудования [29], заинтересованными в использовании XFree86 с Linux и в его статусе самой популярной версии. ИКС.

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

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

Наконец, в ответ на спор о лицензировании X11R6.4, XFree86 выпустил версию 4.4 в феврале 2004 года под более строгой лицензией, что многие проекты, основанные на X, сочли неприемлемыми. [41] Добавленный пункт к лицензии был основан на пункте о рекламе исходной лицензии BSD , который был сочтен Free Software Foundation и Debian несовместимым с Стандартной общественной лицензией GNU . [42] Другие группы сочли это противоречащим духу оригинального X. Тео де Раадт из OpenBSD , например, пригрозил форк XFree86, ссылаясь на лицензионные проблемы. [43]Проблема с лицензией в сочетании с трудностями при внесении изменений заставила многих почувствовать, что настало время для форка. [44]

Фонд X.Org [ править ]

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

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

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

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

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

Номенклатура [ править ]

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

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

Ключевые термины [ править ]

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

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

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

История выпусков [ править ]

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

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

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

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

См. Также [ править ]

  • Шрифты Bitstream Speedo
  • Каир (графика)
  • DESQview / X
  • DirectFB
  • Общий графический интерфейс
  • История графического пользовательского интерфейса
  • Список команд Unix
  • Микроокна - Nano-X
  • rio - оконная система для Plan 9
  • SVGALib
  • VirtualGL
  • X / GEM
  • Названия цветов X11
  • Xgl
  • Xmark

Заметки [ править ]

  1. ^ Дженнифер Г. Штайнер; Дэниел Э. Гир-младший (21 июля 1988 г.). «Сетевые службы в среде Афины». Материалы Зимней 1988 Usenix конференции . CiteSeerX  10.1.1.31.8727 .
  2. ^ a b «Катастрофа X-Windows» . Art.Net . Проверено 10 ноября 2009 года .
  3. Re: X is painful 15 ноября 1996 г.
  4. ^ "Косатка" . wiki.gnome.org . 24 ноября 2011 . Проверено 7 ноября 2012 года .
  5. ^ «ATK - Набор инструментов доступности» . developer.gnome.org . Проверено 7 ноября 2012 года .
  6. ^ «Доступность KDE» . KDE eV . Проверено 6 января 2013 года .
  7. ^ Вычисления SNAP и система X Window. Архивировано 26 июня 2010 г. на Wayback Machine 2005 (раздел 4.6, программа xmove ).
  8. An LBX Postmortem, 24 января 2001 г.
  9. ^ Документация XFree86 расширения MIT-SHM, 14 мая 2009 г.
  10. ^ Почему Apple не использовала X для оконной системы 19 августа 2007 г.
  11. ^ Darxus (27 ноября 2010). « » Прошел «патч для нуво - X под Wayland» . Можно запустить X.org как клиент wayland, без рут или без рут, если у вас есть видеокарта Intel.
  12. ^ Diavatis, Alex (11 июня 2013). «Wayland в Raspberry Wayland в GNOME» . Мир Гнома . Архивировано 15 июня 2013 года.CS1 maint: неподходящий URL ( ссылка )
  13. ^ "MirSpec - Ubuntu Wiki" . Wiki.ubuntu.com. Архивировано из оригинального 17 июня 2013 года . Проверено 6 марта 2013 года .
  14. ^ "Canonical Mir Datasheet" (PDF) . 20 декабря 2018.
  15. ^ DRI для консолей с кадровым буфером, 15 декабря 2009 г.
  16. ^ «Дебют X» . Талисман. 19 июня 1984 . Проверено 7 ноября 2012 года .
  17. Гарфинкель, Симсон Л. (ноябрь – декабрь 1988 г.). «Второе дыхание Афины» (PDF) . Обзор технологий . Проверено 25 января +2016 .
  18. Гарфинкель, Симсон Л. (май – июнь 1989 г.). «Рябь на академическом рынке» (PDF) . Обзор технологий . С. 9–13 . Проверено 25 января +2016 .
  19. ^ Роберт В. Шайфлер и Джеймс Геттис: X Window System: Ядро и протоколы расширения: X версия 11, выпуски 6 и 6.1, Digital Press 1996, ISBN 1-55558-148-X 
  20. ^ Финансирование добровольных проектов свободного программного обеспечения 10 июня 2005 г.
  21. ^ Извлеченные уроки об открытом исходном коде 2000
  22. ^ Заявление X 2 апреля 1998 г.
  23. ^ «XFree86 (TM): пресс-релиз» . 6 декабря 1998 года Архивировано из оригинала 6 декабря 1998 года . Проверено 7 февраля +2017 .
  24. ^ Браун, Кристофер. «Пример реализации X11R6.4. Изменения и проблемы» . Веб-страницы Кристофера Брауна . Архивировано из оригинала на 1 июня 2008 года.
  25. ^ Объявление: Модификация базовой лицензии XFree86 ™. Архивировано 7 сентября 2005 года в Wayback Machine 2 февраля 2004 года.
  26. Q&A: X Factor, архивная копия от 14 января 2005 г. в Wayback Machine 4 февраля 2002 г.
  27. ^ Эволюция архитектуры X Server 1999
  28. Призыв к открытому управлению разработкой X. Архивировано 12 февраля 2005 г. в Wayback Machine 23 марта 2003 г.
  29. ^ XFree86 присоединяется к X.Org в качестве почетного члена 1 декабря 1999 г.
  30. Другая частично отредактированная стенограмма телеконференции. Архивировано 12 февраля 2005 г. в Wayback Machine 13 апреля 2003 г.
  31. ^ Keith Packard вопрос архивации 12 февраля 2005 в Wayback Machine 20 марта 2003
  32. ^ Cygwin / XFree86 - больше не связан с XFree86.org 27 октября 2003 г.
  33. О разработке XFree86, 9 января 2003 г.
  34. Приглашение к публичному обсуждению будущего X. Архивировано 12 февраля 2005 г. в Wayback Machine 20 марта 2003 г.
  35. Призыв к открытому управлению разработкой X, заархивированный 12 февраля 2005 г. на Wayback Machine 21 марта 2003 г.
  36. ^ Записка из телеконференции состоялась 2003-3-27 Archived 12 февраля 2005 года в Вайбаке Machine 3 апреля 2003 года
  37. Призыв к открытому управлению разработкой X, заархивированный 22 декабря 2004 г. на Wayback Machine 24 марта 2003 г.
  38. Призыв к открытому управлению разработкой X, заархивированный 6 января 2005 г. в Wayback Machine 23 марта 2003 г.
  39. Обсуждение вопросов. Архивировано 27 декабря 2004 г. в Wayback Machine 14 апреля 2003 г.
  40. ^ Извлеченные уроки об открытом исходном коде 2000
  41. ^ XFree86 4.4: Список отклоняющих дистрибьюторов растет 18 февраля 2004 г.
  42. ^ a b Приложение A: Предостережение о XFree86. Архивировано 5 июня 2002 г. на Wayback Machine 5 июня 2002 г.
  43. Тео де Раадт (16 февраля 2004 г.). "Список рассылки openbsd-misc: лицензия XFree86" . MARC . Архивировано из оригинала 18 января 2019 года . Проверено 8 декабря 2009 года .
  44. X Marks the Spot: Оглядываясь на события X11 за последний год 25 февраля 2004 г.
  45. ^ Геттис, Джеймс; Паккард, Кит (2004). (Ре) Архитектура X Window System (PDF) . Proc. Симпозиум по Linux. 1 .
  46. ^ X11R6.9 и X11R7.0 официально выпущены 21 декабря 2005 г.
  47. ^ Предложение по модуляризации 31 марта 2005 г.
  48. ^ Предлагаемые изменения для X11R7.1 21 апреля 2006 г.
  49. ^ «Текущая версия XFree86®: 4.8.0» . xfree86.org .
  50. ^ X - портативная, прозрачная для сети оконная система Февраль 2005 г.
  51. ^ Ландау, Мэтт (23 апреля 1993 г.). "Re: Асинхронный X Windows?" . Группа новостейcomp.windows.x . Usenet: [email protected] . Проверено 6 марта 2013 года . 
  52. ^ например, «X Windows FAQ» , FAQ для группы новостей Usenet comp.windows.x.
  53. Система X Window: история и архитектура, 1 сентября 1999 г.
  54. XFree86 и X11R6.3, декабрь 1999 г.
  55. ^ The Open Group объявляет о выпуске X Window System X11R6.4, готовой к работе в Интернете, 31 марта 1998 г.
  56. ^ X.Org Foundation выпускает X Window System X11R6.7 7 апреля 2004 г.
  57. ^ Изменения с R6.8 21 октября 2005 г.
  58. ^ Примечания к выпуску X11R7.1 22 мая 2006
  59. ^ The X.Org Foundation выпустила 7.2.0 (также известную как X11R7.2) 15 февраля 2007 г.
  60. ^ Планы выпуска X-сервера версии 1.4 . Проверено 25 августа 2007 года.
  61. ^ "Foundation выпускает X7.4" . X.org . Проверено 10 ноября 2009 года .
  62. ^ "Объявление о выпуске 7.5" . X.org . Проверено 10 ноября 2009 года .
  63. ^ "Wiki - планы выпуска 7.5" . X.org . Проверено 10 ноября 2009 года .
  64. ^ "Объявление о выпуске 7.6" . X.org. 20 декабря 2010 . Проверено 21 декабря 2010 года .
  65. ^ «Думая о катамари 7.6, включая xcb» . Lists.x.org . Проверено 10 ноября 2009 года .
  66. ^ "Wiki - планы выпуска 7.6" . X.org . Проверено 21 декабря 2010 года .
  67. ^ "[ОБЪЯВЛЕНИЕ] X11R7.7" . Lists.x.org . Проверено 7 июня 2012 года .
  68. ^ "Выпуски / 7.7" . X.org . Проверено 7 июня 2012 года .
  69. ^ "Выпуски / 7.8" . X.org . Проверено 6 мая 2014 .

Ссылки [ править ]

  • Джеймс Геттис , Филип Л. Карлтон, Скотт А. МакГрегор , « Система X Window, версия 11 » ( PDF ), Практика и опыт работы с программным обеспечением (10 декабря 1990 г.)
  • Хания Гаевска, Марк С. Манассе и Джоэл МакКормак, « Почему X не является нашей идеальной оконной системой » ( PDF ), Программное обеспечение - Практика и опыт, том 20, выпуск S2 (октябрь 1990 г.)
  • Линда Муи и Эрик Пирс, X Window System Volume 8: X Window System Administrator's Guide for X11 Release 4 and Release 5, 3rd edition (O'Reilly and Associates, июль 1993; ISBN в мягкой обложке 0-937175-83-8 ) 
  • Катастрофа X-Windows ( Справочник UNIX-HATERS )
  • Роберт В. Шайфлер и Джеймс Геттис: X Window System: Ядро и протоколы расширения: X версия 11, выпуски 6 и 6.1 , Digital Press 1996, ISBN 1-55558-148-X 
  • Эволюция архитектуры X-сервера ( Кейт Паккард , 1999 г.)
  • Средства к X для Linux: интервью с Дэвидом Доусом с XFree86.org (Мэтью Арнисон, CAT TV, июнь 1999 г.)
  • Извлеченные уроки об открытом исходном коде ( Джим Геттис , USENIX 2000 , рассказ об истории X)
  • О тезисе о том, что X является большим / раздутым / устаревшим и его следует заменить (Кристофер Б. Браун)
  • Дорожная карта развития настольных технологий с открытым исходным кодом (Джим Геттис, 9 декабря 2003 г.)
  • X Marks the Spot: Оглядываясь на события X11 за последний год (Оскар Бойкин, OSNews , 25 февраля 2004 г.)
  • Получение X от оборудования (Кейт Паккард, выступление на Оттавском симпозиуме по Linux , июль 2004 г. )
  • Почему Apple не использовала X для оконной системы (Майк Пакетт, Apple Computer)
  • X Man Page (последнее посещение - 2 февраля 2007 г.)
  • Геттис, Джим (2005). «Вычисления SNAP и система X Window». CiteSeerX  10.1.1.109.3314 . Цитировать журнал требует |journal=( помощь )

Внешние ссылки [ править ]

  • Официальный сайт