X Window System

редактировать
оконная система для отображения растровых изображений в UNIX-подобных систем

X Window System
Современный пример графического пользовательского интерфейса с использованием X11 и KDE Plasma 5.16 Современный пример графического интерфейса пользователя с Использование X11 и KDE Plasma 5.16
Автор (ы) исходного текста Project Athena
Разработчик (и) X.Org Foundation
Первоначальный выпускиюнь 1984 г.; 36 лет назад (1984-06)
Стабильный выпуск X11R7.7 / 6 июня 2012 г.; 8 лет назад (06.06.2012)
Операционная система Unix, Unix-like, OpenVMS, DOS
Платформа Межплатформенный
ПредшественникW Window System
Тип Оконная система
Лицензия Лицензия MIT
Веб-сайтwww.x. org Измените это на Викиданных

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

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

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

Содержание

  • 1 Назначение и возможности
  • 2 Архитектура программного обеспечения
  • 3 Пользовательские интерфейсы
  • 4 Реализации
    • 4.1 X-терминалы
  • 5 Ограничения и критика
    • 5.1 Проблемы с пользовательским интерфейс
    • 5.2 Проблемы, связанные с доступностью компьютеров
    • 5.3 Сеть
    • 5.4 Разделение клиента и сервера
  • 6 Конкуренты
  • 7 История
    • 7.1 Предшественники
    • 7.2 Происхождение и ранняя разработка
    • 7.3 Консорциум MIT X и X Consortium, Inc.
    • 7.4 The Open Group
    • 7.5 X.Org и XFree86
    • 7.6 The X.Org Foundation
  • 8 Номенклатура
    • 8.1 Ключевые термины
  • 9 История выпуска
  • 10 См. Также
  • 11 Примечания
  • 12 Ссылки
  • 13 Внешние ссылки

Цель и возможности

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

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

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

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

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

Сетевой протокол X основан на примитивах команд X. Этот подход позволяет как 2D, так и (через расширения, такие как GLX) 3D операции клиентского приложения X, которое может работать на другом компьютере, по-прежнему полностью ускоряться на дисплей X-сервера. Например, в классическом OpenGL (до версии 3.0) списки представленных объектов, которые могут быть созданы и полностью сохранены на X-сервере с помощью удаленной клиентской программы X, каждый визуан путем отправки одного glCallList (который) через сеть.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Справочник ненавистников Unix (1994) посвятил целую главу проблемы X. Почему X не является нашей идеальной оконной системой (1990) Гаевской, Манассе и Маккормакомные подробные проблемы в протоколе с рекомендациями по улучшить.

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

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

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

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

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

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

Сеть

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

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

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

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

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

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

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

Конкуренты

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

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

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

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

История

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

Несколько систем отображения растровых изображений предшествовали X. Из Xerox произошли Alto (1973) и Звезда (1981). От Apollo Computer появился Диспетчер дисплея (1981). Из Apple произошли Lisa (1983) и Macintosh (1984). В мире Unix были терминалы Andrew Project (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 г. 0907-EDT (вторник) Я последние пару недель потратил на создание оконной системы для VS100. Общая производительность примерно вдвое выше, чем у W. На данный момент код кажется довольно украным, хотя все еще есть некоторые недостатки исправить. Мы в LCS перестали использовать W и теперь активно создаем приложения на X. Любой, кто использует W, должен серьезно подумать о переключении. Это не самая лучшая оконная система, но я считаю, что это хорошая отправная точка для экспериментов. Прямо сейчас существует интерфейс CLU (и Argus) для X; интерфейс C находится в разработке. Три приложения - это текстовый редактор (TED), интерфейс ввода-вывода Argus и примитивный оконный менеджер. Документации пока нет; кто-нибудь достаточно сумасшедший, чтобы стать волонтером? В конце концов, я могу дойти до этого. Любой, кто заинтересован в демонстрации, может позвонить по телефону NE43-531, хотя вы можете позвонить по номеру 3-1945. Любой, кому нужен код, может прийти с магнитной лентой. Любой, кто интересуется недостатками взлома, не стесняйтесь обращаться к нам.

Электронное письмо, в котором представлен X представлен сообществу Project Athena в MIT в июне 1984 года

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

В этом проекте проблема решена путем создания протокола, который может запустить локальные приложения и обращаться к удаленным ресурсам. В середине 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 PC, но проблемы с чтением невыровненных данных на 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-сервер в качестве устройств для совместной работы в реальном времени, примерно так же, как Virtual Network Computing (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 и X Consortium, Inc.

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

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

Common Desktop Environment

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

The Open Group

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

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

X.Org и XFree86

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

В мае 1999 года Open Group сформировала X.Org. X.Org контролировал выпуск версий X11R6.5.1 и выше. Развитие X в то время стало умирающим; самое техническое нововведение после распада X Consortium произошло в проекте XFree86. В 1999 году команда XFree86 присоединилась к X.Org в качестве почетного (бесплатного) члена, поддерживаемого различными производителями оборудования, заинтересованными в использовании XFree86 с Linux и в его статусе самой популярной версии X.

Автор В 2003 году, когда популярность Linux (и, следовательно, установленная база X) возникла, X.Org оставался неактивным, а активная разработка велась в основном внутри XFree86. Однако внутри XFree86 возникло значительное разногласие. Проект XFree86 страдал от восприятия слишком соборной -подобной модели разработки; разработчики не могут получить доступ к CVS на фиксацию, а поставщики должны быть расширенные наборы патчей. В марте 2003 г. XFree86 изгнала Кейта Паккарда, который присоединился к XFree86 после завершения первоначального консорциума MIT X, со значительным недовольством.

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

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

Фонд X.Org

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

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

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

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

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

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

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

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

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

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

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

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

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

ВерсияДата выпускаНаиболее важные изменения
Старая версия, больше не поддерживается: X1Июнь 1984 г.Первое использование имени «X»; фундаментальные изменения, отличающие продукт от W.
старой версии, больше не поддерживаемой: X6январь 1985 г.Первая версия лицензирована для небольшого числа сторонних компаний.
Старая версия, больше не поддерживается: X9сентябрь 1985 г.Цвет. Первый выпуск под лицензией MIT.
Старая версия, больше не поддерживается: X10ноябрь 1985 г.IBM RT PC, AT (под управлением DOS ) и другие.
Старая версия, больше не поддерживается: X10R2Январь 1986 г.
Старая версия, больше не поддерживается: X10R3Февраль 1986 г.Первый распространяемый выпуск X. Более ранние выпуски требовали лицензии исходного кода BSD, чтобы покрыть изменения кода в init / getty для поддержки входа в систему. uwm сделал стандартный оконный менеджер.
Старая версия, больше не поддерживается: X10R4декабрь 1986 г.Последняя версия X10.
Старая версия, больше не поддерживается: X1115 сентября 1987 г.Первый выпуск текущего протокола.
Старая версия, больше не поддерживается: X11R2Февраль 1988 г.Первый выпуск X Consortium.
Старая версия, больше не поддерживается: X11R325 октября 1988 г.XDM.
Старая версия, больше не поддерживается: X11R422 декабря 1989 г.XDMCP, twm добавлен как стандартный оконный менеджер, улучшения приложений, расширение, новые формы.
Старая версия, больше не поддерживается: X11R55 сентября 1991 г.X386 1.2, PEX, Xcms (управление цветом ), сервер шрифтов, Расширение видео X.
Старая версия, больше не поддерживается: X11R616 мая 1994 г.ICCCM v2.0; Межклиентский обмен; X Session Management; Расширение X Синхронизация; X Расширение изображения ; Расширение XTEST; X вход; X больших запросов; XC-MISC; Изменения XFree86.
Старая версия, больше не поддерживается: X11R6.114 марта 1996 г.Расширение двойного буфера X; Расширение клавиатуры X ; X Расширение записи.
Старая версия, больше не поддерживается: X11R6.2. X11R6.323 декабря 1996 г.Веб-функциональность, LBX. Последний выпуск X Consortium. X11R6.2 - это тег для подмножества X11R6.3 (Broadway) с единственными новыми функциями по сравнению с R6.1 - это XPrint и реализация Xlib вертикального письма и поддержки определяемых символов.
Старая версия, больше не поддерживается: X11R6.431 марта 1998 г.Xinerama.
Старая версия, больше не поддерживается: X11R6.52000Внутренний выпуск X.org; не опубликовано.
Старая версия, больше не поддерживается: X11R6.5.120 августа 2000 г.
Старая версия, больше не поддерживается: X11R6.64 апреля 2001 г.Исправления ошибок, изменения XFree86.
Старая версия, больше не поддерживается: X11R6.7.06 апреля 2004 г.Первый выпуск X.Org Foundation, включающий XFree86 4.4rc2. Полное распространение для конечных пользователей. Удаление XIE, PEX и libxml2.
Старая версия, больше не поддерживается: X11R6.8.08 сентября 2004 г.Прозрачность окна, XDamage, Distributed Multihead X, XFixes, Composite, XEvIE.
Старая версия, больше не поддерживается: X11R6.8.117 сентября 2004 г.Безопасность исправлено в libxpm.
Старая версия, больше не поддерживается: X11R6.8.210 февраля 2005 г.Исправления ошибок, обновления драйверов.
Старая версия, больше не поддерживается: X11R6.9. X11R7.021 декабря 2005 г.XServer 1.0.1, EXA, основной источник рефакторинг кода. Из той же базы исходного кода модульная версия с автоинструментами стала 7.0, а монолитная версия imake была заморожена на 6.9.
Старая версия, больше не поддерживается: X11R7.122 мая 2006 г.XServer 1.1.0, улучшения EXA, KDrive интегрированный, AIGLX, улучшения поддержки ОС и платформы.
Старая версия, больше не поддерживается: X11R7.215 февраля 2007 г.XServer 1.2.0, Удаление LBX и встроенный драйвер клавиатуры, X-ACE, XCB, улучшение автонастройки, очистка.
Старая версия, больше не поддерживается: X11R7.36 сентября 2007 г.XServer 1.4.0, вход hotplug, output hotplug (RandR 1.2), зонды DTrace, поддержка домена PCI.
Старая версия, больше не поддерживается: X11R7.423 сентября 2008 г.XServer 1.5.1, XACE, переработка PCI, ускорение EXA, _X_EXPORT, GLX 1.4, более быстрый запуск и выключение.
Старая версия, больше не поддерживается: X11R7.526 октября 2009 г.XServer 1.7.1, Xi 2, XGE, E- Поддержка EDID, RandR 1.3, MPX, прогнозируемая точка ускорение, DRI2 менеджер памяти, модуль безопасности SELinux, дальнейшее удаление устаревших библиотек и расширений.
Старая версия, больше не поддерживается: X11R7.620 декабря 2010 г.X Server 1.9.3, XCB требование.
Текущая стабильная версия: X11R7.76 июня 2012 г.X-сервер 1.12.2; Расширение синхронизации 3.1: расширение поддержки объекта Fence; Поддержка мультитач Си 2.2; XFixes 5.0: барьеры указателя.
Условные обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск

Вкл. На сайте X.org говорится о перспективах сайта будущих компонентов:

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

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

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

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Примечания

Ссылки

Ссылки

Викискладе есть материалы, связанные с X Window System.
В Викиучебниках есть книга на тему: Руководство по X11
Последняя правка сделана 2021-06-22 06:56:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте