The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проблемы X11 и их решения в Wayland "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Второй уровень иерархии тем в форуме реализован через вкладку "Показ ключевых тем".
. "Проблемы X11 и их решения в Wayland " +3 +/
Сообщение от Zenitur (ok), 10-Июн-13, 15:37 
> Мы потратили последние десять лет на «исправление» X с помощью оборачивания его расширениями и плагинами. Однако, X имеет минимальную поддержку версионирования расширений.

Говорят, Wayland вообще не расширяем.

> X имеет четыре подсистемы ввода: базовый протокол X11, Xinput 1.0, Xinput 2.0, Xinput 2.2. Xinput 1.0 канул в Лету, но оставшиеся три остаются взаимосвязанными. Daniel Stone описал это так: «Есть всего три человека, которые действительно понимают, как подсистемы ввода уживаются вместе... И я не думаю, что являюсь одним из них».

Звучит так, как будто Xi2 написан в 1990-м. Нет, в 2009-м. Если эти люди не могут написать с нуля Xi для иксов, то у них и для Wayland не получится.

> Подсистема ввода в Wayland очень похожа на Xinput 2.2 ... Примечание от Daniel: как один из авторов мультитача в X, я считаю себя достаточно компетентным, чтобы назвать его кошмарным.

Ну я же говорил.

> Много лет назад у кого-то появилась идея «механизм, а не алгоритм». Фраза является отсылкой к тому, что X имеет свой уникальный API для рисования и собственную библиотеку вроде GTK+ или Qt. ... «Внешний вид толстых линий должен точно соответствовать спецификации, которая обязывает их выглядеть уродливо».

Эм, а где тут что-то плохое?

> X большой и тупой.

По-моему, исчерпывающая аргументация. ВСЕ НА WAYLAND!!!11

А если серьёзно - напомнить для каких компьютеров проектировались X?

> Прежде чем мы (сообщество) начали выкидывать его компоненты и использовать обходные пути, X имел внутри почти полную ОС, включая свой сервер печати и свой бинарный транслятор для ELF, COFF и a.out.

В компьютерной компании женским туалетом пользуется 1% людей. Давайте уберём его, он не нужен!

> Композитинг и синхронизация окон. Разработчики научили X композитингу с помощью Composite Extension. Композитинг хорош для простых случаев, как то: рабочий стол, OpenGL. Но если вы захотите использовать hardware overlays (т.е видео), может случиться катастрофа.

Отправьте багрепорт.

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

Гонять битмапы и на иксах можно.

> «Пожалуйста, создайте мне X.conf. Пожалуйста, используйте его для настройки.» Зачем?!

А что если у меня многомониторная конфигурация? А что если у меня новая NVIDIA, старая NVIDIA и ATi на одном компьютере? Иксы сами не догадаются что сделать.

> Со временем это было исправлено ... параметры по умолчанию подчищены и могут теперь определяться автоматически ... Многие имели проблемы с многомониторными конфигурациями в Linux, ну или хотя бы перенастраивали X после перезагрузки.

Ну сами же себе противоречите. «Конфиг не нужен, это недостаток иксов, надо исправить! Оп-па, два монитора сами не определились, опять недостаток иксов!»

> В течение длительного периода (а может быть и до сих пор) при подключении дополнительного монитора в Linux основной монитор имел композитинг, а дополнительный — нет.

NVIDIA - всё работает.

> Многомониторные конфигурации и гибридная графика (Optimus) отданы клиентам

А Qt с GTK договорятся между собой о том, как им сконфигурировать мониторы? А программистам теперь учить медиаплеер конфигурировать NVIDIA Optimus?

> Бесполезная иерархия окон. В X каждое поле ввода и текстовая надпись имеют своё окно со своим родителем. Никто не знает, какую же функцию выполняет эта иерархия.

Это создаёт проблемы разработчику?

> Отчасти придирка, отчасти разумное беспокойство... В X11 каждая из координат— 2-байтное число со знаком. То есть, на всех ваших дисплеях должно быть не более 32,768 пикселей. При 100dpi это даёт вам 8,3-метровый дисплей. Замечательно... Но вот факты для сравнения: Windows XP имеет 96 DPI, а мой телефон — 320+. Добавьте сюда растущие разрешения и несколько мониторов, и вы увидите, что проблема приближается очень даже быстро.

Выпустите новый X-Server 1.15, где всё будет исправлено. Или отправьте багрепорт.

> Скринсейвер — это окно, которое просит X расположить его поверх всех окон, сделать полноэкранным и отдать весь ввод.

Согласен, проблема.

> Разработчики пытались исправить проблему и сделали спецификацию нового расширения, которое в теории работало. Но когда его попытались реализовать, оказалось, что оно серьёзно ломает модель работы X-сервера. Так что проблема существовала 26 лет и продолжает существовать. Расслабьтесь и получайте удовольствие.

Лично у меня первые MP3 появились в 1998 году (15 лет назад).

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

actkbd (демон на 30 Кб) умеет делать это в иксах - уделал.

> У Wayland нет API для рисования, в обход которого можно было бы работать.

Даже если бы и было, мешало бы кому-нибудь?

> Wayland минималистичен, он не хранит внутри себя псевдо-ОС ради контроля вывода графики.

А кто тогда контролирует? Мама Анархия? Или эта функциональность перекладывается на systemd?

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

А, теперь каждый запущенный на компьютере клиент - псевдо-ОС для контроля вывода графики.

> Qt5 избавилось от модуля qt3support. X всё ещё сопровождает то, что было написано 26 лет назад.

Qt3 можно установить рядом с Qt4 и Qt5, если понадобится. А почему это X сопровождает что-то там? Пример: какие-нибудь Heroes III и Quake II используют функцию X, которая устарела и больше не используется ничем. При этом Heroes III вообще статически собраны и тянут libX11 с собой! В чём проблема выпустить libX11.so.7 и устанавливать в ОС обе этих библиотеки? 6 и 7 версии?

И что тогда получается, слой совместимости с иксами в вайленд - это ещё 20 лет тянуть эти deprecated-расширения?

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

Конечно нет, сделают как я выше написал: для XWayland будет использоваться libX11.so.6, которая не будет развиваться и туда будут вноситься только багфиксы. Так почему бы сейчас это не сделать? libX11.so.6 со всеми её deprecated-функциями дополнять только багфиксами, и её будут использорвать приложения 10-летней давности, а новые приложения компилировать с libX11.so.7, в который внесены все необходимые изменения и нет deprecated-функций?

> Примечание от Daniel: кроме того, вызовы к вейланду — не блокирующие, рисование всего рабочего стола не остановится из-за зависания или очень дорогой операции на стороне одного из клиентов: остановится только этот клиент.

О чём он? Ну вот завис у меня OpenOffice.org. Что-то я не наблюдаю эффекта поцарапанной дискеты или CD-диска в Windows 9x! Всё остальное работает!

> В вейланде — принудительный композитинг ... Лозунг вейланда — «каждый кадр будет идеальным». Каждый пиксель прорисован как должно и расположен где должно, и появляется, когда клиент того потребует.
> Шрифты отданы клиентам.

Я и в иксах так умею.

> В вейланде есть два вида окон: окна верхнего уровня и подповерхности (в основном для проигрывания видео). Причём, в отличие от X, они синхронизируются. При прокрутке страницы с видео в браузере у вас не будет ни разрывов, ни артефактов.

VSync.

> С точки зрения клиентов, вейланд не оперирует глобальными координатами, предпочитая систему отсчёта поверхности для рисования. Счётчик координат 31-битный, то есть каждая поверхность может иметь 2,147,483,648 пикселей как в ширину, так и в высоту.

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

> «В X есть сетевая прозрачность» — её нет. Базовый протокол X и DRI-1 имели сетевую прозрачность, но никто не использует ни то, ни другое. Shared-memory, DRI2 и DRI-3000 не имеют сетевой прозрачности и не работают по сети.

www.linux.org.ru/forum/general/9184431

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проблемы X11 и их решения в Wayland , opennews, 10-Июн-13, 14:22  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру