- Подписка на печатную версию:
-
- Подписка на электронную версию:
-
- Подшивки старых номеров журнала (печатные версии)
-
LXF142:Что за штука
Материал из Linuxformat.
Что за штука… Wayland&?
- Марко Фиоретти взвешивает «за» и «против» нового сервера графики для настольного Linux, который внедрится в популярные дистрибутиве в этом году.
- Ну и что за штука — Wayland?
- Это новая система отображения графики для Linux (официальный сайт http://wayland.freedesktop.org/), которая идет на смену X Window System. Последняя в той или иной форме существует аж с середины 1980‑х.
- Замена X.org?! Ну, это ещё вилами по воде писано!
- Пока Wayland работает в простых вариантах конфигурации и не на всех аппаратных средствах, и еще несколько лет X ничто не угрожает. Однако есть как минимум пара серьёзных причин поинтересоваться Wayland уже сейчас.
- Во-первых, к Wayland проявляют интерес Ubuntu и Fedora.
- В 2010 году, одновременно с заявлением о замене стандартного интерфейса Ubuntu (Gnome) на Unity, Марк Шаттлворт сообщил о намерении применить Wayland. Кроме того, новая система отображения должна войти в Fedora 15.
- Почему Ubuntu выбирает Wayland?
- По словам Шаттлворта, ему нужны «сверхгладкая графика и визуальные эффекты» для Ubuntu – и он убеждён, что с Wayland мы добьемся этого быстрее, чем дождавшись реформ программного и аппаратного обеспечения.
- Вы говорили о других причинах интереса к Wayland…
- Кроме ускорения графики, Wayland обещает превзойти X ещё по двум показателям, а именно: групповая работа с GPU и игровая сфера.
- Простите, а что такое GPU?
- Это графический процессор – специальный процессор, встроенный в видеокарту или чипсет. Некоторые устройства оснащаются даже двойными GPU. Wayland сможет переключаться между GPU и графическими драйверами без перезагрузки, что поможет сохранять должную отзывчивость системы при интенсивной нагрузке на графику.
- Одна из целей разработки Wayland – обеспечение полноэкранного режима, не блокирующего остальную часть рабочего стола. Если игра (или другое приложение) запрашивает полноэкранный режим – даже и с особым экранным разрешением – Wayland «идёт на обман». Приложение получает якобы полный экран (то есть, на самом деле, центральную часть рабочего стола) и принимает на себя все события мыши. Однако Wayland сохраняет за собой контроль за ситуацией, и пользователь может перейти к любой части рабочего стола, нажав несколько клавиш, без неприятных эффектов.
- Круто, но прежде чем хвататься за Wayland, поясните, чего недостает X?
- X – великолепное ПО. Беда в том, что ради его поддержки приходится сохранять совместимость с приёмами программирования четвертьвековой давности. Это нелёгкий труд, и с каждым годом всё менее оправданный.
- Одна из проблем – производительность: требования протокола X по части полосы пропускания и латентности стали обременительны, особенно для дешевых нетбуков и планшетных компьютеров. Другая (возможно, более важная) причина – необходимость поддерживать функции (например, встроенные шрифты), которые ныне используются редко. Настроить новые аппаратные средства на работу с гигантским массивом кода становится всё сложнее – а урезать X невозможно. Вот и приходится поддерживать, увязывать и грузить элементы кода, которые с каждым годом теряют актуальность.
- Кажется, я начинаю улавливать вашу мысль. Но ведь разветвление — это всегда плохо и приводит к дублированию усилий, разве нет?
- В общем-то да. Но прелесть Wayland, хотя бы по идее, в том, что это вовсе не ответвление от X. Это более простой и совершенно иной способ выполнения работы, использующий современные достижения дистрибутивов GNU/Linux.
- Сейчас такие задачи, как управление памятью или шрифтами, переданы из X в ядро Linux или в специальные библиотеки – скажем, Fontconfig. Wayland пытается выполнить оставшееся, заодно избавляясь от поддержки устаревших функций. В результате ускоряется и становится менее ресурсоёмкой связь между графическим интерфейсом приложений и драйверами аппаратной графики.
- И как Wayland добивается этой цели?
- Wayland – комбинация протокола компоновщика окон и реализации C-библиотеки для него. Поэтому, в отличие от X, приложение под Wayland «рисует» собственное окно в предопределённой области памяти. Закончив отрисовку, программа информирует об этом Wayland, которому остаётся только скомпоновать окно.
- Вы имеете в виду компоновку этого и всех других окон?
- Точно. Wayland копирует данную область па мяти в отведённое место на экране, впереди или позади других окон в данной зоне. Другие основные задачи Wayland – управление визуальными эффектами и направление входных команд пользователя (например, движений мыши) соответствующим клиентам. Поскольку Wayland является компоновщиком окон, даже не нужен оконный менеджер.
- Отлично и всё такое, ну, а если приложение работает только с X?
- Вы правы, обратная совместимость очень важна. Wayland её обеспечит, работая с X-сервером как с клиентом. Приложение, работающее только под X, выдаст серверу запрос на отрисовку окна, и тот будет рисовать его в выделенной области памяти…
- …а Wayland передаст это дело графическому драйверу. Понял! А не будет ли этот процесс тормозить?
- Ну да, по сравнению с X (если вы об этом). Однако разработчики считают, что замедление не будет фатальным.
- Как насчёт сетевой прозрачности?
- Достоинство X в том, что эта система умеет отображать графические приложения на удалённых компьютерах прямо как на вашем собственном мониторе…
- Нет. Ну, а когда вы последний раз этим пользовались? Только честно.
- Хм, и правда не помню… но один мой друг знает одного — тот хронически это делает…
- Вот разработчики Wayland и подумали: отдельным пользователям сетевая прозрачность нужна, но большинство о ней даже не слышали. Так зачем рабочему столу тормозить, поддерживая ненужные функции? Правота разработчиков становится ещё более очевидной, если вспомнить, что для удалённой работы многие применяют web-браузер, Ajax и подобные средства.
- Верно, но как всё-таки быть тем, кто работает с удалёнными X-приложениями?
- Да это не проблема. X уйдет с арены не скоро. И кто же запретит при необходимости работать с X вместо Wayland (или с X в качестве клиента Wayland, о чём мы с вами только что говорили)? При наличии достаточного спроса могут даже написать специальный клиент Wayland для удалённого управления X-приложениями.
- Итак, Wayland — сплошной выигрыш, без всякого риска?
- Конечно, нет. Помимо сетевой прозрачности, можно спрогнозировать проблемы с нестабильностью и поддержкой ряда видеокарт. Например, неясно, будет ли Nvidia писать проприетарные драйверы с поддержкой Wayland – а если будет, то насколько полной будет поддержка.
- А с чего бы Wayland быть нестабильным?
- Иным кажется, что архитектура Wayland повышает вероятность краха всей системы из-за сбоя в единственном приложении. Правы они или нет, покажет время.
- Трудно ли перевести Gnome, KDE и прочее популярное свободное ПО на Wayland?
- По определению, клиент Wayland должен рисовать вкладки, виджеты и прочее сам, в своём личном окне (точнее, в выделенной области памяти). Готовые демо-клиенты уже делают это с помощью библиотек, подобных Cairo или OpenGL. Но перевод приложения в разряд клиентов Wayland требует значительных усилий. Радует одно: эту работу придётся проделать лишь раз – в общих библиотеках (GTK, Qt) или даже на более низком уровне.
- Стоит ли всё это затевать?
- Назначение Wayland – сделать настольное свободное ПО эффективнее и быстрее. Если удастся этого добиться, то – да! Дорогу осилит идущий.