LINUX.ORG.RU

Ситуация с Wayland: факты о X и Wayland.

 ,


32

7

Это вольный перевод статьи, намедни размещённой на phoronix. Оринальная статья — обзор недостатков, их исправлений и преимуществ между X и Wayland. Её написал Eric Griffith, при участии Daniel Stone, специально для ресурса phoronix. Работа собрана по кусочкам из презентаций Keith Packard, David Airlie, Kristian Høgsberg, из страниц про X11, X12, Wayland в вики и на freedesktop.org, из прямых интервью с разработчиками.

Оригинал выпущен под Creative Commons версия 3, с указанием авторства; перевод доступен на тех же условиях (с указанием на авторов оригинала, как мне кажется).

Недостатки X

Прежде всего автор думает, что преимущества Wayland лучше всего понятны через перспективу недостатков X11. Итак, начнём...

  1. Мы потратили последние десять лет на «исправление» X с помощью оборачивания его расширениями и плагинами. Однако, X имеет минимальную поддержку версионирования расширений.
    • Версионирование ведётся для одного клиента, а не для одного соединения с API расширения; если ваше приложение поддерживает одну версию расширения, а библиотеки — другую, вы не можете предсказать, какая версия расширения будет получена в итоге.
    • Мысленный эксперимент: Rekonq поддерживает Xinput 2.2, библиотеки KDE — Xinput 2.0, а плагин Flash — только базовый X11. Все они будут определять, какая версия подсистемы ввода поддерживается браузером Rekonq, и в результате будет отдана одна версия для работы со всем вводом... И это может быть не та версия, которая имеет всё необходимое.
    • Если вы счастливчик, вы получите минимальную поддерживаемую версию и приложение будет работать хорошо. Если вы не очень удачливый, вы получите максимальную версию и будете посылать бесполезные сообщения между клиентом и X.
  2. X имеет четыре подсистемы ввода: базовый протокол X11, Xinput 1.0, Xinput 2.0, Xinput 2.2. Xinput 1.0 канул в Лету, но оставшиеся три остаются взаимосвязанными. Daniel Stone описал это так: «Есть всего три человека, которые действительно понимают, как подсистемы ввода уживаются вместе... И я бы хотел не быть одним из них».
  3. Много лет назад у кого-то появилась идея «механизм, а не алгоритм». Фраза является отсылкой к тому, что X имеет свой уникальный API для рисования и собственную библиотеку вроде GTK+ или Qt. X определяет низкоуровневые понятия, такие как прямая линия, толстая прямая линия, дуга, окружность, неполноценные шрифты и другие элементы конструктора, бесполезные по отдельности. Примечание от Daniel: «Внешний вид толстых линий должен точно соответствовать спецификации, которая обязывает их выглядеть уродливо».
  4. X большой и тупой. Прежде чем мы (сообщество) начали выкидывать его компоненты и использовать обходные пути, X имел внутри почти полную ОС, включая свой сервер печати и свой бинарный транслятор для ELF, COFF и a.out.
  5. Композитинг и синхронизация окон. Разработчики научили X композитингу с помощью Composite Extension. Композитинг хорош для простых случаев, как то: рабочий стол, OpenGL. Но если вы захотите использовать hardware overlays (т.е видео), может случиться катастрофа. В том же браузере содержимое вкладки и окно flash-плагина обрабатываются отдельно и не синхронизируются, так что остаётся лишь скрестить пальцы в надежде. что разница во времени обработки не будет слишком большой. В результате при прокрутке страницы с играющим видео иногда возникают разрывы и артефакты.
  6. Шрифты. Разработчики пытались перенести шрифты под управление X-сервера с помощью расширения STSF, и предоставить клиентам достаточную информацию, чтобы те могли правильно определить расположение шрифтов на экране. Но количество информации, достаточной для выполнения данной задачи, превышало размер самих шрифтов. В итоге было решено предоставить клиентам полную свободу действий, избавившись от шрифтов на сервере.
  7. Протокол без состояний. Иными словами, X ничего не запоминает.
    • «Пожалуйста, создайте мне X.conf. Пожалуйста, используйте его для настройки.» Зачем?! Со временем это было исправлено: файл конфигурации используется для перезаписи параметров по умолчанию, а сами параметры по умолчанию подчищены и могут теперь определяться автоматически.
    • Многие имели проблемы с многомониторными конфигурациями в Linux, ну или хотя бы перенастраивали X после перезагрузки. Недостаток X в том, что он помнит эти конфигурации только после создания /etc/X11/xorg.conf.d/50-monitors.conf, который скорее всего придётся писать вручную.
    • Мы надеемся, что это было исправлено созданием libkscreen, обёртки над xrandr, которая наконец-то стала запоминать параметры мониторов, используя их уникальный EDID.
    • В течение длительного периода (а может быть и до сих пор) при подключении дополнительного монитора в Linux основной монитор имел композитинг, а дополнительный — нет. Это, возможно, исправлено в RandR1.4, но его автор не может найти убедительных доказательств.
  8. Бесполезная иерархия окон. В X каждое поле ввода и текстовая надпись имеют своё окно со своим родителем. Никто не знает, какую же функцию выполняет эта иерархия. Реальные библиотеки (т.е не основанные на компонентах протокола X11) уже давно выбросили весь этот мусор в окно.
  9. Отчасти придирка, отчасти разумное беспокойство... В X11 каждая из координат— 2-байтное число со знаком. То есть, на всех ваших дисплеях должно быть не более 32,768 пикселей. При 100dpi это даёт вам 8,3-метровый дисплей. Замечательно... Но вот факты для сравнения: Windows XP имеет 96 DPI, а мой телефон — 320+. Добавьте сюда растущие разрешения и несколько мониторов, и вы увидите, что проблема приближается очень даже быстро.
  10. Для X всё является окном, и разных типов окон с его точки зрения нет.
    • Скринсейвер — это окно, которое просит X расположить его поверх всех окон, сделать полноэкранным и отдать весь ввод.
    • Всплывающее окно просит X расположить его в заданной точке и отдать весь ввод.
    • Они конфликтуют: скринсейвер не будет активирован, пока показано всплывающее окно.
    • Наверняка ваши скринсейвер и скринлокер не прокинули хуки во все необходимые библиотеки, распознающие клавиши для управления медиа... Представьте, что вы слушали музыку, работая на ноутбуке, а затем закрыли крышку. Ноутбук уснул, скринсейвер стал активным окном. Как только вы откроете крышку, ноутбук проснётся и музыка загромыхает снова, так что снова закрыть крышку окажется проще, чем вбить проль, затем открыть плеер и поставить его на паузу либо выключить звук.
    • Разработчики пытались исправить проблему и сделали спецификацию нового расширения, которое в теории работало. Но когда его попытались реализовать, оказалось, что оно серьёзно ломает модель работы X-сервера. Так что проблема существовала 26 лет и продолжает существовать. Расслабьтесь и получайте удовольствие.
  11. «Но Eric, если X11 настолько плох, то почему бы не сделать X12 вместо нового протокола?». Ну, формально, это уже сделано. При сохранении его под знаменем X возникает практический недостаток: все, кто беспокоится о X, будут иметь право голоса в разработке следующей версии. С помощью названия «Wayland» этой проблемы можно избежать. Никого ничто не волнует. Это не связанный с X проект, разработчики могут творить с будущим дисплейным сервером всё, что душа пожелает, ну а те, кто беспокоится о X, могут пойти разрабатывать X12.

Лекарство от Wayland (пронумерованы попарно с недостатками X).

  1. Весь протокол версионирован. Каждый слушатель получает именно ту версию, которую он поддерживает, и ничего поверх этого. Никаких случайностей.
  2. Подсистема ввода в Wayland очень похожа на Xinput 2.2, за вычетом всего старья и отношения Master/Slave между источниками ввода. Слушатель получит одну виртуальную клавиатуру, одну виртуальную мышь и один невиртуальный сенсорный ввод. Кошмар под названием «мультитач» в конце концов упорядочен. Примечание от Daniel: как один из авторов мультитача в X, я считаю себя достаточно компетентным, чтобы назвать его кошмарным.
  3. У Wayland нет API для рисования, в обход которого можно было бы работать. Wayland ожидает заполнения клиентом буфера рисования, и его не волнует способ заполнения, если не считать контроля за попытками задеть чужие буфера.
  4. Wayland минималистичен, он не хранит внутри себя псевдо-ОС ради контроля вывода графики. Клиенты принимают на себя этот удар, что хорошо — им не придётся заботиться о сверхдолгом сопровождении обратной совместимости. Qt5 избавилось от модуля qt3support. X всё ещё сопровождает то, что было написано 26 лет назад. Примечание от Daniel: кроме того, вызовы к вейланду — не блокирующие, рисование всего рабочего стола не остановится из-за зависания или очень дорогой операции на стороне одного из клиентов: остановится только этот клиент.
  5. В вейланде — принудительный композитинг. Это не означает, что везде должны быть 3D-эффекты или изгибающиеся окна. Под композитингом мы подразумеваем отсутствие разрывов, необновлённых кусков и проблесков. Лозунг вейланда — «каждый кадр будет идеальным». Каждый пиксель прорисован как должно и расположен где должно, и появляется, когда клиент того потребует.
  6. Шрифты отданы клиентам.
  7. Многомониторные конфигурации и гибридная графика (Optimus) отданы клиентам, вейланду нужен только буфер с пикселями и информация о том, где его расположить.
  8. В вейланде есть два вида окон: окна верхнего уровня и подповерхности (в основном для проигрывания видео). Причём, в отличие от X, они синхронизируются. При прокрутке страницы с видео в браузере у вас не будет ни разрывов, ни артефактов.
  9. С точки зрения клиентов, вейланд не оперирует глобальными координатами, предпочитая систему отсчёта поверхности для рисования. Счётчик координат 31-битный, то есть каждая поверхность может иметь 2,147,483,648 пикселей как в ширину, так и в высоту.
  10. Для обеспечения дополнительной безопасности, ваш скринсейвер и скринлокер являются частью композитора. Кроме того, композитор распознает клавиши управления медиа, так что даже при заблокированном экране можно выключить звук.

Некоторые заблуждения в плане X и Wayland.

  1. «X — это юниксвейно». X обрабатывает печать, управление буферами для рисования, имел свой тулкит, обрабатывал шрифты, имел бинарный транслятор — и всё это помимо других задач.
  2. «В X есть сетевая прозрачность» — её нет. Базовый протокол X и DRI-1 имели сетевую прозрачность, но никто не использует ни то, ни другое. Shared-memory, DRI2 и DRI-3000 не имеют сетевой прозрачности и не работают по сети. В наше время X превратился в синхронный, плохо сделанный VNC. Если бы он был плохо сделанным асинхронным VNC, то может быть мы бы и заставили его работать. Но он не такой: XLib синхронная, а переход на XCB медленный, что делает передачу по сети настоящим кошмаром.
  3. «Разработчики Wayland наступают на те же грабли, что и X11, потому что не знают его» — неверно, потому что большинство разработчиков Wayland являются бывшими разработчиками X11.
  4. «Вейланд требует 3D.» — неверно, он требует только композитинга, так что есть даже бекенд на pixman для программной отрисовки.
  5. «Вейланд не умеет в удалённый доступ» — умеет, и должен справиться с этой задачей лучше чем X, отчасти из-за асинхронности протокола. Скорее всего Wayland станет высокопроизводительной версией VNC, и прототип уже есть. Причём мы ещё ни разу не давали идей по его улучшению, и скорее всего сможем сделать его лучше, если приложим усилия.
  6. «Вейланд нарушает обратную совместимость» — с тех пор как XWayland закончен и принят в основную ветку, у нас должна появиться почти совершенная обратная совместимость, потому что каждое приложение, использующее X, получает маленький X-сервер для дальнейшей работы с ним. Нам известно одно препятствие — трансформации окна, ведь приложение думает, что оно расположено в верхнем правом углу экрана, оттого, что клиентский X-сервер приведён к размерам клиентского окна.

Парочка характерных преимуществ Wayland

  1. «Каждый кадр будет идеальным». Каждый кадр будет представлен в правильном порядке (возможен сброс лишних кадров, но вы не получите кадр 199, затем 205, а затем 200 оттого, что сервер извлёк их в произвольном порядке. Каждый кадр имеет свой timestamp.)
  2. Минималистичный! Мы способствуем славному будущему Wayland путём уменьшения пространства для возможных ошибок.
  3. Бекенды, специфичные для оборудования. Думается, некоторые люди заметили появление бекенда Wayland, предназначенного для Rasberry Pi — он позволяет использовать все особенности этой платформы. Такой подход используется не везде, многие вещи не потребуют бекенда для конкретного оборудования, но неплохо бы иметь возможность сделать доработку, когда потребуется.

P.S. От переводчика: заметно, что в статье мало технических деталей или же ссылок, а лозунги я наоборот вырезал. К слову, о минималистичности: для вейланда уже есть композитор, способный отображать окна в 3d-пространстве на манер quake, но что-то я сомневаюсь в правильной обработке звука в таком 3d. Для игр есть OpenAL, который имеет 3d-координаты, соответствующие координатам OpenGL (синхронизация позиций источников звука и слушателя с позициями объектов и камеры производится программистом). Для вейланда нет ничего подобного OpenAL.

Если же кто-то имеет вопросы к авторам статьи — он может задать их на Phoronix.

>>> Подробности

★★★★

Проверено: maxcom ()
Последнее исправление: Aceler (всего исправлений: 16)

Ответ на: комментарий от Reset

Костыль, да. Но почему-то с ним лучше, чем с тем же VNC, хотя последний вроде не костыль.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> xorg оный юниксвей нарушает аж бегом.

Не нарушает: есть сервер, есть клиент. Целое состоит из отдельных компонентов, которые выполняют свои задачи и выполняют их хороши. Всё по UNIX-Way.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Всякий раз, когда очередной консерватор пытается тормознуть нововведения и кричать, что нокии 3310 достаточно всем, а всякие тачскрины, мультитачи и голосовой ввод отстой без теплых ламповых механических кнопок я недоумеваю, неужели ему не жаль терять ~40% полезной площади экрана на эти самые кнопки

Вот только для телефона достаточно именно того, что есть в нокле 3310. И это правильно. А если забабахать огромный лопатовидный сенсорный экран, ОС поставить с поддержкой установки приложений, современные широкополосные коммуникационные средства впендрюлить, двойную FullHD-камеру 120 FPS с поддерэкой съёмки сразу в стереоскопическом формате, , ИК датчик глубины, GPS, магнитный датчик, барометр, детектор гамма-излучения, гарнитуру в виде маленького сотового телефона к этому 5.5" хозяйству, тритиевую батарею... то это уже вовсе не телефон будет.

Quasar ★★★★★
()
Ответ на: комментарий от no-dashi

А с приходом вяленда значит у guiappname появится коммандострочный режим, либка цепляемая тем же пайтоном, прогу можно будет запустить без вяленда и его композитора, появятся ортогональные острые утилиты, glue язык, всё gui само перестроится на компонентный принцип и появится стандартный IPC?

Нет. Отсюда вывод: неча на зеркало^Wвейланд пенять, коли рожа^Wпрограмма крива.

Я вообще не понимаю смысла наличия сетевых возможностей у графического сервера, если только когда его создавали, не было современного TCP/IP стека.

anonymous
()
Ответ на: комментарий от anonymous

anonymous> Что значит «нет»? Расширение, предоставляющее удаленный доступ, давно есть.

Удалённый доступ и сетевая прозрачность - понятия совершенно разные.

Более того - это «расширение» доступно _только_ в Weston. По сути разработчики вяленда предлагают каждый раз реализовывать свой графический сервер вместо WM.

anonymous> 0,01% пользователей, которые цепляются за какие-то функции не нужные 99,99% остальным - именно они своими выкриками пытаются затормозить прогресс.

Нет. Во-первых несоизмеримо больше, чем 0.01%. Во-вторых - это тормоз деградации. Вяленд - это ни разу не прогресс. А то, что в иксах реализовывается медленно, но верно - это прогресс.

anonymous> Как смеяться над инертностью мышления виндузятников - так все горазды, а как принять новые правила индустрии - так сразу вой.

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

Quasar ★★★★★
()
Ответ на: комментарий от geekless

Идеи не имеют ни малейшего значения. В реальном мире всё держится на тех самых «альфах с ошибками». На тех из них, кто дожил до релиза.

Чтобы была альфа с ошибками, нужна идея.

anonymous
()
Ответ на: комментарий от Quasar

Не нарушает: есть сервер, есть клиент. Целое состоит из отдельных компонентов, которые выполняют свои задачи и выполняют их хороши. Всё по UNIX-Way.

Винда не нарушает принцип Unux-way. Есть ОС, а есть программы. Целое состоит из отдельных компонентов, которые выполняют свои задачи и выполняют их хорошо. Всё по UNIX-Way.

anonymous
()
Ответ на: комментарий от anonymous

anonymous> А когда у guiappname нет коммандострочного backend'а, или, что ещё лучше, либки, цепляемой тем же пайтоном, и нельзя запустить прогу без иксов и их протокола, это не регрес, да?

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

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Винда не нарушает принцип Unux-way. Есть ОС, а есть программы. Целое состоит из отдельных компонентов, которые выполняют свои задачи и выполняют их хорошо. Всё по UNIX-Way.

Ты опять заврался как последнее трепло.

Quasar ★★★★★
()
Ответ на: комментарий от matumba

VNC тоже обеспечивает удалённый рабочий стол. Но нафига вот ТАКОЕ убожество, когда есть X?

Quasar ★★★★★
()
Ответ на: комментарий от Aceler

Конечно придётся. Но невидия ни за что не согласится это делать, так как придётся тогда раскрыть ухищрения для повышения производительности в ущерб рендерингу. Да и затраты денег не из маленьких.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Ок, а не расскажешь ли, как в иксах при работе от сети включить дискретную, а в режиме пониженного энергопотребления отключить дискретную и включить интегрированную? Без перезапуска иксов. А?

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

Quasar ★★★★★
()

Ждём дистрибутивы на одном вейленде/мире.

ekzotech ★★★★
()
Ответ на: комментарий от anonymous

Тебя напрягает использование программ, которые написаны давно?

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Вот поэтому вместо лечения инвалида на костылях эффективнее родить нечто новое, с другим днк.

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

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Вырезание гланд через шоколадный глаз, ага.

Это ты так называешь гибкость архитектуры приложений? А... Ну да... Тебе, виндузятнику, обязательно надо, чтобы возможность была захардкожена и повешена на кнопочку.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

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

Опять нашёлся умник, который сводит общую задачу к конкретной, дабы общее решение выглядело хуже частного. Хотя... 36000 комментов за 7 лет... чего я хочу?

anonymous
()
Ответ на: комментарий от kravich

Это ограничение не-серверных версий. Если пропатчить нужные библиотеки, то выкидывать не будет.

дада. Пропатчить. Если уж пиратить - то почему бы пользователям серверную ОС не ставить сразу, чтобы всё работало не хуже, чем в иксах? %)

geek ★★★
()
Ответ на: комментарий от anonymous

Я тебе про юзкейзы, которые никак не реализуемы тем, что ты предлагаешь.

anonymous> Хотя... 36000 комментов за 7 лет...

За 8.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Я тебе про юзкейзы, которые никак не реализуемы тем, что ты предлагаешь.

Тем, что ты выдрал из того, что я предлагаю.

За 8.

2013-2006 = 7. Свой профиль с этими данными, думаю, сам найдёшь.

anonymous
()
Ответ на: комментарий от anonymous

anonymous> Тем, что ты выдрал из того, что я предлагаю.

Я выдрал ровно то, что ты предлагаешь - появление у каждого _графического_ приложения режима, в котором можно будет пользоваться им через _текстовый_ терминал.

anonymous> 2013-2006 = 7. Свой профиль с этими данными, думаю, сам найдёшь.

До регистрации я тут из-под анонимуса сидел, если что.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

появление у каждого _графического_ приложения режима

Далеко не каждое приложение с GUI является графическим.

в котором можно будет пользоваться им через _текстовый_ терминал.

Попробуй ещё раз.

До регистрации я тут из-под анонимуса сидел, если что.

Тогда комментов бущет ещё больше, чем тех, что отображены в профие, гений.

anonymous
()
Ответ на: комментарий от geek

Во-во. ЛОРовская статистика не всё показывает ;)

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> Далеко не каждое приложение с GUI является графическим.

GUI подразумевает графику. Так что каждое.

anonymous> Тогда комментов бущет ещё больше, чем тех, что отображены в профие, гений.

Разумеется.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Нокла 3310 — уже не телефон. Телефон — это трубка и ручка, которую надо крутить для вызова телефонистки.

vurdalak ★★★★★
()
Ответ на: комментарий от Quasar

GUI подразумевает графику.

Ну если формочки с entry, label, button и menu - это графика, то у меня для тебя плохие новости.

anonymous
()
Ответ на: комментарий от vurdalak

Телефон — это трубка и ручка, которую надо крутить для вызова телефонистки.

только гелиограф, только хардкор!

geek ★★★
()
Ответ на: комментарий от anonymous

Я вообще не понимаю смысла наличия сетевых возможностей у графического сервера, если только когда его создавали, не было современного TCP/IP стека

Во времена создания X11 сетевой стек был, иначе откуда бы взялись эти самые сетевые возможности? И сейчас сетевой стек он по-прежнему есть. Более того, как раз сейчас возможности распределённой работы (клиента тут, приложения там) по-прежнему требуются. Раньше сетевые возможности требовались из-за слабости клиентского оборудования, сейчас - из-за централизации, «облачности», и разброса в платформах клиентского оборудования.

Тот же RDP, про который надрывается тут Reset, позволяет реконнектиться к сессии как раз потому, что сессия оторвана он дисплейного сервера (чего нет ни у X11, ни у вяленда), и работает быстро потому, что использует наработки X11 - например, кэширование битмапов и перекладывание тривиальных операций на клиента. И начинать разработку нового графического стека надо было не с привязки клиентов к новому дисплейсерверу, а с отрывания приложения от дисплейсервера, с реализацией минимального рисовального API (линия, точка, пиксмап) отрисовывающего в какой-нибудь буфер, и потом писать новый дисплейсервер, который просто будет коннектиться к таким клиентским сессиям и отрисовывать всё с использованием аппаратных возможностей, как это сделано в той же ненавидимой многими винде. А если какому-то приложению дисплейсервер жизненно необходим, то оно может заказать при своей инициализации «хочу дисплейсервер для рендеринга GL», и выделенныей ему буфер был бы привязан к дисплейсерверу. И все вейландохейтреы в таком случае первыми бы побежали с криками «где, где этот новый графический стек, дайте нам его».

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Тот же RDP, про который надрывается тут Reset, позволяет реконнектиться к сессии как раз потому, что сессия оторвана он дисплейного сервера (чего нет ни у X11, ни у вяленда)

Были слухи, что так работает Mir.

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

EGL + GL/GLES дают примерно описанное и в гораздо больших масштабах, чем минимальное рисовальное API. К тому же указателями они вообще не оперируют.

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

Порт Qt на Mir именно так и делает.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от no-dashi

Во времена создания X11 сетевой стек был, иначе откуда бы взялись эти самые сетевые возможности? И сейчас сетевой стек он по-прежнему есть.

Я про прикладной уровень.

сейчас - из-за централизации, «облачности», и разброса в платформах клиентского оборудования.

Зачем это нужно делать именно посредством сервера? Почему клиенты графического сервера, выполняющиеся на локальном компьютере, не могут иметь сетевые возможности для подключения к удалённым компьютерам, на которых выполняются другие клиенты, подключаемые к клиентам графического сервера как к серверу?

anonymous
()
Ответ на: комментарий от lucentcode

Миллионы леммингов не могут ошибаться

Заблуждение не перестаёт быть заблуждением, если его разделяет большинство ;)

anonymous
()
Ответ на: комментарий от geekless

Кому не лень почитать спеки и сказать точно?

Читаю потихоньку, но пока не добрался.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от geekless

Кому не лень почитать спеки и сказать точно?

Там не спеки, там картинки :)

Если судить по картинкам, то таки да.

Aceler ★★★★★
()
Ответ на: комментарий от Quasar

Вот только для телефона достаточно именно того, что есть в нокле 3310. И это правильно. А если забабахать огромный лопатовидный сенсорный экран, ОС поставить с поддержкой установки приложений, современные широкополосные коммуникационные средства впендрюлить, двойную FullHD-камеру 120 FPS с поддерэкой съёмки сразу в стереоскопическом формате, , ИК датчик глубины, GPS, магнитный датчик, барометр, детектор гамма-излучения, гарнитуру в виде маленького сотового телефона к этому 5.5" хозяйству, тритиевую батарею... то это уже вовсе не телефон будет.

Правильно. Это будет называться «смартфон»,

anonymous
()
Ответ на: комментарий от anonymous

Правильно. Это будет называться «смартфон»,

Фишка в том, что смартфон нужен не всем и не всегда. Мне вот удобнее обычный раскладной телефон: надежнее, компактнее, можно носить в кармане с ключами и прочей мелочью и не бояться за экран, можно таскать с собой хоть в деревню, хоть в гараж и лапать грязными руками, ронять в грязь, долго держит батарею и т.п.

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

geekless ★★
()
Ответ на: комментарий от Quasar

Более того - это «расширение» доступно _только_ в Weston. По сути разработчики вяленда предлагают каждый раз реализовывать свой графический сервер вместо WM.

Чушь. Достаточно написать одну либу, которую подцепляют в простеньких WM.

Удалённый доступ и сетевая прозрачность - понятия совершенно разные.

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

А то, что в иксах реализовывается медленно, но верно - это прогресс.

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

anonymous
()
Ответ на: комментарий от geekless

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

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

Бери этот - http://market.yandex.ru/model.xml?modelid=287160 или этот - http://market.yandex.ru/model.xml?modelid=716089 все недостатки там перечисленные не касаются собственно возможности звонить и разговаривать.

anonymous
()
Ответ на: комментарий от anonymous

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

geekless ★★
()
Ответ на: комментарий от r5ha

За диагноз спасибо...

... непримину на него забить. =))) Впрочем, учитывая глубину Ваших познаний... учитывая Ваше умение диагностировать заболевание по постингу в форуме... Я бы, например, рекомендовал Вам расширить сферу услуг (бизнес же должен развиваться!) диагностикой по фото или, ещё круче, по аватарке форумной. =)))

В остальном... Странно, что Вас не напрягло то хамство, с которым этот манагер тут (на, вообщем-то техническом, я подчеркну, ресурсе), изволил выступить перед публикой.

Да, бесспорно то, мы являемся обслугой. Обслугой являюсь даже я, руководитель небольшой фирмёшечки. Но перед тем, как «выступать», лучше всё-таки подобрать соответствующий месту выступления тон. Иначе могут послать намного более прямо и далеко.

anonymous
()
Ответ на: комментарий от quiet_readonly

EGL + GL/GLES дают примерно описанное и в гораздо больших масштабах, чем минимальное рисовальное API

Вот только «малюсенький» и «совсем неважный» нюансик - они требуют поддержки оборудованием, и у всех продвинутых API существует весьма сильная завязка на контекст, и этот контекст плохоотрываем и завязан на состояние железки в текущий момент.

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

no-dashi ★★★★★
()
Ответ на: комментарий от geekless

geekless, ...

... если честно, то я тоже придерживался столь же утилитарного подхода.

Treo 650, Nokia E71, Nokia N900 и сейчас Samsung Galaxy Note II успешно избавили меня от этого заблуждения. Приятно иметь информацию «на кончиках пальцев». Функция «позвонить» в таком случае это приятный бонус и не более.

anonymous
()
Ответ на: комментарий от no-dashi

Вот только «малюсенький» и «совсем неважный» нюансик - они требуют поддержки оборудованием

Нет, он не требует такого. Для ускорения — да, требуется оборудование. И да, программы пишутся с расчётом на ускорение. Но сейчас даже смартфоны и интеловские интеграшки с этой задачей справляются на ура.

и у всех продвинутых API существует весьма сильная завязка на контекст, и этот контекст плохоотрываем и завязан на состояние железки в текущий момент.

С какой стати он плохо отрываем, если в том же Qt он представлен в виде класса и сохраняется/загружается на ура? Привязан он разве что к драйверу, и то prime это вроде как меняет.

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

Проще, но уже есть prime и куча приложений на OpenGL, которым всё равно потребуется перенос между дискретной и интегрированной картами.

quiet_readonly ★★★★
() автор топика
Ответ на: комментарий от anonymous

Итак, выходим в инет с нетбука через wi-fi роутер, динамический ip, к примеру, файрволл, все дела, подключаемся через ssh -X к удаленному хосту с предварительно запущенной ранее xpra сессией смотрим результат и хотим его распечатать (или сохранить) ... и тут понимаем, что пилят, надо было пробросить порты на роутере и разрешить доступ ... Настраиваем cups(нужен рут на удаленной машине), sshfs (рут не нужен, только пароль). Ни разу не геморройно, ага. Главное, сетевая прозрачность же :-)


В Исках был принт сервер и шрифты именно для данной ситуации. Но пришли инноваторы, которые выкинули ненужное ибо «нет людей, которые понимают, как это работает», «все глючит и сложно», «это никому не надо» и т.п. ни чего не напоминает?
Иксы, работают уже 26 лет и до сих пор невзирая ни на что развиваются, ибо в них был заложен механизм расширений и плагинов. у вейленда этого нету, поэтому при всех его мнимых плюсах нах. его.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 1)
Ответ на: комментарий от geek

угу, админ подключается к хосту «посмотреть, что там» - пользователя выкидывает на юг %)

Это 4.2. Да, в винде таки тоже надо иногда читать маны. Ключевые слова «удаленный помощник».

это воистину «прекрасно»

«Прекрасно» быть не в теме, но фекалии вбрасывать :-)

anonymous
()
Ответ на: комментарий от anonymous

Вообще-то...

... вот это:

«удаленный помощник»

вырубается в ряде мест по соображениям безопасности. Даже в априорно «герметичной» сети.

anonymous
()
Ответ на: комментарий от Quasar

Вот только для телефона достаточно именно того, что есть в нокле 3310. И это правильно. А если забабахать огромный лопатовидный сенсорный экран, ОС поставить с поддержкой установки приложений, современные широкополосные коммуникационные средства впендрюлить, двойную FullHD-камеру 120 FPS с поддерэкой съёмки сразу в стереоскопическом формате, , ИК датчик глубины, GPS, магнитный датчик, барометр, детектор гамма-излучения, гарнитуру в виде маленького сотового телефона к этому 5.5" хозяйству, тритиевую батарею... то это уже вовсе не телефон будет.

Ныряем в крайности? Или оптимизировать запросы не умеем? :-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.