Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

X Window System


X11.svg

План:


Введення

X Window System - віконна система, що забезпечує стандартні інструменти та протоколи для побудови графічного інтерфейсу користувача. Використовується в UNIX-подібних ОС.

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

У X Window System передбачена мережева прозорість: графічні додатки можуть виконуватися на іншій машині в мережі, а їх інтерфейс при цьому буде передаватися по мережі і відображатися на локальній машині користувача (у разі, якщо це дозволено в налаштуваннях). У контексті X Window System терміни "Клієнт" і "сервер" мають незвичне для багатьох користувачів значення: "сервер" означає локальний дисплей користувача (дисплейний сервер), а "клієнт" - програму, яка цей дисплей використовує (вона може виконуватися на віддаленому комп'ютері).

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

X Window System часто називають X11 або просто X (в розмовній мові - "ікси").


1. Клієнт-серверна модель і мережева прозорість

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

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

Ця клієнт-серверна термінологія - користувальницький термінал в якості " сервера "і віддалені програми в якості" клієнтів "- часто заплутує нових користувачів X, так як зазвичай ці терміни мають зворотні значення. Але X Window System приймає точку зору програми, а не кінцевого користувача апаратури: локальний дисплей надає послуги відображення графіки програмами і тому виступає в ролі сервера. Дистанційні програми використовують ці послуги і тому відіграють роль клієнтів.

Протокол, за допомогою якого спілкуються сервер і клієнт, є прозорим для мережі : клієнт і сервер можуть перебувати як на одній і тій же машині, так і на різних. Зокрема, вони можуть працювати на різних архітектурах під управлінням різних операційних систем - результат буде однаковим. Клієнт і сервер можуть навіть безпечно взаємодіяти через Інтернет допомогою тунелювання з'єднання крізь зашифрований мережний сеанс.

Щоб запустити віддалену клієнтську програму, що виводить графіку на локальний X-сервер, користувач зазвичай відкриває емулятор терміналу і підключається до віддаленої машині за допомогою telnet або SSH. Потім він віддає команду, яка вказує дисплей, на який слід виводити графіку (наприклад, export DISPLAY= [имя компьютера пользователя] :0 при використанні bash). Нарешті, користувач запускає клієнтську програму. Вона підключиться до локального X-сервера і буде відображати графіку на локальний екран і приймати введення від локальних пристроїв введення. Інший варіант - використовувати невелику допоміжну програму, яка підключається до віддаленої машині і запускає на ній потрібне клієнтське додаток.

Використання віддалених клієнтів може бути корисно, наприклад, у таких ситуаціях:

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

2. Принципи побудови X

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

  • Додавай нову функціональність тільки в тому випадку, якщо без неї не можна завершити якесь реальне додаток.
  • Вирішити, чим система не є, настільки ж важливо, як вирішити, чим вона є. Не намагайся задовольнити всі мислимі потреби; замість цього зроби систему розширюваної, щоб нові потреби могли бути задоволені сумісним чином.
  • Гірше узагальнення одного прикладу може бути тільки узагальнення взагалі без прикладів.
  • Якщо проблема не зрозуміла до кінця, можливо, краще не вирішувати її зовсім.
  • Якщо ти можеш добитися 90 відсотків потрібного ефекту, витративши всього 10 відсотків сил, використовуй більш просте рішення.
  • Ізолює складні місця як можна сильніше.
  • Забезпечуй механізм, а не політику. Зокрема, політика інтерфейсу користувача повинна бути в руках клієнтів.

З тих пір проект X, в основному, дотримувався цих принципів. Демонстраційна реалізація розробляється з розрахунком на розширення і поліпшення, в той же час вона залишається майже повністю сумісною з протоколом 1987.


3. Інтерфейси користувача

KDE 4.6 в середовищі X Window System.
GNOME 2.20 в середовищі X Window System.
X Window System на Mac OS X

X Window System навмисно не визначає, як повинен виглядати інтерфейс користувача програми - кнопки, меню, заголовки вікон і т. д. Ці питання вирішуються на рівні віконних менеджерів, інструментаріїв елементів інтерфейсу, середовищ робочого столу і на рівні окремих додатків. З цієї причини візуальне уявлення X-інтерфейсів зазнало величезних змін з плином часу.

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

Багато користувачів використовують X разом з повною середовищем робочого столу, яка включає в себе віконний менеджер, різні додатки і єдиний стиль інтерфейсу. Найбільш популярні середовища робочого столу - GNOME і KDE. У стандарті Single UNIX Specification вказана середу CDE. Проект freedesktop.org намагається забезпечити взаємодію між різними середовищами, а також компоненти, необхідні для конкурентоспроможного робочий стіл на основі X.


4. Реалізації

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

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

X11.app виконується без кореневого вікна на Mac OS X. У середовищі X запущений графічний редактор GIMP.

Хоча X Window System найчастіше асоціюється з UNIX, X-сервери можуть також існувати всередині інших графічних середовищ. OpenVMS - операційна система компанії Hewlett-Packard - в якості стандартного середовища робочого столу використовує версію X разом з CDE, відому як DECwindows. До складу операційних систем Mac OS X 10.3 (Panther) і вище від Apple входить X11.app, заснована на XFree86 4.3 та X11R6.6, з більш повною інтеграцією в Mac OS X.

Cygwin / X виконується без кореневого вікна на Microsoft Windows XP. X-додатки (xeyes, xclock, xterm) працюють на одному екрані зі звичайними додатками Windows (Дата / Час, Калькулятор).

Microsoft Windows не включає в себе підтримку X, але існують численні сторонні реалізації: як вільні (Cygwin / X, Xming, X-Deep/32, WeirdMind, WeirdX), так і пропрієтарні (Xmanager, WiredX, Exceed, X-Win32). Зазвичай вони використовуються для управління віддаленими X-клієнтами.

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


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

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

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

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


5. Розширення

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

5.1. DDC

VESA Display Data Channel (DDC ) - стандарт обміну інформацією між монітором і графічною платою, що дозволяє монітору передавати дані про підтримувані дозволах, частотах розгортки, виробнику монітора і т. д. Модуль DDC підтримує версії 1 і 2 специфікації DDC. Відповідно до отриманих даних він встановлює основні параметри екрану або попереджає про невідповідність заданих користувачем параметрів.


5.2. RANDR

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

5.3. XRender

X Rendering Extension надає функції для суміщення і виведення зображень на екран. Дозволяє обрізати зображення, накладати маску з квітам з використанням альфа-каналу, використовувати різні фільтри, підготовляти й виводити текстову інформацію, а також відображати основні геометричні фігури.

5.4. Shape

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

5.5. Xinerama

Розширення Xinerama дозволяє представити безліч моніторів як один екран. З його допомогою можна виводити узгоджене зображення на великі екрани, складені з багатьох моніторів. Однак багато з існуючих на даний момент віконних менеджерів не підтримують або не повністю підтримують специфікації Xinerama і тому показують неадекватне зображення при використанні даного розширення.

5.6. Xv

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


6. Обмеження і критика X

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

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

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

Багато нинішніх реалізації X управляють відеоапаратурою безпосередньо. Нестійкий X-сервер може зробити дисплей непридатним до використання навіть в тих випадках, коли сама операційна система продовжує нормально функціонувати; при цьому може знадобитися перезавантаження всієї системи. Технологія Direct Rendering Infrastructure (DRI) покликана усунути цю проблему.


6.2. Функції інтерфейсу користувача

X Window System навмисно не включає в себе специфікації інтерфейсу користувача, так само як і більшої частини межпрограммного взаємодії. З цієї причини виникли дуже сильно відрізняються один від одного інтерфейси, а також додатки, не завжди правильно працюють один з одним. Існує специфікація взаємодії клієнтів ICCCM, але вона відома як важка для правильної реалізації. Подальші спроби стандартизації - такі як інструментарій Motif і середу CDE - не виправили становища. Все це заважає як користувачам, так і програмістам. [5] В даний час розробники зазвичай домагаються єдиного стилю в додатках, орієнтуючись на одну конкретну середовище робочого столу або на конкретний інструментарій. Це також дозволяє уникнути безпосередньої роботи з ICCCM.

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

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


6.3. Мережа

У X Window System немає можливості відключити X-клієнт або сеанс від одного сервера і підключити його до іншого сервера (як в VNC). Робота над додаванням цієї функції в X вже ведеться. Існують обхідні механізми (переглядачі VNC: 0), які роблять екран поточного X-сервера доступним через VNC. Або можна використовувати підключення X-клієнта до проксірующему X-сервера (xpra, guievict, xmove, lbxproxy).

Приклад тунелювання додатка X11 поверх SSH.

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

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

За ідеологією X Window System вся отрісовка елементів вікон проводиться X-сервером. Але, на сьогоднішній день було створено достатньо багато додатків (в основному використовуючи такі бібліотеки як GTK + та Qt) виробляють отрисовку елементів на стороні клієнта і передають ці відмалювати елементи вже як малюнок X сервера. При цьому до каналів мережі пред'являються підвищені вимоги по пропускній здатності.

Поточні версії Windows і Mac OS X мають внутрішній поділ графічної підсистеми, схоже на клієнт-серверне поділ в X, і мають приблизно ті ж вимоги до ресурсів, що X з KDE або GNOME. Останнє - дуже спірне твердження, наприклад, завантаження ЦП з боку X сервера значно перевищує навантаження процесора з боку графічної підсистеми Windows. Споживання пам'яті також помітно вище. Велика частина накладних витрат в X тепер доводиться на затримку при передачі даних по мережі між клієнтом і сервером. Існує поширена помилка, згідно з яким при локальному використанні X Window System її мережеві можливості (непотрібні в даному випадку) негативно позначаються на продуктивності. Насправді сучасні реалізації X використовують в такому випадку локальні сокети і загальну пам'ять (напр. MIT-SHM), вимагаючи лише дуже незначних накладних витрат.


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

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

Вироблялися й спроби вирішити проблеми X шляхом повної її заміни; зокрема - проекти Berlin / Fresco і Y Window System. Однак ці проекти не отримали практично ніякого поширення. На даний момент мається розвивається проект, спрямований на зниження системних вимог - MicroXwin. X.org Foundation займається розвитком нового протоколу Wayland, який прийде на зміну X11. Wayland планується задіяти в Ubuntu 13.04 і Fedora 18.

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

Є й інші способи домогтися мережевий прозорості графічних служб:

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

8. Історія

8.1. Попередники

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

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


8.2. Витоки та ранні розробки

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

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

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

У другому кварталі 1985 року в X була реалізована підтримка квітів для роботи під DEC VAXstation -II/GPX. Ця версія стала відома як версія 9. Раніше MIT ліцензував X6 деяким стороннім групам за плату. Однак тепер було вирішено поширювати X9 і майбутні версії вільно - на умовах, які отримали назву ліцензії MIT. X9 з'явилася у вересні 1985 року.

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

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

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


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

DECwindows CDE в OpenVMS 7.3-1

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

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


8.4. The Open Group

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

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


8.5. X.Org і XFree86

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

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

X.Org і XFree86 почали обговорювати реорганізацію, щоб забезпечити повноцінну розробку X. [18] [19] [20] Джим Геттіс наполягав на переході до відкритої моделі розробки принаймні з 2000 року. [9] Геттіс, Паккард і інші почали докладно обговорювати зміни, які потрібно внести для переходу до ефективної відкритій розробці X.

Аж до 2003, поки популярність Linux (і, як наслідок, поширеність X) зростала, X.Org не діяла [21], і основна розробка відбувалася в XFree86. Проект XFree86 страждав від занадто закритою моделі розробки: програмісти не могли отримати доступ на запис у CVS -репозиторій, і постачальникам доводилося підтримувати великі набори патчів. [22] У березні 2003 року організація XFree86 виключила Кейта Паккарда, який приєднався до XFree86 після розпаду Консорціуму X MIT; зроблено це було у досить недружньої обстановці. [23] [24] [25]

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


8.6. Фонд X.Org Foundation

На початку 2004 представники X.Org і freedesktop.org заснували фонд X.Org Foundation. The Open Group передала йому управління доменним ім'ям x.org. Це стало корінною зміною в розробці X. У той час як розпорядники X з 1988 року (включаючи попередню X.Org) були організаціями постачальників, X.Org Foundation був заснований самими розробниками програмного забезпечення, і в ньому використовувалася відкрита модель розробки, що спирається на вклад ззовні. Було відкрито членство для приватних осіб, а корпоративне членство представлено у вигляді спонсорства. В даний час фонд X.Org Foundation підтримується декількома великими корпораціями, такими як Hewlett-Packard і Sun Microsystems.

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

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


9. Подальші розробки

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

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

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


10. Найменування

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

11. Історія випусків

Версія Дата випуску Основні зміни
X1 Червень 1984 Вперше використовується назва "X". Фундаментальні зміни, що відрізняють продукт від W.
X6 Січень 1985 Перша версія, ліцензована кільком зовнішнім компаніям.
X9 Вересень 1985 Підтримка кольорів. Перший випуск на умовах ліцензії MIT.
X10 кінець 1985 IBM RT / PC, AT (під управлінням DOS) та інші.
X10R2 Січень 1986
X10R3 Лютий 1986 Перший випуск за межі MIT. uwm стає стандартним віконним менеджером.
X10R4 Грудень 1986 Остання версія X10.
X11 15 вересня 1987 Перший випуск нинішнього протоколу.
X11R2 Лютий 1988 Перший випуск під начальством Консорціуму X MIT. [31]
X11R3 25 жовтня 1988 XDM.
X11R4 22 грудня 1989 XDMCP; twm стає стандартним віконним менеджером; поліпшення в додатках; розширення Shape; нові шрифти.
X11R5 5 вересня 1991 PEX; Xcms (управління кольором); сервер шрифтів; X386; Розширення Xvideo.
X11R6 16 травня 1994 ICCCM версії 2.0; Inter-Client Exchange; X Session Management; розширення X Synchronization; розширення X Image; розширення XTEST; X Input; X Big Requests; XC-MISC; зміни в XFree86.
X11R6.1 14 березня 1996 Розширення X Double Buffer; розширення X keyboard; розширення X Record.
X11R6.2
X11R6.3 (Broadway)
23 грудня 1996 Функціональність WWW; LBX. Останній випуск під керівництвом X Consortium. X11R6.2 - це позначення підмножини X11R6.3, в якому єдиними відмінностями від R6.1 є Xprint і реалізація в Xlib вертикального письма та підтримки символів, що задаються користувачами. [32]
X11R6.4 31 березня 1998 Xinerama. [33]
X11R6.5 Внутрішній випуск X.Org; не став доступним широкій публіці.
X11R6.5.1 20 серпня 2000
X11R6.6 4 квітня 2001 Виправлення багів; зміни в XFree86.
X11R6.7.0 6 квітня 2004 Перша версія X. Org Server від фонду X.Org Foundation як форк від XFree86 4.4 RC2. Основним приводом для цього послужило незгоду деяких учасників проекту з новою ліцензією XFree86 4.4. Багато хто з колишніх розробників XFree86 пізніше приєдналися до проекту X.Org Server.

Видалення XIE, PEX і libxml2. [34]

X11R6.8.0 8 вересня 2004 Прозорість вікон; XDamage; Distributed Multihead X; XFixes; Composite; XEvIE.
X11R6.8.1 17 вересня 2004 Усунення вразливості в libxpm.
X11R6.8.2 10 лютого 2005 Усунення багів, поновлення драйверів.
X11R6.9
X11R7.0
21 грудня 2005 Вперше була додана модульна система зборки. В 6.9.0 все ще використовувалася стара система зборки Imake, в той час як системи 7.0.0 вже використала Autotools. У підсумку з одного набору вихідних кодів вийшли модульна версія 7.0 і монолітна версія 6.9.

EXA, значний рефакторинг коду. [35]

X11R7.1 22 травня 2006 Удосконалення EXA; інтеграція Kdrive; AIGLX; покращення в підтримці різних ОС і платформ. [36]
X11R7.2 15 лютого 2007 Видалення LBX [37] і вбудованого драйвера клавіатури, X-ACE, XCB, поліпшення AutoConfig.
X11R7.3 6 вересня 2007 X11R7.3: XServer 1.4, автовизначення пристроїв за допомогою HAL, використання DTrace, підтримка PCI -доменів.

Xorg server 1.4 - see Server14Branch for more details. Highlights:

  • RandR 1.2: RandR 1.2 offers output hotplug, as well as on-the-fly output reconfiguration and mode switching.
  • Input hotplug: Input hotplug allows hotplugging of input devices, and also adds enhanced support for touchscreens and tablets, through either HAL or D-Bus.
  • KDrive: Numerous enhancements have been made to the KDrive codebase, including better support for multiple input devices.
  • DTrace: When running on OpenSolaris, DTrace support is available in the X server, allowing detailed accounting of operations inside the server.
  • EXA: A great deal of work has been done on the EXA framework to make it more usable.
  • New applications: xbacklight
  • New drivers: xf86-video-glide, xf86-video-vermilion
  • New man pages for API's: libXinerama, libXcomposite, XKB functions in libX11, Xtest functions in libXtst
  • Support for font catalogue directories in font path
  • xdm: Xft support added. [38]
X11R7.4 23 вересня 2008 XServer 1.5.1, XACE, переробка PCI, оптимізації EXA, _X_EXPORT, GLX 1.4, прискорені запуск і виключення. [39]
X11R7.5 26 жовтня 2009 XServer 1.7.0 [40], Xi 2, XGE, підтримка E- EDID, RandR 1.3, MPX, передбачуване прискорення покажчика, використання менеджера пам'яті DRI2, використання SELinux, видалення застарілих бібліотек і розширень.
X11R7.6 20 грудня 2010 [41] XServer 1.9.0, перехід від управління пристроями з підсистеми HAL (Hardware Abstraction Layer) на використання бібліотеки udev, можливість створення файлів конфігурації для окремих пристроїв, помінялися ABI інтерфейсів, відповідальних за ввід-вивід відео, і деякі розширення [42] [43].
X11R7.7 6 червня 2012 [44] XServer 1.12, підтримка мультитач, покращений процес складання документації із DocBook XML і початкова підтримка GLX і XKB в XCB.

Примітки

  1. Licenses - ftp.x.org/pub/X11R7.0/doc/html/LICENSE.html (Англ.) . X.Org Foundation (березень 2004). Читальний - www.webcitation.org/5w60CuY8X з першоджерела 29 січня 2011.
  2. Джим Геттіс. Лист в форум XFree86 - www.xfree86.org/pipermail/forum/2004-February/003945.html. Читальний - www.webcitation.org/5w60DiCeU з першоджерела 29 січня 2011.
  3. Дон Хопкінс. The X-Windows Disaster - www.art.net/ ~ hopkins / Don / unix-haters / x-windows / disaster.html (Англ.) . The UNIX-HATERS Handbook. Читальний - www.webcitation.org/5w60ESwzu з першоджерела 29 січня 2011.
  4. Ханя Жаевска, Марк Менес, Джоел МакКормак Why X Is Not Our Ideal Window System - www.std.org/ ~ msm / common / protocol.pdf / / Software - Practice & Experience. - 1990. - Т. 20. - № S2.
  5. Re: X is painful - lists.debian.org/debian-user/1996/11/msg00637.html
  6. Xprint Frequently Asked Questions - xprint.mozdev.org / docs / Xprint_FAQ.html # contra_xprint (Англ.) . Читальний - www.webcitation.org/5w60FEF8f з першоджерела 29 січня 2011.
  7. airWRX - SVG Terminal - networkimprov.net / airwrx / awscene.html
  8. mako. Financing Volunteer Free Software Projects - www.advogato.org/article/844.html (Англ.) (15 червня 2005). Читальний - www.webcitation.org/5w60G1s6K з першоджерела 29 січня 2011.
  9. 1 2 Джим Геттіс. Lessons Learned about Open Source - www.usenix.org/publications/library/proceedings/usenix2000/invitedtalks/gettys_html/Talk.htm (Англ.) (2000). Читальний - www.webcitation.org/5w60GqeY4 з першоджерела 29 січня 2011.
  10. Shaleh. xstate - old.lwn.net/lwn/1998/0409/xstate.html (Англ.) (2 квітня 1998). (Недоступна посилання - історія - web.archive.org / web / * / http://old.lwn.net/lwn/1998/0409/xstate.html)
  11. Меттью Арнісон. The means to an X for Linux: an interview with David Dawes from XFree86.org - www.cat.org.au / maffew / cat / xfree-dawes.html (Англ.) (Червень 1999). (Недоступна посилання - історія - web.archive.org / web / * / http://www.cat.org.au/maffew/cat/xfree-dawes.html)
  12. Крістофер Браун. X11R6.4 Sample Implementation Changes and Concerns - cbbrowne.com/info/x11r6.4.html (Англ.) . (Недоступна посилання - історія - web.archive.org / web / * / http://cbbrowne.com/info/x11r6.4.html)
  13. [Forum] Re: Announcement: Modification to the base XFree86 license - www.xfree86.org/pipermail/forum/2004-February/003945.html
  14. Роберт Мітчелл. Q & A: The X Factor - www.computerworld.com/softwaretopics/software/appdev/story/0, 10801,67861,00. html (Англ.) . ComputerWorld (4 лютого 2002). Читальний - www.webcitation.org/6194iIx8Y з першоджерела 23 серпня 2011.
  15. Кейт Паккард. The Evolution of the X Server Architecture - keithp.com / ~ keithp / talks / Xarchitecture / Talk.htm (Англ.) (1999). Читальний - www.webcitation.org/5w60Hbgpe з першоджерела 29 січня 2011.
  16. [Forum] A Call For Open Governance Of X Development - xfree86.org/pipermail/forum/2003-March/000418.html
  17. XFree86 joins X.Org as Honorary Member - slashdot.org / article.pl? sid = 99/12/01/1342251 (Англ.) . Slashdot (1 грудня 1999). Читальний - www.webcitation.org/6194jCsqa з першоджерела 23 серпня 2011.
  18. [Forum] A Call For Open Governance Of X Development - www.xfree86.org/pipermail/forum/2003-March/000554.html
  19. [Forum] A Call For Open Governance Of X Development - www.xfree86.org/pipermail/forum/2003-March/002415.html
  20. [Forum] Discussing issues - xfree86.org/pipermail/forum/2003-April/003144.html
  21. [Forum] Another teleconference partial edited transcript - xfree86.org/pipermail/forum/2003-April/003127.html
  22. mharris. Diary for mharris - www.advogato.org/person/mharris/diary.html?start=5 (Англ.) (9 січня 2003). Читальний - www.webcitation.org/5w60IOpdC з першоджерела 29 січня 2011.
  23. [Forum] Invitation for public discussion about the future of X - www.xfree86.org/pipermail/forum/2003-March/001997.html
  24. [Forum] A Call For Open Governance Of X Development - www.xfree86.org/pipermail/forum/2003-March/002165.html
  25. [Forum] Notes from a teleconference held 2003-3-27 - www.xfree86.org/pipermail/forum/2003-April/003016.html
  26. 1 2 Девід Уілер. The Cautionary Tale of XFree86 - www.dwheeler.com / essays / gpl-compatible.html # xfree86 (Англ.) . Make Your Open Source Software GPL-Compatible. Or Else (16 лютого 2005). (Недоступна посилання - історія - web.archive.org / web / * / http://www.dwheeler.com/essays/gpl-compatible.html # xfree86)
  27. X11R6.9 and X11R7.0 Officially Released - xorg.freedesktop.org/wiki/PressReleases/X11R6970Released (Англ.) (21 грудня 2005). Читальний - www.webcitation.org/6194jnOIn з першоджерела 23 серпня 2011.
  28. Пол Андерсон, Алан Куперсмит, Егберт Ейк, Адам Джексон, Кевін Мартін, Кейт Паккард. Modularization Proposal - wiki.x.org / wiki / ModularizationProposal (Англ.) (2005). Читальний - www.webcitation.org/5w60J9Pa8 з першоджерела 29 січня 2011.
  29. Proposed Changes for X11R7.1 - xorg.freedesktop.org/wiki/ChangesForX11R71 (Англ.) . Читальний - www.webcitation.org/5w60JxTps з першоджерела 29 січня 2011.
  30. Кейт Паккард. Getting X Off The Hardware - keithp.com / ~ keithp/talks/xserver_ols2004 / (Англ.) (2004). Читальний - www.webcitation.org/5w60Ki1B7 з першоджерела 29 січня 2011.
  31. The X Window User HOWTO: Getting Started - www.linuxdocs.org/HOWTOs/XWindow-User-HOWTO-2.html (Англ.) . Читальний - www.webcitation.org/5w60LSQiw з першоджерела 29 січня 2011.
  32. XFree86 and X11R6.3 - www.xfree86.org/3.3.6/RELNOTES1.html (Англ.) . Release Notes for XFree86 3.3.6. XFree86 Project (31 грудня 1999). Читальний - www.webcitation.org/5w60MJ6Qo з першоджерела 29 січня 2011.
  33. X Press Release - X11R6.4 - www.opengroup.org/tech/desktop/Press_Releases/x11r6.4ga.htm (Англ.) . The Open Group (31 березня 1998). Читальний - www.webcitation.org/5w60N2yxR з першоджерела 29 січня 2011.
  34. X.Org Foundation releases X Window System X11R6.7 - lwn.net/Articles/79302 / (Англ.) . LWN (7 квітня 2004). Читальний - www.webcitation.org/5w60NsHOQ з першоджерела 29 січня 2011.
  35. ChangesSince68 - xorg.freedesktop.org/wiki/ChangesSince68 (Англ.) . X.Org Wiki. Читальний - www.webcitation.org/6194kX0CP з першоджерела 23 серпня 2011.
  36. Release Notes for X11R7.1 - ftp.x.org/pub/X11R7.1/doc/RELNOTES.html (Англ.) . X.Org Foundation (22 березня 2006). Читальний - www.webcitation.org/6194l2hxO з першоджерела 23 серпня 2011.
  37. ChangesForX11R72 - xorg.freedesktop.org/wiki/ChangesForX11R72 (Англ.) . X.Org Wiki. Читальний - www.webcitation.org/6194lW5Rh з першоджерела 23 серпня 2011.
  38. 7.3 Release notes - www.x.org/wiki/Releases/7.3 (Англ.) . X.Org Foundation. Читальний - www.webcitation.org/61965J9p8 з першоджерела 23 серпня 2011.
  39. X.Org Foundation Releases X7.4 - x.org/wiki/Releases/7.4
  40. X.Org Foundation Releases X7.5 - x.org/wiki/Releases/7.5
  41. X.Org Wiki - Other/Press/X11R76Released - www.x.org/wiki/Other/Press/X11R76Released
  42. X.Org Wiki - Server18Branch - xorg.freedesktop.org/wiki/Server18Branch
  43. X.Org Wiki - Server19Branch - xorg.freedesktop.org/wiki/Server19Branch
  44. [ANNOUNCE] X11R7.7 - lists.x.org/archives/xorg-announce/2012-June/001977.html

Література

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

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
System of a Down
Blue System
Distributed File System
Scandinavian Airlines System
IBM System/360
IBM System/370
Google File System
Nintendo Entertainment System
Nullsoft Scriptable Install System
© Усі права захищені
написати до нас
Рейтинг@Mail.ru